Streamlitアプリの作成と使用に必要な権限¶
Streamlit in Snowflake 内では、Streamlitアプリは、 Snowflake アクセス制御フレームワーク に準拠するセキュリティ保護可能なオブジェクトです。Streamlitアプリは、所有者の権限に基づく権限モデルを使用しています。詳細については、 所有者の権利と Streamlit in Snowflake アプリの理解 をご参照ください。
アプリ所有者とStreamlitアプリを含むスキーマの所有者は、アプリの使用権限を持つロールを決定できます。ユーザーはアプリと対話することができ、Streamlitアプリが表示するものをすべて見ることができます。ユーザーには、所有者と同じアプリのビューが見えますが、編集モードにはアクセスできません。
詳細については、 Streamlitアプリを共有する をご参照ください。
Streamlitアプリの作成に必要な権限¶
Streamlitアプリを作成するには、ロールが次の表にあるオブジェクトを所有していない場合、ロールにそれらのオブジェクトに対する次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
|---|---|---|
CREATE STREAMLIT |
Streamlitオブジェクトを作成するスキーマ |
|
READ |
Streamlitアプリのソースファイルをコピーするステージ |
|
USAGE |
Streamlitアプリが使用するウェアハウス |
|
USAGE |
Streamlitアプリが使用するコンピューティングプール |
この権限は、アプリがコンテナランタイムを使用する場合にのみ必要です。 |
USAGE |
Streamlitアプリで使用される外部アクセス統合 |
この権限は、アプリが外部アクセス統合を使用する場合にのみ必要です。コンテナランタイムの場合、この権限は、 PyPI のような外部パッケージインデックスからパッケージをインストールするために必要です。 |
USAGE |
Streamlitアプリが使用するシークレット |
この権限は、アプリがシークレットを使用する場合にのみ必要であり、ウェアハウスのランタイムにのみ適用されます。 |
CREATE STAGE |
Streamlitオブジェクトを作成するスキーマ |
この権限は、 ROOT_LOCATION パラメーターを持つStreamlitオブジェクトを作成する場合にのみ必要です。 |
スキーマ内のオブジェクトを操作するには、親データベース上で少なくとも1つの権限と、親スキーマ上で少なくとも1つの権限が必要です。
これらの権限をロールに付与するには、 GRANT <権限> ... TO ROLE コマンドを使用します。次の例は、コンテナランタイムアプリの作成に必要な権限を付与する方法を示しています(プレビュー)
GRANT USAGE ON DATABASE streamlit_db TO ROLE streamlit_developer;
GRANT USAGE ON SCHEMA streamlit_db.apps TO ROLE streamlit_developer;
GRANT CREATE STREAMLIT ON SCHEMA streamlit_db.apps TO ROLE streamlit_developer;
GRANT USAGE ON COMPUTE_POOL streamlit_compute_pool TO ROLE streamlit_developer;
GRANT USAGE ON INTEGRATION python_package_index TO ROLE streamlit_developer;
GRANT USAGE ON WAREHOUSE streamlit_wh TO ROLE streamlit_developer;
フューチャーグラントがデータベースまたはスキーマに定義されている場合、ユーザーがフューチャーグラントに定義されているロールを使用してStreamlitアプリを作成するようにしてください。
Streamlitアプリの表示に必要な権限¶
Streamlitアプリを表示するには、Snowflakeアカウントを持っており、サインインしている必要があります。さらに、以下のオブジェクトに USAGE 権限を付与されたロールを使用する必要があります。
Streamlitアプリを含むデータベース
Streamlitアプリを含むスキーマ
Streamlitアプリ
ほとんどの場合、アプリ所有者が他のロールとStreamlitアプリを共有すると、 USAGE 権限は自動的に新しいロールに付与されます。ただし、 MANAGED ACCESS を持つスキーマでStreamlitアプリが作成された場合は、 USAGE 権限を新しいロールに手動で付与する必要があります。
スキーマ所有者または MANAGE GRANTS 権限を持つロールを持つユーザーは、この例に示すように GRANT <権限> ... TO ROLE コマンドを使用して USAGE 権限を付与する必要があります。
GRANT USAGE ON DATABASE streamlit_db TO ROLE streamlit_viewer;
GRANT USAGE ON SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_viewer;
GRANT USAGE ON STREAMLIT streamlit_db.streamlit_schema.streamlit_app TO ROLE streamlit_viewer;
スキーマ所有者、または MANAGE GRANTS 権限を持つロールを持つユーザーは、この例に示すように、スキーマに作成された Streamlit アプリケーショ ンをすべて表示する USAGE 権限を付与することができます。
GRANT USAGE ON FUTURE STREAMLITS IN SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_viewer;