所有者の権利と Streamlit in Snowflake アプリの理解

注意

この機能は AWS およびMicrosoft Azure商用リージョン のアカウントで利用できます。 AWS PrivateLink はサポートされていません。

このトピックの内容:

紹介

SnowflakeにおけるStreamlitのモデルは、 ストアドプロシージャ における所有者の権利モデルと密接にマッピングされています。これにより、サービスアカウントトークンが不要になり、Snowflakeが提供する認証、アクセス制御、ネットワークポリシー機能と統合されます。

Streamlit in Snowflake における所有権について

Streamlitアプリは、セッション内で以下のルールに従います。

  • 呼び出し元の権限ではなく、所有者の権限で実行する。

  • アプリ所有者によってプロビジョニングされたウェアハウスで実行する。

  • 呼び出し元が現在使用しているデータベースとスキーマではなく、SnowflakeアプリでStreamlitが作成されたデータベースとスキーマを使用する。

アプリ作成について

Streamlitアプリの作成権限はスキーマレベルで付与されます。スキーマの OWNER 権限を持つユーザーのみが、そのスキーマでStreamlitアプリを作成できます。Streamlitアプリが作成されると、アプリを最初に作成したユーザーのロールで実行されます。

アプリの表示

アプリの所有者は、どのロールにアプリを使用する権限を与えるかを選択できます。

  • 閲覧者はアプリと対話し、画面に表示されたものをすべて見ることができます。

  • 権限で WITH GRANT が有効化されているかどうかに関係なく、他のロールと共有するときにアプリ所有者ロールのすべての権限をアプリで使用できます。

所有者の権利の制限

アプリは所有者の権利で実行されるため、いくつかの追加制限があります。これらの制限は以下に影響します。

  • ストアドプロシージャの内部から呼び出すことができる組み込み関数は、ストアドプロシージャがStreamlitアプリから呼び出された場合には利用できません。

  • ALTERUSER ステートメントを実行する機能。

  • ストアドプロシージャ内から呼び出すことができる SQL ステートメントの型。

  • 一部の DESCRIBE コマンド。

所有者の権利とアプリのセキュリティ

Streamlit in Snowflake で実行されるStreamlitアプリは所有者の権限で実行され、所有者の権限で実行される他のSnowflakeオブジェクトと同じセキュリティモデルに従います。

Snowflakeは認証、ロールベースのアクセス制御、管理者制御などのセキュリティ機能を提供しますが、アプリのセキュリティに関する責任はアプリ作成者および所有者と共有されます。

1つまたは複数のロールがStreamlitアプリを所有することができます。この理由から、Streamlitアプリを所有するロールを別のユーザーに付与する前に、Snowflakeではそのロールによって付与または継承された権限を確認することをお勧めします。

たとえば、書き込み権限を持つロールを他のSnowflakeユーザーに付与する場合は注意が必要です。書き込み権限により、ユーザーはStreamlitアプリを変更することができるからです。

一般的に、Snowflakeではロールベースのアクセス制御と、Streamlitアプリの作成と表示専用のロールの使用をお勧めします。さらに、Snowflake内でStreamlitアプリを開発する際には、適切なセキュリティ慣行に従い、アカウント内のStreamlitアプリのセキュリティ監査を定期的に実施する必要があります。