クリーンルームのユーザーとアクセスの管理¶
概要¶
このトピックでは、クリーンルームのアカウント管理者がクリーンルーム UI および API へアクセスするユーザーを管理する方法について説明します。
クリーンルームは、 API および UI のさまざまなサブセクションにアクセスを許可するいくつかのアプリケーションロールを定義します。クリーンルーム UI および API はへのアクセスは、個別に付与されます。通常、アカウント管理者はカスタムロールを作成し、必要なアプリケーションロールを付与して、 UI および API へのきめ細かいアクセスを許可し、そのアカウントのさまざまなユーザーにロールを付与します。
この戦略では、Snowflakeのロールベースのアクセス制御( RBAC )モデルを使用し、クリーンルームのユーザーとそのアカウントのコラボレーターに適切な権限を委任します。RBAC の詳細については、 アクセス制御の概要 をご参照ください。どのユーザーに特定のロールが付与されているかを確認するには、次の SQL コマンドを実行します。
クリーンルーム UI へのアクセスを管理する¶
管理者は、直接的または間接的に適切なロールを付与することにより、Snowflakeアカウントのクリーンルーム UI へのアクセスを付与します。管理者はデフォルトのウェアハウスを割り当て、それに対する USAGE 権限を UI ユーザーに付与します。
以下のロールは、クリーンルーム UI を管理またはアクセスする権限を付与します。
ACCOUNTADMIN: クリーンルーム環境のインストールまたはアンインストールに使用されるロール。このロールは、クリーンルーム UI の Snowflake Admin ページにアクセスすることもできます。アカウント管理者はこのページを使用して、サービスユーザーとアカウントの機能 (Cross-Cloud Auto-Fulfillment、外部テーブルと Iceberg テーブル、UI ユーザーのデータセット登録など) を管理します。このロールにはすべてのクリーンルーム UI 権限があり、ACCOUNTADMIN として実行するユーザーには、追加の UI アプリケーションロールは必要ありません。
MANAGE_CLEANROOMS: クリーンルームの作成、更新、削除、インストール、およびクリーンルーム UI で分析の作成、更新、削除、実行を提供するアプリケーションロール。
MANAGE_DCR_PROFILE_AND_FEATURES: 会社プロファイルを管理し、クリーンルームで使用できるサードパーティコネクタを制御できる、UI の Admin セクションの Profile & Features ページへのアクセス権を提供するアプリケーションロール。
MANAGE_DCR_CONNECTORS: サードパーティコネクタを構成できる、UI の Connectors ページへのアクセス権を提供するアプリケーションロール。
MANAGE_DCR_COLLABORATORS: UI のクリーンルームプロバイダーが利用できる承認済みコラボレーターのリストを管理できる、UI の:ui:
Collaboratorsページへのアクセス権を提供するアプリケーションロール。このロールは、API を使用する場合にプロバイダーが利用できるコラボレーターのリストを制御しません。API ユーザーは誰でもコラボレーションに招待できます。詳細については、 clean roomのコラボレーターの管理 をご参照ください。
例
以下のコードは、カスタムロールを作成し、そのロールに複数の UI 機能を付与し、その後カスタムロールをユーザーに付与する方法を示しています。
API ユーザーの管理¶
API アクセスはロールを使用して管理されます。次の Snowflake ロールは、API にアクセスまたは管理するために使用されます。
ACCOUNTADMIN: クリーンルーム環境のインストールまたはアンインストールに使用されるロール。このロールには SAMOOHA_APP_ROLE は含まれません。API を使用する場合は、SAMOOHA_APP_ROLE を使用する必要があります。
SAMOOHA_APP_ROLE: このロールは、このアカウントのクリーンルーム API に対して、フル権限 を付与します。(このロールは API と通信するためのクリーンルーム UI で使用されます。)
実行のみの開発者ロール: SAMOOHA_APP_ROLE を使用しているユーザーは、アクセスが制限されたロールの使用権限を付与できます。このロールは、実行ロール とも呼ばれ、コンシューマーコンテキストのクリーンルームのサブセットでの API プロシージャのサブセットを使用する権限を付与します。これらの限定ロールをロールに付与すると、データアナリストなどの特定のユーザーに対してアカウント内のスコープを指定できます。
完全な API アクセスの許可または取り消し¶
SAMOOHA_APP_ROLE は、Snowflakeアカウントのすべてのクリーンルームへのフル API アクセスをユーザーに付与します。このロールは、クリーンルームでインストールされたすべてのウェアハウスに対して使用権限を持ちます。
完全な API アクセスの許可:
完全な API アクセスの取り消し:
制限付き API アクセスの付与(実行ロール)¶
アカウント内の指定されたクリーンルームに対して、制限付き API アクセスを付与できます。制限付きアクセスでは、 consumer.run_analysis など コンシューマープロシージャのサブセット のみを呼び出すことができます。クリーンルームをインストール、作成、結合、変更することはできません。制限された API アクセスを持つロールを作成したり、そのロールをユーザーに付与したりするため、このアクセスレベルは 実行ロール と呼ばれることがあります。
ここでは、ユーザーに制限付きアクセスを付与する方法を説明します:
SAMOOHA_APP_ROLE ロールを付与できるユーザーは新しいロールを作成し、制限された機能をそのロールに割り当てます。クリーンルームにアクセスするために使用するウェアハウスに対する USAGE もそのロールに付与する必要があります。
ユーザーはその制限付きのロールを使用し、clean roomアカウントで指定されたアクションを実行します:
制限付き API アクセスの取り消し¶
特定のロールから特定のクリーンルームの実行権限を取り消すには、revoke_run_on_cleanrooms_from_role を呼び出します。
単一のユーザーから付与されたすべての実行権限を取り消すには、そのユーザーからそのロールを取り消します。
clean roomのコラボレーターの管理¶
*コラボレーター*は、クリーンルームプロバイダーからコンシューマーとしてクリーンルームに参加するよう招待されます。
クリーンルーム UI を使用する際 、作成者は、 MANAGE_DCR_COLLABORATORS ロールを使用して誰かが管理するリストからコラボレーターを招待することができます。
クリーンルーム API を使用する際、プロバイダーは事前に定義されたコラボレーターリストによって制限されず、Snowflake アカウントロケーターによって任意のクリーンルームのコラボレーターを追加することができます。Snowflakeアカウントなしでコラボレーターを招待する場合は、まずコラボレーター用の クリーンルーム管理アカウントを作成 する必要があります。個々のユーザーではなく、コラボレーションするアカウントを招待することに注意してください。招待されたアカウント内のクリーンルームへのアクセスを持つユーザーは、クリーンルームに参加して使用できます。
注釈
SnowflakeのコラボレーターがあなたのSnowflakeアカウントと異なるリージョンにアカウントを持っている場合、アカウント管理者が クロスクラウド自動フルフィルメントを有効 にしてからでないと、コラボレーターとして追加できません。
クリーンルームUIで使用されるコラボレーターリストを管理するには、:ref:`MANAGE_DCR_COLLABORATORS ロール<label-dcr_manage_ui_users>`が必要です。
左側のナビゲーションで Collaborators を選択します。
次のいずれかを実行します。
コラボレーターがSnowflakeアカウントを持っている場合は、 Snowflake Partners » + Snowflake Partner を選択します。コラボレーターのSnowflakeアカウントの詳細を入力するプロンプトに応答します。
共同作業者がSnowflakeのお客様でない場合。
Snowflake サポート `_ にご連絡いただければ、 :ref:`管理アカウント <label-cleanrooms_intro_managed_account>を作成する権限を付与いたします。権限が付与されたら、 Collaborators ペインに戻り、 Managed Accounts タブを選択し、共同作業者のクリーンルーム管理アカウントを作成します。
クリーンルーム API を使用する場合、プロバイダーは、provider.add_consumers プロシージャを呼び出すことでコラボレーターを追加できます。
コラボレーターが Snowflake の顧客でない場合は、誰かがそのコラボレーター用に:ref:`クリーンルーム管理アカウントを作成<label-cleanrooms_intro_managed_account>`する必要があります。