[小ネタ]Snowflake Intelligenceオブジェクトに対するUSAGE権限の有無による挙動の違いについて
さがらです。
Snowflake Intelligenceのドキュメントを見ていて、「Snowflake Intelligenceオブジェクトに対するUSAGE権限の有無でどう挙動が変わるんだ?」と感じたので、比較してみた内容についてまとめてみます。
結論
- Snowflake Intelligenceオブジェクトに対する
USAGE権限がなくてもSnowflake Intelligenceの利用は可能 - Snowflake Intelligenceオブジェクトに対する
USAGE権限があると、Snowflake Intelligenceオブジェクトに紐づいているエージェントの一覧をSnowsightで確認可能- 個人的な見解ですが、ユーザーに不要なエージェントまで見えるリスクがあるため、基本的にSnowflake Intelligenceを使うだけのユーザーにはSnowflake Intelligenceオブジェクトの
USAGE権限の付与は不要、と考えています
- 個人的な見解ですが、ユーザーに不要なエージェントまで見えるリスクがあるため、基本的にSnowflake Intelligenceを使うだけのユーザーにはSnowflake Intelligenceオブジェクトの
前提
事前に以下のクエリで、Snowflake社公式の事例PDFをパースして構築したCortex Search Serviceを紐づけたAgentを作成し、Snowflake IntelligenceオブジェクトにAddしておきます。
-- Agent作成
CREATE OR REPLACE AGENT PROD_DB.AIML_SAMPLE.AGENT_SNOWFLAKE_CASE_STUDIES
COMMENT = 'Snowflake導入事例PDFを検索・回答するCortex Agent'
PROFILE = '{"display_name": "Snowflake事例検索", "avatar": "search", "color": "#29B5E8"}'
FROM SPECIFICATION
$$
instructions:
system: |
あなたはSnowflake導入事例PDFの内容について質問に回答するアシスタントです。
ユーザーからの質問に対して、Cortex Search Serviceを使って関連する事例情報を検索し、
正確な情報に基づいて回答してください。
検索結果に含まれない情報については、推測せずにその旨を伝えてください。
response: |
日本語で簡潔に回答してください。
回答には参照した事例名(case_study_name)を明記してください。
tools:
- tool_spec:
type: "cortex_search"
name: "SearchCaseStudies"
description: "Snowflake導入事例PDFの検索"
tool_resources:
SearchCaseStudies:
name: "PROD_DB.AIML_SAMPLE.CSS_SNOWFLAKE_CASE_STUDIES"
max_results: "5"
$$;
-- Snowflake Intelligence への追加
ALTER SNOWFLAKE INTELLIGENCE SNOWFLAKE_INTELLIGENCE_OBJECT_DEFAULT
ADD AGENT PROD_DB.AIML_SAMPLE.AGENT_SNOWFLAKE_CASE_STUDIES;
今回検証対象となるユーザーで、Snowflake IntelligenceオブジェクトのUSAGE以外、Agentの利用に必要な権限は全て付与したロールを使って、どのように挙動に違いが出るかを確かめてみます。
(参考までに、Access Roleを使って各種具体的な権限を内包してしまっているのですが、下図のように権限を付与しています。)

Snowflake IntelligenceオブジェクトのUSAGEが「ない」場合
Snowflake Intelligenceの利用
下図の通り、メニューにも表示され、問題なく利用できます。


Agents画面の違い
Agentsの画面を開くと、利用できるエージェントの一覧は問題なく確認できるのですが、Snowflake Intelligenceタブに切り替えると、Snowflake Intelligenceをセットアップする画面が表示されました。



ちなみに、Open settingsを押すと、下図のように表示されました。

Snowflake IntelligenceオブジェクトのUSAGEが「ある」場合
Snowflake Intelligenceの利用はUSAGEがなくてもできたので、Agents画面の違いだけ確認します。
権限は、下図の通りUSAGEをAccess Role経由で付与しています。


Agents画面の違い
Agentsの画面を開くと、利用できるエージェントの一覧はUSAGEがない場合と同様に問題なく確認できるのですが、Snowflake Intelligenceタブに切り替えると、Snowflake Intelligenceに紐づいているAgentの一覧が表示されました。



右上のOpen settingsやAdd existing agentを押すと、Snowflake Intelligenceオブジェクトに対するMODIFY権限がないため、下図のように表示されました。

最後に
Snowflake Intelligenceオブジェクトに対するUSAGE権限の有無による挙動の違いについて、まとめてみました。
自分と同じ疑問を感じた方の参考になりますと幸いです!







