このドキュメントでは、 Google Cloud コンソールと REST API を使用してデータドメインとサブドメインを作成する方法と、ドメインとそのリソースを操作するユーザーに 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 で、[データドメイン] ページに移動します。
[データドメインを作成] をクリックし、次の情報を入力します。
- [表示名] フィールドに、ドメインのわかりやすい名前を入力します。例:
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 で、[データドメイン] ページに移動します。
サブドメインを作成するドメインを選択します。
[データ サブドメインを作成] をクリックし、次の情報を入力します。
- [表示名] フィールドに、ドメインのわかりやすい名前を入力します。例:
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 メソッドを使用できます。
データドメインへのアクセス権を付与する
コンソール
データドメインへのアクセス権を付与する手順は次のとおりです。
コンソール 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)と空のレスポンスが返されます。