コンシューマーアカウントでオブジェクトと権限へのアクセスをリクエストする

このトピックでは、Snowflake Native App のインストール後にプロバイダーがコンシューマアカウントのオブジェクトに権限やアクセスをリクエストする方法に関する一般的な情報を提供します。Snowsight または SQL を使用して、コンシューマーが手動でアプリに権限を付与する必要があるように、アプリの開発に関する情報を提供します。権限の自動付与を使用するアプリの開発については、アプリに必要な権限を構成する をご参照ください。

Snowflake Native App での権限および参照について

単純な Snowflake Native App では、インストール中にセットアップスクリプトが実行されると、必要なオブジェクトはすべて APPLICATION オブジェクト内に作成されます。この場合、アプリが必要とするすべてのオブジェクトは、 APPLICATION オブジェクト内で作成され、アクセス可能です。コンシューマーは何もする必要はありません。必要な権限はすべて、アプリケーションロールを使ってアプリが管理します。

しかし、より複雑な Snowflake Native App では、 APPLICATION オブジェクトの外部にあるコンシューマーアカウントで、新しいオブジェクトを作成したり、オブジェクトにアクセスしたりすることが必要になる場合があります。この場合、コンシューマーは Snowflake Native App がこれらのオブジェクトの作成やアクセスができるように、必要な権限を付与するか、アクセスを許可する必要があります。

Snowflake Native App Framework により、プロバイダーは以下を実行できます。

  • コンシューマーアカウントのアカウントレベルの権限をチェックする。

  • データベースの作成などのタスクを実行するために、アカウントレベルの権限をリクエストする。

  • コンシューマーアカウントの既存のオブジェクトにアクセスするには 参照 を使用します。

プロバイダーは、次をリクエストして、コンシューマーアカウントへのアクセスをリクエストします。

グローバル権限

グローバル権限によって、 Snowflake Native App はコンシューマーアカウントでアクションを実行することができます。詳細については、 プロバイダーがコンシューマーからリクエストできる権限 をご参照ください。

参照

参照 によって、アプリはコンシューマーアカウントの既存のオブジェクトにアクセスすることができます。プロバイダーは、アプリが manifest.yml ファイルでリクエストする参照を定義します。

インストール後、コンシューマーは、オブジェクトの 完全修飾名 で作成される参照を提供することで、オブジェクトへのアクセスを許可します。

参照により、アプリは論理名を使用してオブジェクトにアクセスできます。参照により、プロバイダーはオブジェクトの具体的な名前や親データベース、スキーマを知らなくてもアプリを作成できます。

詳細については、 参照 をご参照ください。

コンシューマーが Snowflake Native App へのアクセスを許可する方法

プロバイダーがアプリで定義する各アクセスリクエストに対して、コンシューマーはアプリへのアクセスを許可する必要があります。コンシューマーがアクセスを許可する方法は、グローバル権限と参照では異なります。

Snowflake Native App にグローバル権限を付与する

プロバイダーが特定の権限または特定のオブジェクトへのアクセスをリクエストするようにアプリを構成する場合、コンシューマーがアプリにこれらの権限を付与できる方法は2つあります。

  • プロバイダーが Python Permission SDK を使用してユーザーインターフェイスを実装する場合、コンシューマーは Snowsight を使用して、アプリがリクエストする権限を付与します。Python Permission SDK は、コンシューマーアカウントで必要な GRANT ステートメントを自動的に実行します。

  • プロバイダーがユーザーインターフェイスを実装しない場合、プロバイダーはコンシューマーにアプリが必要とする権限を伝えなければなりません。たとえば、プロバイダーは、アプリに必要な権限を付与するためにはコンシューマーが実行しなければならない SQL ステートメントに関する情報を、コンシューマーに伝えなければなりません。

    Snowflakeでは、この情報をアプリの README ファイルに含めることを推奨しています。これは、 Snowflake Native App のリスト一部として、コンシューマーが表示することができます。

オブジェクトへのアクセスを承認する

プロバイダーが、APPLICATION オブジェクトの外部にあるオブジェクトへの参照をコンシューマーアカウントで定義する場合、コンシューマーがこれらのオブジェクトへの参照を作成し、アプリケーションに関連付ける方法は2つあります。

  • プロバイダーが Python Permission SDK でユーザーインターフェースを実装している場合、コンシューマーは Snowsight を使用して、アプリが必要とするオブジェクトへの参照を関連付けます。詳しくは、` Snowsightを使用したアクセスリクエストの管理 <https://other-docs.snowflake.com/en/native-apps/consumer-granting-privs#managing-access-requests-using-snowsight>`_をご参照ください。

  • プロバイダーがユーザーインターフェイスを実装していない場合、コンシューマーは手動で参照を作成し、それを Snowflake Native App に関連付ける必要があります。