このドキュメントでは、Data Catalog を使用して Google Cloud リソースを検索してタグ付けできるようにする Identity and Access Management(IAM)のロールについて説明します。
IAM とその機能の詳細については、IAM のドキュメントをご覧ください。
IAM の用語
- 権限
- 実行時にチェックされて、操作の実行や Google Cloud リソースへのアクセスが許可されます。権限は直接付与されるのではなく、権限を含むロールが付与されます。
- ロール
- ロールは、事前定義された権限のコレクションです。権限のカスタム コレクションで構成されるカスタムロールも許可される場合があります。
Data Catalog のロールを表示する
Google Cloud コンソールで、[IAM と管理] > [ロール] ページに移動します。
[フィルタ] フィールドで [次の中で使用] を選択し、「
Data Catalog
」または「Data Lineage
」と入力して Enter キーを押します。ロールをクリックして、右側のペインにロールの権限を表示します。
たとえば、Data Catalog 管理者のロールには、すべての Data Catalog リソースに対する完全アクセス権が付与されます。
Data Catalog の事前定義されたロール
Data Catalog の事前定義ロールには、Data Catalog 管理者、Data Catalog 閲覧者、Data Catalog TagTemplate 作成者が含まれます。これらのロールの一部については、次のセクションで説明します。
Data Catalog の事前定義されたロールのリストと説明、および各ロールに関連付けられている権限については、Data Catalog のロールをご覧ください。
Data Catalog 管理者のロール
roles/datacatalog.admin
ロールは、すべての Data Catalog リソースにアクセスできます。Data Catalog 管理者は、さまざまな種類のユーザーを Data Catalog プロジェクトに追加できます。
Data Catalog データ スチュワードのロール
roles/datacatalog.dataSteward
ロールを使用すると、BigQuery テーブルなどのデータエントリのデータ スチュワードとリッチテキストの概要を追加、編集、削除できます。
Data Catalog 閲覧者のロール
Google Cloud リソースへのアクセスを簡単に取得できるよう、Data Catalog には、カタログ化されたすべての Google Cloud リソースのメタデータ読み取り権限が付与された roles/datacatalog.viewer
ロールが用意されています。
このロールは、Data Catalog のタグ テンプレートとタグを表示する権限も付与します。
プロジェクトに Data Catalog 閲覧者のロールを付与して、Data Catalog で Google Cloud リソースを表示します。
Data Catalog TagTemplate 作成者のロール
roles/datacatalog.tagTemplateCreator
ロールを使用すると、タグ テンプレートを作成できます。
Data Catalog 検索管理者ロール
roles/datacatalog.searchAdmin
ロールを使用すると、プロジェクトまたは組織内のカタログ化されたすべての Google Cloud リソースを検索で取得できます。
Data Catalog 移行構成管理者ロール
roles/datacatalog.migrationConfigAdmin
ロールを使用すると、Data Catalog から Dataplex Catalog へのリソースの移行に関連する構成を設定および取得できます。
事前定義されたデータリネージのロール
Data Catalog エントリのリネージにアクセスするには、Data Catalog 内のエントリにアクセスする必要があります。Data Catalog エントリにアクセスするには、対応するシステム リソースに対する閲覧者のロールまたは Data Catalog エントリを保存するプロジェクトに対する Data Catalog 閲覧者(roles/datacatalog.viewer
)のロールが必要です。このセクションでは、リネージの表示に必要なロールについて説明します。
リネージ閲覧者のロール
データリネージ閲覧者(roles/datalineage.viewer
)のロールを使用すると、Google Cloud コンソールで Dataplex リネージを表示し、データリネージ API を使用してリネージ情報を読み取ることができます。特定のプロセスの実行とイベントはすべて、そのプロセスと同じプロジェクトに保存されます。自動化されたリネージの場合、プロセス、実行、イベントは、リネージを生成したジョブが実行されているプロジェクトに保存されます。たとえば、BigQuery ジョブが実行されているプロジェクトなどがこれに該当します。
アセット間のリネージの表示と、アセットのメタデータの表示には、異なるロールが必要です。前者については、データリネージ閲覧者(roles/datalineage.viewer
)が必要です。後者については、Data Catalog のメタデータ エントリへのアクセスに使用するものと同じロールが必要です。
2 つのアセット間のリネージを表示するロール
アセット間のリネージを表示するには、次のプロジェクトに対するデータリネージ閲覧者のロール(roles/datalineage.viewer
)が必要です。
- リネージを表示しているプロジェクト(アクティブ プロジェクト)。Google Cloud コンソールの上部にあるプルダウンにあるプロジェクト、または API 呼び出しが行われるプロジェクトです。これは通常、Data Catalog リソース プロジェクトです。
- リネージが記録されているプロジェクト(コンピューティング プロジェクト)。前述のように、リネージは、対応するプロセスが実行されたプロジェクトに保存されます。このプロジェクトは、リネージを表示しているアセットを保存するプロジェクトとは異なる場合があります。
ロールの付与の詳細については、アクセスの管理をご覧ください。必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
ユースケースに応じて、フォルダレベルまたは組織レベルでデータリネージ閲覧者(roles/datalineage.viewer
)ロールを付与して、リネージへのアクセスを保証します(単一ロールの付与または取り消しをご覧ください)。データリネージに必要なロールは、Google Cloud CLI を介してのみ付与できます。
リネージの表示時にアセットのメタデータを表示するロール
アセットに関するメタデータが Data Catalog に保存されている場合、対応するシステム リソースに対する閲覧者のロールまたは Data Catalog エントリが保存されているプロジェクトに対する Data Catalog 閲覧者(roles/datacatalog.viewer
)を持っている場合にのみ、そのメタデータを表示できます。適切な閲覧者のロールを介してリネージ グラフまたはリスト上のアセットにアクセスできるものの、アセット間のリネージにアクセスできない場合があります。これは、リネージが記録されたプロジェクトに対するデータリネージ閲覧者のロール(roles/datalineage.viewer
)がない場合に発生します。この場合、リネージの存在に関する情報の漏洩を防ぐため、Data Lineage API と Google Cloud コンソールにはリネージが表示されず、エラーは返されません。したがって、アセットのリネージが存在しない場合でも、そのアセットのリネージがないわけではなく、そのリネージにアクセスできない可能性があります。
データリネージ イベント プロデューサーのロール
roles/datalineage.producer
ロールを使用すると、ユーザーはデータリネージ API を使用してリネージ情報を手動で変更できます。
データリネージ編集者のロール
roles/datalineage.editor
ロールを使用すると、ユーザーはデータリネージ API を使用してリネージ情報を手動で変更できます。
データリネージ管理者のロール
roles/datalineage.admin
ロールを使用すると、ユーザーはこのセクションに記載されているすべてのリネージ オペレーションを実行できます。
公開タグと非公開タグを表示する権限
公開タグは単純検索を使用して検索できます。データエントリの表示に必要な権限があれば、公開タグを含むデータエントリを表示できます。タグ テンプレートに対する追加の権限は必要ありません。データエントリを表示するために必要な権限については、このセクションの表をご覧ください。
ただし、これらの公開タグを検索すると想定されるユーザーには datacatalog.tagTemplates.get
権限も付与することをおすすめします。この権限を付与すると、ユーザーは検索述語 tag: を使用することも、Data Catalog の検索ページでタグ テンプレートの検索ファセットを使用することもできるようになります。
非公開タグの場合、タグを検索して、エントリの詳細ページでタグを表示するには、タグ テンプレートとデータエントリの両方に対する表示権限が必要です。ユーザーは、タグの検索には、tag: 検索述語またはタグ テンプレート検索ファセットを使用する必要があります。非公開タグの単純検索はサポートされていません。
次の点にご注意ください。
非公開タグ テンプレートに必要な閲覧権限は
datacatalog.tagTemplates.getTag
です。次の表に、公開タグと非公開タグの両方のデータエントリに対する閲覧権限を示します。
リソース | 権限 | ロール |
---|---|---|
BigQuery のデータセット、テーブル、モデル、ルーティン、接続 | bigquery.datasets.get bigquery.tables.get bigquery.models.getMetadata bigquery.routines.get bigquery.connections.get |
roles/datacatalog.tagTemplateViewer roles/bigquery.metadataViewer roles/bigquery.connectionUser |
Pub/Sub トピック | pubsub.topics.get |
roles/datacatalog.tagTemplateViewer roles/pubsub.viewer |
Spanner のインスタンス、データベース、テーブル、ビュー | Instance: spanner.instances.get Database:spanner.databases.get Table: spanner.databases.get Views: spanner.databases.get datacatalog.tagTemplates.getTag |
使用できる事前定義ロールはありません。 |
Bigtable のインスタンスとテーブル | bigtable.instances.get bigtable.tables.get datacatalog.tagTemplates.getTag |
roles/datacatalog.tagTemplateViewer roles/bigtable.viewer |
Dataproc Metastore のサービス、データベース、テーブル | metastore.tables.get metastore.databases.get metastore.services.get |
roles/datacatalog.tagTemplateViewer roles/metastore.metadataViewer |
カスタム エントリ | datacatalog.entries.get |
使用できる事前定義ロールはありません。 |
Google Cloud リソースを検索するためのロール
Google Cloud リソースを検索、検出、表示する前に、Data Catalog は、BigQuery、Pub/Sub、Dataproc Metastore などのソースシステムがリソースにアクセスするために必要なメタデータの読み取り権限を持つ IAM ロールがユーザーに付与されていることを確認します。
例: Data Catalog は、BigQuery テーブルのメタデータを表示する前に、bigquery.tables.get permission
のロールが付与されていることを確認します。
次の表に、Data Catalog を使用して一覧表示された Google Cloud リソースを検索するために必要な権限と関連するロールを示します。
リソース | 権限 | ロール |
---|---|---|
BigQuery のデータセット、テーブル、モデル、ルーティン、接続 | bigquery.datasets.get bigquery.tables.get bigquery.models.getMetadata bigquery.routines.get bigquery.connections.get |
roles/bigquery.metadataViewer roles/bigquery.connectionUser Data Catalog 閲覧者のロールもご覧ください。 |
Pub/Sub トピック | pubsub.topics.get |
roles/pubsub.viewer Data Catalog 閲覧者のロールもご覧ください |
Spanner のデータベースとテーブル | インスタンス: spanner.instances.get データベース: spanner.databases.get ビュー: spanner.databases.get |
使用できる事前定義ロールはありません。 |
Bigtable のインスタンスとテーブル | bigtable.instances.get bigtable.tables.get |
roles/bigtable.viewer Data Catalog 閲覧者のロールもご覧ください |
Dataplex のレイク、ゾーン、テーブル、ファイルセット | dataplex.lakes.get dataplex.zones.get dataplex.entities.get dataplex.entities.get |
使用できる事前定義ロールはありません。 |
Dataproc Metastore のサービス、データベース、テーブル | metastore.tables.get metastore.databases.get metastore.services.get |
roles/metastore.metadataViewer |
Google Cloud リソースにタグをアタッチするためのロール
Google Cloud リソースに公開タグと非公開タグを付加するには、同じ権限が必要です。
Data Catalog を使用すると、ユーザーはタグを添付して、Google Cloud リソースのメタデータを拡張できます。リソースに添付できる 1 つ以上のタグは、タグ テンプレートで定義されています。
ユーザーがタグ テンプレートを使用してタグを Google Cloud リソースに添付しようとすると、Data Catalog は、ユーザーにタグ テンプレートを使用する権限とリソースメタデータを更新する権限が付与されていることを確認します。次の表に示すように、権限は IAM ロールを介して付与されます。
次の表に、ユーザーが Data Catalog を使用して、リストされた Google Cloud リソースに公開タグと非公開タグの両方を追加するために必要な権限と関連するロールを示します。
次の表の各行には、リソースにタグを付けるために必要な権限が一覧表示されています。対応するロールは、追加の権限を付与する場合があります。各ロールをクリックして、関連付けられているすべての権限を表示します。
次の点にご注意ください。
データエントリのオーナーはデフォルトで
datacatalog.entries.updateTag
権限を持っています。それ以外のすべてのユーザーには datacatalog.tagEditor のロールを付与する必要があります。datacatalog.tagTemplates.use
権限も、表に記載されているすべてのリソースに必要です。
リソース | 権限 | ロール |
---|---|---|
BigQuery のデータセット、テーブル、 モデル、ルーティン、 接続 |
bigquery.datasets.updateTag bigquery.tables.updateTag bigquery.models.updateTag bigquery.routines.updateTag bigquery.connections.updateTag |
roles/datacatalog.tagTemplateUser roles/datacatalog.tagEditor roles/bigquery.dataEditor |
Pub/Sub トピック | pubsub.topics.updateTag |
roles/datacatalog.tagTemplateUser roles/datacatalog.tagEditor roles/pubsub.editor |
Spanner のデータベースとテーブル | インスタンス: spanner.instances.UpdateTag データベース: spanner.databases.UpdateTag テーブル: spanner.databases.UpdateTag ビュー: spanner.databases.UpdateTag |
使用できる事前定義ロールはありません。 |
Bigtable のインスタンスとテーブル | bigtable.instances.update bigtable.tables.update |
roles/datacatalog.tagTemplateUser roles/datacatalog.tagEditor roles/bigtable.admin |
Dataplex のレイク、ゾーン、テーブル、ファイルセット | dataplex.lakes.update dataplex.zones.update dataplex.entities.update dataplex.entities.update |
使用できる事前定義ロールはありません。 |
Dataproc Metastore のサービス、データベース、テーブル | metastore.tables.update metastore.databases.update metastore.services.update |
roles/datacatalog.tagTemplateUser roles/datacatalog.tagEditor roles/metastore.editor roles/metastore.metadataEditor |
Google Cloud リソースのカスタムロール
他の Google Cloud システムからのデータエントリに対する事前定義された編集者ロールでは、必要以上の書き込みアクセスが提供される場合があります。カスタムロールを使用して、Google Cloud リソースに対してのみ *.updateTag
権限を指定します。
Data Catalog でリッチテキストの概要とデータ スチュワード変更するロール
リッチテキストの概要を添付し、Data Catalog のエントリにデータ スチュワードを割り当てるには、次のロールが必要です。
リソース | 権限 | ロール |
---|---|---|
Google Cloud プロジェクト | datacatalog.entries.updateOverview datacatalog.entries.updateContacts |
roles/datacatalog.dataSteward |
Data Catalog で移行構成を変更するためのロール
Data Catalog から Dataplex への移行に関連する構成を設定および取得するには、次のロールが必要です。
リソース | 権限 | ロール |
---|---|---|
Google Cloud プロジェクトと組織 | datacatalog.migrationConfig.set datacatalog.migrationConfig.get |
roles/datacatalog.migrationConfigAdmin |
Data Catalog での ID 連携
ID 連携では、外部 ID プロバイダ(IdP)を使用し、IAM で Google Cloud サービスに対するユーザーの認証と認可を行うことができます。
Data Catalog は ID 連携をサポートしていますが、次の制限があります。
- Data Catalog API SearchCatalog および StarEntry メソッドは Workforce Identity 連携のみをサポートし、Workload Identity 連携では使用できません。
- Dataplex は、ID 連携ユーザーの Google Cloud コンソールをサポートしていません
次のステップ
- カスタムの IAM ロールを作成する方法を確認する。
- ロールを付与して管理する方法を確認する。
- Dataplex IAM ロールの詳細を確認する。
- BigQuery のアクセス制御の詳細を確認する。
- Pub/Sub のアクセス制御の詳細を確認する。
- Dataproc Metastore のアクセス制御の詳細を確認する。