このドキュメントでは、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 のセキュリティの詳細を確認する