Collaboration Data Clean Roomsにおけるコラボレーターのロール¶
概要¶
クリーンルームのコラボレーションシナリオでは、コラボレーターが以下の ロール の1つ以上として機能します。この場合、 ロール は RBAC ロールではなく、機能のセットです。
所有者: 所有者は、コラボレーションを定義、作成、所有し、招待されるコラボレーターとそのロールを定義します。所有者は、自動的に分析実行者やデータプロバイダーになることはなく、昇格された実行権限も持ちません。所有者の主な役割は、クリーンルームを作成し、ロールを割り当て、誰が誰とデータを共有できるかを決定し、クリーンルームを解体することです。1つのコラボレーションにつき所有者は1人までです。
データプロバイダー: テーブルやビューなどのデータ提供をコラボレーションに提供し、それらを使用できる分析実行者を指定します。つまり、コラボレーションの説明で指定されているように、アカウントAはアカウントBとCに対するデータプロバイダーです。
分析実行者: コラボレーションの定義で指定されているように、許可されたデータ提供で許可されたテンプレートを実行します。
1人のコラボレーターはコラボレーションで複数のロールを持つことができ、複数のコラボレーターはコラボレーションで同じロールを持つことができます(1人のユーザーにのみ割り当てられる所有者ロールを除く)。例えば、コラボレーションの所有者は、データプロバイダーと分析実行者である場合もあります。
GET_STATUS を呼び出すことで、 ROLES 列でコラボレーションに使用可能なロールを確認できます。 ROLES 列には自分のロールが一覧表示されます。例えば、自分がデータプロバイダーで、誰とデータを共有できるのかを確認したい場合は、コラボレーションの仕様を調べて、ロールの詳細を確認します。コラボレーションに参加した後、1回の呼び出しでコラボレーション仕様を確認する方法を次に示します。
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
SELECT "COLLABORATION_SPEC" FROM $1
WHERE "SOURCE_NAME" = $collaboration_name;
所有者は、コラボレーションを作成する際に、すべてのコラボレーターとそのロールを指定します。コラボレーションが作成された後に、コラボレーターとそのロールを変更することはできません。その結果、次のロール機能はコラボレーションの作成後に固定されます。
所有者を変更することはできません。
分析実行者の追加や削除はできません。
各分析実行者のデータプロバイダーのリストを変更することはできません。コラボレーションの作成時に、アカウントAがアカウントBのデータプロバイダーとして定義されていない場合、アカウントAはアカウントBのデータプロバイダーになることはできません。
ただし、コラボレーターは、コラボレーションが作成された後に、リソースを追加または削除することが できます 。
例¶
次の例は、ロールを定義する非常に基本的なコラボレーション定義を示していますが、リソースは定義していません。リソースの有無にかかわらず、コラボレーションを作成し、後からリソースを追加または削除できます。
api_version: 2.0.0
spec_type: collaboration
name: basic_collaboration
owner: alice
collaborator_identifier_aliases:
alice: corp1.acct123
bob: corp2.acctxyz
analysis_runners:
alice:
data_providers:
alice:
data_offerings: []
bob:
data_offerings: []
bob:
data_providers:
alice:
data_offerings: []
前述のコラボレーションでは、次のコラボレーターとロールが定義されています。
aliceはコラボレーションの所有者、分析実行者、bobおよび自分自身のデータプロバイダーです。aliceはアカウントcorp1.acct123のコラボレーションで定義されたエイリアスです。bobは分析実行者で、aliceのデータプロバイダーですが、自分のデータプロバイダーでは ありません 。bobはアカウントcorp2.acctxyzのコラボレーションで定義されたエイリアスです。
コラボレーションが作成された後は、これらのロールを変更することはできません。また、新しいコラボレーターを追加することもできません。
データプロバイダーは、コラボレーションが作成された後にデータ提供を追加できます。コラボレーション作成後、コラボレーターは誰でもテンプレートを追加することができます。次の例は、コラボレーション作成後に、コラボレーション API を使用してリソースを前のコラボレーションに追加する方法を示しています。
api_version: 2.0.0
spec_type: collaboration
name: basic_collaboration
owner: alice
collaborator_identifier_aliases:
alice: corp1.acct123
bob: corp2.acctxyz
analysis_runners:
alice:
data_providers:
alice:
data_offerings:
- id: alice_data_1
- id: alice_data_2
bob:
data_offerings:
- id: bob_data_1
templates:
- id: template1 # Alice can run template1 using alice_data_1, alice_data_2, or bob_data_1.
bob:
data_providers:
alice:
data_offerings:
- id: alice_data_1
templates:
- id: template2 # Bob can run template2 using data from alice_data_1, provided by alice.
変更されたコラボレーションは、以下のリソースと機能をサポートするようになりました。
aliceはtemplate1とalice_data_1、alice_data_2およびbob_data_1のデータを使用して分析を実行できます。bobはalice_data_1のデータを使用してtemplate2を実行できます。