Managed Service for Apache Spark プリンシパル

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

複数のプロジェクトにわたる作業の実現に役立つように、このドキュメントでは、Managed Service for Apache Spark を使用するプリンシパルと、 Google Cloud リソースにアクセスして使用するためにプリンシパルが必要とする権限を含むロールを示します。

Managed Service for Apache Spark にアクセスして使用するプリンシパル(ID)は 3 つあります。

  1. ユーザー ID
  2. コントロール プレーン ID
  3. データプレーン ID

    dataproc-service-accounts1

Dataproc API ユーザー(ユーザー ID)

例: username@example.com

これは、Managed Service for Apache Spark を呼び出してクラスタを作成し、ジョブを送信して、サービスに他のリクエストを行うユーザーです。通常、ユーザーは個人ですが、API クライアントや別のGoogle Cloud サービス(Compute Engine、Cloud Run functions、Managed Service for Apache Airflow など)から Managed Service for Apache Spark を呼び出す場合にはサービス アカウントにすることもできます。

関連するロール

  • Dataproc API が送信するジョブは、Linux で root として実行されます。
  • クラスタの作成時に --metadata=block-project-ssh-keys=true を設定して明示的にブロックしない限り、Managed Service for Apache Spark クラスタはプロジェクト全体で Compute Engine SSH メタデータを継承します(クラスタ メタデータを参照)。

  • プロジェクト レベルの SSH ユーザーごとに HDFS ユーザー ディレクトリが作成されます。これらの HDFS ディレクトリはクラスタのデプロイ時に作成され、新しい(デプロイ後の)SSH ユーザーには、既存のクラスタの HDFS ディレクトリは指定されません。

Managed Service for Apache Spark サービス エージェント(コントロール プレーン ID)

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

Managed Service for Apache Spark サービス エージェント サービス アカウントは、Managed Service for Apache Spark クラスタが作成されたプロジェクト内のリソースに対して、幅広いシステム オペレーションを実行するために使用されます。たとえば、次の場合に使用されます。

  • VM インスタンス、インスタンス グループ、インスタンス テンプレートなどの Compute Engine リソースの作成
  • イメージ、ファイアウォール、Managed Service for Apache Spark 初期化アクション、Cloud Storage バケットなどのリソースの構成を確認する getlist のオペレーション
  • Managed Service for Apache Spark ステージング バケットと一時バケットの自動作成(ユーザーによってステージング バケットまたは一時バケットが指定されていない場合)
  • ステージング バケットへのクラスタ構成メタデータの書き込み
  • ホスト プロジェクトの VPC ネットワークへのアクセス

関連するロール

Managed Service for Apache Spark VM サービス アカウント(データプレーン ID)

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

アプリケーション コードは、Managed Service for Apache Spark VM で VM サービス アカウントとして実行されます。ユーザージョブには、このサービス アカウントのロール(および関連付けられている権限)が付与されます。

VM サービス アカウントは次の処理を行います。

関連するロール

次のステップ