Data Catalog IAM ロール

このドキュメントでは、Data Catalog を使用して Google Cloud リソースを検索してタグ付けできるようにする Identity and Access Management(IAM)のロールについて説明します。

IAM とその機能の詳細については、IAM のドキュメントをご覧ください。

IAM の用語

権限
実行時にチェックされて、操作の実行や Google Cloud リソースへのアクセスが許可されます。権限は直接付与されるのではなく、権限を含むロールが付与されます。
ロール
ロールは、事前定義された権限のコレクションです。権限のカスタム コレクションで構成されるカスタムロールも許可される場合があります。

Data Catalog のロールを表示する

  1. Google Cloud コンソールで、[IAM と管理] > [ロール] ページに移動します。

    [ロール] に移動

  2. [フィルタ] フィールドで [次の中で使用] を選択し、「Data Catalog」または「Data Lineage」と入力して Enter キーを押します。

  3. ロールをクリックして、右側のペインにロールの権限を表示します。

    たとえば、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 連携をサポートしていますが、次の制限があります。

次のステップ