このドキュメントでは、Identity and Access Management(IAM)を使用して、Knowledge Catalog(以前の Dataplex Universal Catalog)リソースのアクセス制御を管理する方法について説明します。IAM は、 リソースレベルで Google Cloud Knowledge Catalog リソースへのアクセスを制御します。 Google Cloud コンソール、Google Cloud CLI、クライアント ライブラリ、API を使用して、どのプリンシパルが特定のリソース(エントリ グループやエントリなど)を管理できるかを制御できます。
IAM の詳細については、 IAM のドキュメントをご覧ください。
IAM の概要
新しい Google Cloud プロジェクトを作成すると、 元のプロジェクト作成者にオーナーロールが付与されます。他の Google マネージド サービス アカウントは、特定のタスクを実行するために API を有効にしたときに作成される場合があります。ただし、他の個々のユーザーは、Knowledge Catalog リソースを含めて、プロジェクトとそのリソースにアクセスできません。このアクセス権は、ユーザーをプロジェクト メンバーとして明示的に追加した場合や、特定のリソースに対するロールを付与した場合にのみ付与されます。
IAM を使用すると、特定の Google Cloud リソースに対するアクセス権をきめ細かく設定し、他のリソースへの不要なアクセスを防ぐことが可能です。IAM では、リソースに対する必要なアクセス権のみを付与することで、セキュリティに関する最小権限の原則を導入できます。
IAM では、どのリソースに対してどのアクセス権(ロール)を誰(プリンシパル)に付与するかを制御できます。
プリンシパル
プリンシパルは、Google アカウント(エンドユーザーの場合)、サービス アカウント(アプリと仮想マシンの場合)、Google グループ、Google Workspace ドメイン、Cloud Identity ドメインのいずれかです。こうしたプリンシパルはリソースにアクセスできます。ロールを付与するときは、 ポリシー バインディング リファレンスで説明されているように、ID を使用してプリンシパルを識別します。
詳細については、IAM の概要: プリンシパルをご覧ください。
サービス エージェント
Knowledge Catalog は、 Google Cloud マネージド サービス アカウントである サービス エージェントを使用してリソースにアクセスします。サービス エージェントは、Google が管理するサービス アカウントで、サービス Google Cloud がプロジェクト内のリソースにアクセスできるようにします。これは、アプリケーションやワークロードを表すために作成して使用するユーザー管理サービス アカウントとは異なります。
サービス エージェントは、Dataplex API を有効にすると作成されます。サービス エージェントは、次のメール ID で識別できます。
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
ここで、CUSTOMER_PROJECT_NUMBER は Dataplex API を有効にしたプロジェクトのプロジェクト番号です。
サービス エージェントは、Knowledge Catalog リソースを管理するために、プロジェクトに対するDataplex サービス エージェント (roles/dataplex.serviceAgent)ロールを必要とします。API を有効にすると、このロールが自動的に付与されます。このロールを取り消すと、Knowledge Catalog が正常に機能しない可能性があります。
Knowledge Catalog が他のプロジェクトのリソース(アセットとして接続する Cloud Storage バケットや、データ プロファイルのスキャンに使用する BigQuery データセットなど)にアクセスする必要がある場合は、それらのリソースを含むプロジェクトで必要な権限をこのサービス エージェントに付与する必要があります。
アセットを接続するためのサービス エージェントへの権限付与の詳細については、データアセットを管理するをご覧ください。
データ プロファイリングのためのサービス エージェントへの権限付与の詳細については、データ プロファイル スキャンを作成して使用するをご覧ください。
データ スキャンの実行 ID
デフォルトでは、Knowledge Catalog はサービス エージェントを使用して、データ品質とデータ プロファイルのスキャンを実行します。ただし、この動作をオーバーライドして、カスタム サービス アカウントまたは独自のエンドユーザー認証情報(EUC)を使用してスキャンを実行することもできます。
スキャンの実行 ID にカスタム サービス アカウントを指定する場合、サービス エージェントは、ターゲット サービス アカウントの権限を借用してジョブを実行するために、ターゲット サービス アカウントに対するサービス アカウント トークン作成者 (roles/iam.serviceAccountTokenCreator)ロール(または iam.serviceAccounts.getAccessToken 権限)を必要とします。詳細については、データ品質とデータ プロファイリングの実行
ID のドキュメントをご覧ください。
リソース
Knowledge Catalog でアクセス権を付与できるリソースには、プロジェクト、エントリ グループ、エントリ、エントリリンク、アスペクト タイプ、エントリタイプ、エントリリンク タイプなどがあります。
一部の API メソッドでは、複数のリソースに対する権限が必要です。たとえば、エントリにアスペクトを関連付けるには、エントリとアスペクト タイプの両方に対する権限が必要です。
ロール
ロールとは、プリンシパルがリソースに対して実行できるオペレーションを決定する権限の集合を指します。プリンシパルにロールを付与すると ロールに 含まれるすべての権限が付与されます
プリンシパルに 1 つ以上のロールを付与できます。
他の Google Cloud プロダクトと同様に、Knowledge Catalog は 次の 3 種類のロールをサポートしています。
基本ロール: IAM の導入前に存在していた、非常に高い権限を持つロール(オーナー、編集者、閲覧者)。基本ロールの詳細については、基本ロールをご覧ください。
事前定義ロール: 特定の Google Cloudリソースに対するきめ細かいアクセス権を付与します。事前定義ロールの詳細については、事前定義 ロールをご覧ください。Knowledge Catalog IAM ロール のドキュメントには、Knowledge Catalog の事前定義ロールの詳細が記載されています。
カスタムロール: 必要な特定の権限のみを付与することで、最小権限の原則を適用できます。カスタムロールの詳細については、カスタムロールをご覧ください。
たとえば、Dataplex 閲覧者 (roles/dataplex.viewer)の事前定義ロールは、Knowledge Catalog
リソースへの読み取り専用アクセス権を付与します。このロールを持つプリンシパルは、エントリ グループ、エントリ、エントリリンク、アスペクト
タイプ、エントリタイプ、エントリリンク タイプを表示できますが、作成、更新、削除はできません。
一方、Dataplex
管理者 (roles/dataplex.admin)は、Knowledge Catalog リソースの管理に対する広範なアクセス権を付与します。
ロールの割り当ての詳細については、アクセス権の付与、 変更、取り消しをご覧ください。
特定のタスクに必要な権限を確認するには、 Knowledge Catalog ロールと Knowledge Catalog 権限のリファレンス ページをご覧ください。
たとえば、プロジェクト リソースに対して、Google アカウントに roles/dataplex.admin
ロールを割り当てることが可能です。そのアカウントは、プロジェクト内の Knowledge Catalog
リソースを管理できますが、他のリソースは管理できません。また、IAM を使用して、プロジェクト
チームのメンバーに付与されている基本ロールを管理することもできます。
リソースの IAM ポリシー
IAM ポリシーを使用すると、プロジェクト レベルでロールを管理する代わりに、またはそれに加えて、リソースに対する IAM ロールを管理できます。これにより、共同編集者が作業を行うために必要な特定のリソースのみへのアクセス権の付与することで、最小権限の原則を柔軟に適用できます。
リソースは親リソースのポリシーを継承します。プロジェクト レベルでポリシーを設定すると、そのすべての子リソースが継承します。特定のリソースに対して有効なポリシーは、そのリソースに設定されたポリシーとリソース階層の上位から継承されるポリシーを組み合わせたものです。詳細については、IAM ポリシーの階層をご覧ください。
IAM ポリシーは、 Google Cloud コンソール、Identity and Access Management API、gcloud CLI を使用して取得、設定します。
- Google Cloud コンソールについては、Google Cloud コンソールによるアクセス制御をご覧ください。
- API については、API によるアクセス制御をご覧ください。
- gcloud CLI については、gcloud CLI を使用したアクセス制御 をご覧ください。
次のステップ
- IAM のロールの詳細を確認する。
- IAM 権限の詳細を確認する。
- Knowledge Catalog のセキュリティの詳細を確認する。