Dataproc Metastore: IAM を使用したアクセス制御

デフォルトで、すべての Google Cloud プロジェクトには、単一のユーザー(元のプロジェクト作成者)が設定されています。その他のユーザーはプロジェクト メンバーとして追加されるか、特定のリソースにバインディングされるまで、そのプロジェクトにアクセスできず、Dataproc Metastore リソースにもアクセスできません。

このページでは、新規ユーザーをプロジェクトに追加する方法と、Dataproc Metastore リソースに対するアクセス制御を設定する方法について説明します。

IAM とは

Google Cloud には Identity and Access Management(IAM)機能があり、特定の Google Cloud リソースに対するアクセス権を詳細に設定できるため、他のリソースへの不要なアクセスを防ぐことができます。IAM を使用すると、セキュリティに関する最小権限の原則を導入できるため、リソースに対する必要なアクセス権のみ付与できます。

また、IAM では、IAM ポリシーを設定することで、誰(どのユーザー)に、どのリソースに対するどの権限(ロール)を付与するかも制御できます。IAM ポリシーは、特定のロールをプロジェクト メンバーに付与することで、その ID に特定の権限を付与します。たとえば、プロジェクトなどの特定のリソースに対し、Google アカウントに roles/metastore.admin ロールを割り当てると、そのプロジェクト内の Dataproc Metastore リソースを操作できますが、ほかのリソースは管理できません。また、IAM を使用して、プロジェクト チームのメンバーに付与されている基本ロールを管理することもできます。

ユーザーのアクセス制御オプション

ユーザーが Dataproc Metastore リソースを作成して管理できるようにするには、ユーザーをプロジェクトまたは特定のリソースにチームメンバーとして追加し、IAM ロールを使用して権限を付与します。

チームメンバーにできるのは、有効な Google アカウント、Google グループ、サービス アカウント、Google Workspace のドメインのいずれかを持つ個別のユーザーです。プロジェクトまたはリソースにチームメンバーを追加するときは、そのメンバーに付与するロールを指定します。IAM には、事前定義ロール基本ロールカスタムロールの 3 種類のロールがあります。

Dataproc Metastore のロールと特定のロールが権限を付与する API メソッドそれぞれの特性の一覧については、Dataproc Metastore の IAM ロールをご覧ください。

その他のメンバータイプ(サービス アカウントやグループなど)については、ポリシー バインディング リファレンスをご覧ください。

サービス アカウント

サービスが配置されているプロジェクトで Dataproc Metastore API を呼び出してアクションを実行する場合、Dataproc Metastore では、ユーザーの代わりに、アクションの実行に必要な権限を持つサービス アカウントを使用して、これらのアクションを実行します。

次のサービス アカウントには、サービスが配置されているプロジェクトで Dataproc Metastore アクションを実行するために必要な権限があります。

  • service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com

リソースの IAM ポリシー

Dataproc Metastore リソースへのアクセス権は、Dataproc Metastore サービスなどのリソースに IAM ポリシーを直接接続することで付与できます。IAM ポリシーを使用すると、プロジェクト レベルでロールを管理する代わりに(あるいはそれに加えて)、これらのリソースの IAM ロールを管理できます。これにより、共同編集者が作業を行うために必要な特定のリソースのみへのアクセスを許可する、最小権限の原則を適用できます。

リソースは親リソースのポリシーも継承します。プロジェクト レベルでポリシーを設定すると、そのすべての子リソースでそのポリシーが継承されます。特定のリソースに対して有効なポリシーは、そのリソースに設定されたポリシーとリソース階層の上位から継承されるポリシーを組み合わせたものです。詳細については、IAM ポリシーの階層をご覧ください。

IAM ポリシーの取得と設定は、Google Cloud Console、IAM API、Google Cloud CLI のいずれかを使って実行できます。

次のステップ