Knowledge Catalog(旧称 Dataplex Universal Catalog)のデータドメインとサブドメインを使用すると、データアセットとプロダクトをビジネス構造を反映した論理階層に整理できます。ドメインを作成したら、Identity and Access Management のロールと権限を付与して、ユーザーがドメインとそのリソースを操作する方法を制御できます。
始める前に
データドメインを作成してドメイン オーナーを割り当てる前に、必要なロールと API が有効になっていることを確認してください。
- ドメインとサブドメインのネストの最大深度は 5 レベルです。
- 1 つのデータドメインに最大 50 個の直接サブドメインを作成できます。
- プロジェクト内では、リージョンごとに最大 1,000 個のドメインを使用できます。
API を有効にする
Dataplex API が有効になっていない場合は、有効にします。
API を有効にするために必要なロール
API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法を確認する。
必要なロール
データドメインの作成とドメイン オーナーの割り当てに必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
データドメイン、そのバインディング、IAM ポリシーの完全な管理を許可します。Dataplex データドメイン管理者 (
roles/dataplex.dataDomainAdmin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
データドメインを作成する
Google Cloud コンソールまたは REST API を使用してデータドメインを作成し、プロジェクトとロケーション内のデータアセットとプロダクトの論理グループとして機能させます。
コンソール
Google Cloud コンソールで、[データドメイン] ページに移動します。
[Create Data Domain] をクリックし、次の情報を指定します。
- [表示名] フィールドに、ドメインのわかりやすい名前を入力します。例:
Finance - [データドメイン ID] フィールドに、ドメインの一意の ID を入力します。システムがドメインを作成した後にこの値を変更することはできません。
- [ロケーション] フィールドで、データドメインを作成するリージョンを選択します。
- [プロジェクト ID] フィールドで、データドメインを作成するプロジェクトを選択します。
- 省略可: [説明] フィールドに、ドメインの簡単な説明を入力します。
- [所有者] フィールドに、ドメインの所有者を追加します。複数のメールアドレスを同時に入力できます。
- [表示名] フィールドに、ドメインのわかりやすい名前を入力します。例:
省略可: [ラベル] フィールドに、関連するオブジェクトをまとめてグループ化したり、他の Google Cloud リソースと組み合わせてグループ化したりするためのラベルを入力します。
[作成] をクリックします。データドメインにアクセスしたり、データドメインを検索したりできるようになるまでに数分かかることがあります。
REST
データドメインを作成するには、projects.locations.dataDomains.create メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。LOCATION_ID: データドメインを作成するリージョン。例:us-central1DATA_DOMAIN_ID: データドメインの固有識別子。
HTTP メソッドと URL:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains?data_domain_id=DATA_DOMAIN_ID
リクエストの本文(JSON):
{
"display_name": "Finance Domain",
"description": "Domain for finance datasets and reports.",
"contacts": {
"identities": [
{
"contact_name": "Alice Wonderland",
"contact_role": "owner",
"contact_id": "alice@example.com"
}
]
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
データ サブドメインを作成する
Google Cloud コンソールまたは REST API を使用してサブドメインを作成し、データドメイン階層を拡張します。
コンソール
Google Cloud コンソールで、[データドメイン] ページに移動します。
サブドメインを作成するドメインを選択します。
[データ サブドメインを作成] をクリックし、次の情報を入力します。
- [表示名] フィールドに、ドメインのわかりやすい名前を入力します。例:
Finance - [データドメイン ID] フィールドに、ドメインの一意の ID を入力します。システムがドメインを作成した後にこの値を変更することはできません。
- 省略可: [説明] フィールドに、ドメインの簡単な説明を入力します。
- [所有者] フィールドに、ドメインの所有者のメールアドレスを追加します。複数のメールアドレスを同時に入力できます。
- [表示名] フィールドに、ドメインのわかりやすい名前を入力します。例:
省略可: [ラベル] フィールドに、関連するオブジェクトをまとめてグループ化したり、他の Google Cloud リソースと組み合わせてグループ化したりするためのラベルを入力します。
[作成] をクリックします。データ サブドメインにアクセスまたは検索できるようになるまでに数分かかることがあります。
REST
データ サブドメインを作成するには、projects.locations.dataDomains.create メソッドを使用し、リクエスト本文で parent_data_domain を指定します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。LOCATION_ID: 親データドメインが存在するリージョン。例:us-central1SUBDOMAIN_ID: データ サブドメインの固有識別子。PARENT_DATA_DOMAIN_ID: このサブドメインが作成される親データドメインの一意の ID。
HTTP メソッドと URL:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains?data_domain_id=SUBDOMAIN_ID
リクエストの本文(JSON):
{
"display_name": "Finance Subdomain",
"description": "A subdomain within the Finance domain.",
"contacts": {
"identities": [
{
"contact_name": "Alice Wonderland",
"contact_role": "owner",
"contact_id": "alice@example.com"
}
]
},
"parent_data_domain": "projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/PARENT_DATA_DOMAIN_ID"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
データドメインのロールと権限
次の表に、データドメインのオーナーとユーザーに付与できる IAM 事前定義ロールを示します。
| ロール名 | IAM ロール | 説明 |
|---|---|---|
| Dataplex データドメイン管理者 | roles/dataplex.dataDomainAdmin |
データドメインとサブドメイン、およびそれらのバインディングを作成、管理できます。管理者ロールでは、ドメインのすべての IAM ロールと権限を管理することもできます。 |
| Dataplex データドメイン構成の閲覧者 | roles/dataplex.dataDomainViewer |
データドメインとリソースドメインのバインディングの構成を表示できます。 |
| Dataplex データドメイン構成の編集者 | roles/dataplex.dataDomainEditor |
既存のドメインを編集したり、リソースとドメインのバインディングを作成して管理したりできます。編集者のロールでは、ユーザーによるドメイン リソースの検出を許可するメタデータ認可を管理することもできます。 |
| Dataplex データドメイン エントリ リーダー | roles/dataplex.dataDomainEntryReader |
データドメイン、そのサブドメイン、および含まれるすべてのリソースのメタデータを検出して表示できます。 |
ドメイン所有者またはユーザーにロールを付与する場合は、次の点を考慮してください。
- Identity and Access Management のデータドメイン ロールは、親ドメインからサブドメインに伝播されますが、含まれるリソースに直接伝播されることはありません。つまり、BigQuery データセットを含むドメインのユーザーに
roles/dataplex.dataDomainEntryReaderを付与しても、ユーザーにはデータセットの Identity and Access Management ロールにこのロールが表示されません。 ドメインに付与された
roles/dataplex.dataDomainEntryReaderロールを使用すると、次の操作を行うことができます。- リソース、その詳細、メタデータを検出できますが、ドメイン内でリソースを表示する場合。詳細については、データドメインの制限事項をご覧ください。
- ドメインにあるリソースで
lookupEntryなどの API メソッドを使用できます。
データドメインへのアクセス権を付与する
データドメインとそのリソースを操作するユーザーに IAM ロールと権限を付与する手順は次のとおりです。
コンソール
Google Cloud コンソールで、[データドメイン] ページに移動します。
ドメイン名をクリックして、ドメインの詳細ページに移動します。
上部のバーで [権限] をクリックします。
[プリンシパルを追加] をクリックします。
[新しいプリンシパル] フィールドに、プリンシパルのメールアドレスを入力します。
[ロールを選択] フィールドで、データドメインのロールを選択します。たとえば、
Dataplex Data Domain Entry Readerを使用すると、ユーザーはデータドメイン、そのサブドメイン、含まれるリソースのメタデータを検出して表示できます。さらにロールを付与する場合は、[別のロールを追加] をクリックします。[保存] をクリックします。
REST
データドメインに IAM ポリシーを設定するには、projects.locations.dataDomains.setIamPolicy メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。LOCATION_ID: データドメインが存在するリージョン。例:us-central1DOMAIN_ID: データドメインの固有識別子。ROLE: ドメイン ユーザーに付与するロール。
HTTP メソッドと URL:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/DOMAIN_ID:setIamPolicy
リクエストの本文(JSON):
{
"policy": {
"bindings": [
{
"role": "ROLE",
"members": [
"user:example-user@google.com",
"group:finance-consumers@google.com"
]
}
]
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
データドメインへのアクセス権を取り消す
プリンシパルからロールまたは権限を削除する手順は次のとおりです。
コンソール
Google Cloud コンソールで、[データドメイン] ページに移動します。
ドメイン名をクリックして、ドメインの詳細ページに移動します。
上部のバーで [権限] をクリックします。
[権限] ペインで、ロールを取り消すプリンシパルを見つけます。
削除するロールの横にある [削除] アイコンをクリックします。
[保存] をクリックします。
REST
REST API を使用してデータドメインへのアクセス権を取り消すには、projects.locations.dataDomains.getIamPolicy メソッドを使用して既存のポリシーを取得し、bindings リストからロールまたはプリンシパルを削除して、projects.locations.dataDomains.setIamPolicy メソッドを使用して更新されたポリシーを設定します。
現在の IAM ポリシーを取得します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。LOCATION_ID: データドメインが存在するリージョン。例:us-central1DOMAIN_ID: データドメインの固有識別子。
HTTP メソッドと URL:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/DOMAIN_ID:getIamPolicy
リクエストを送信するには、次のいずれかのオプションを展開します。
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
更新されたポリシーを設定します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。LOCATION_ID: データドメインが存在するリージョン。例:us-central1DOMAIN_ID: データドメインの固有識別子。ROLE: ドメイン ユーザーに付与するロール。
HTTP メソッドと URL:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/DOMAIN_ID:setIamPolicy
リクエストの本文(JSON):
{ "policy": { "bindings": [ { "role": "ROLE", "members": [ "user:example-user@google.com", "group:finance-consumers@google.com" ] } ] } }リクエストを送信するには、次のいずれかのオプションを展開します。
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
次のステップ
- データドメインの詳細を確認する。
- リソースのバインディングとインクルージョンの詳細を確認する。
- データドメインを管理する方法を確認する。
- データドメインを使用する方法を確認する。