Data Catalog IAM

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

IAM の用語

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

Data Catalog のロールを表示する

Google Cloud コンソールで、次の操作を行います。

  1. [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 プロジェクトにさまざまなタイプのユーザーを追加できます。

DataCatalog データ スチュワードのロール

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 ロールを使用すると、ユーザーはタグ テンプレートを作成できます。

DataCatalog 検索管理者のロール

roles/datacatalog.searchAdmin ロールを使用すると、ユーザーはプロジェクトまたは組織内のすべてのカタログ化された Google Cloud リソースを検索で取得できます。

事前定義されたデータリネージのロール

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 つのサブセクションで、詳しく説明します。

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 と UI にはリネージが表示されず、エラーは返されません。したがって、アセットにリネージが存在しない場合、そのアセットにリネージがないわけではありません。ユーザーがそのリネージにアクセスできない可能性があります。

データリネージ イベント プロデューサーのロール

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 での ID 連携

ID 連携では、外部 ID プロバイダ(IdP)を使用し、IAM で Google Cloud サービスに対するユーザーの認証と認可を行うことができます。

Data Catalog は ID 連携をサポートしていますが、次の制限があります。

詳細情報