Cloud Dataproc プリンシパルと役割

Cloud Dataproc サービスを使用してクラスタを作成し、クラスタでジョブを実行すると、Cloud Dataproc サービスは必要な Cloud Dataproc 権限と IAM 役割をプロジェクトに設定し、そのタスクの完了に必要な Google Cloud Platform リソースにアクセスして使用します。ただし、複数のプロジェクトにわたって作業(たとえば、別のプロジェクトのデータにアクセスするなど)を行う場合、プロジェクトをまたぐリソースにアクセスするための役割と権限を設定する必要があります。

複数のプロジェクトにわたる作業の実現に役立つように、このドキュメントでは、Cloud Dataproc サービスを使用する各種プリンシパルと、GCP リソースにアクセスして使用するためにプリンシパルが必要とする役割および関連する権限を示します。

Cloud Dataproc API ユーザー(エンドユーザー ID)

例: username@example.com

これは、Cloud Dataproc サービスを呼び出すエンドユーザーです。通常、エンドユーザーは個人ですが、API クライアントや別の Google Cloud Platform サービス(Compute Engine、Cloud Functions、Cloud Composer など)から Cloud Dataproc を呼び出す場合にはサービス アカウントにすることもできます。

関連する役割と権限:

注意事項:

  • Cloud Dataproc API が送信したジョブは root として実行されます。
  • クラスタの作成時に --metadata=block-project-ssh-keys=true を設定して明示的にブロックしない限り、Cloud Dataproc クラスタはプロジェクト全体で Compute Engine SSH メタデータを継承します(クラスタ メタデータを参照)。
  • gcloud compute ssh で Cloud Dataproc クラスタに接続し、コマンドラインからジョブを送信した場合、ジョブはログインしているユーザー名で実行されますが、デフォルトでは、この認証は VM 内で適用されません。
  • プロジェクト レベルの SSH ユーザーごとに HDFS ユーザー ディレクトリが作成されます。これらの HDFS ディレクトリはクラスタのデプロイ時に作成されます。既存のクラスタに新しい HDFS ディレクトリが作成されることはありません。

Cloud Dataproc サービス エージェント(コントロール プレーン ID)

例: service-project-number@dataproc-accounts.iam.gserviceaccount.com

Cloud Dataproc は、Cloud Dataproc ユーザーの GCP プロジェクトに Dataproc サービス エージェントの役割でこのサービス アカウントを作成します。クラスタを作成するとき、このサービス アカウントをユーザー指定のサービス アカウントに置き換えることはできません。別のプロジェクトで共有 VPC ネットワークを使用するクラスタを作成する場合を除き、このサービス アカウントを構成する必要はありません。

このサービス アカウントは、以下を含む幅広い一連のシステム オペレーションを実行するために使用されます。

  • イメージ、ファイアウォール、Cloud Dataproc 初期化アクション、Cloud Storage バケットなどのリソースの構成を確認するための取得と一覧表示のオペレーション
  • Cloud Dataproc ステージング バケットの自動作成(ステージング バケットがユーザーによって指定されていない場合)
  • ステージング バケットへのクラスタ構成メタデータの書き込み
  • VM インスタンス、インスタンス グループ、インスタンス テンプレートなどの Compute Engine リソースの作成

関連するエラー: 「サービス アカウントには、リソースの読み取りまたは一覧表示のアクセス権がありません。」

関連する役割と権限:

  • 役割: Dataproc サービス エージェント

Cloud Dataproc VM サービス アカウント(データプレーン ID)

例: project-number-compute@developer.gserviceaccount.com

Cloud Dataproc VM は、このサービス アカウントとして実行されます。ユーザージョブには、このサービス アカウントの権限が付与されます。クラスタの作成時にユーザー マネージド サービス アカウントを指定しないと、(上記の例に示したように)デフォルトの Compute Engine サービス アカウントが使用されます。

VM サービス アカウントには、次の操作を行うための権限が必要です。

  • Cloud Dataproc ステージング バケットの読み取りと書き込み

VM サービス アカウントには、ジョブの要件に応じて、以下の操作を行うための権限が必要になります。

  • Cloud Storage、BigQuery、Stackdriver Logging、その他の Google Cloud Platform リソースでの読み取りと書き込み

関連する役割と権限:

詳細情報

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Dataproc ドキュメント
ご不明な点がありましたら、Google のサポートページをご覧ください。