Managed Service for Apache Spark のサービス アカウントのロールを付与する

このページでは、Managed Service for Apache Spark サービス アカウントに対するサービス アカウント ユーザー のロールを Cloud Data Fusion サービス エージェントに付与して、Managed Service for Apache Spark クラスタでパイプラインをプロビジョニングおよび実行できるようにする方法について説明します。

Managed Service for Apache Spark で使用されるサービス アカウントには、Cloud Data Fusion ランタイム リソースにアクセスするための 権限datafusion.instances.runtime付与することも必要です。

ユーザー管理のサービス アカウントを使用するか、クラスタ内の仮想マシンでデフォルトの Compute Engine サービス アカウントを使用するかにかかわらず、サービス アカウントのユーザーロールを Cloud Data Fusion に付与する必要があります。それ以外の場合、Cloud Data Fusion は Managed Service for Apache Spark クラスタをプロビジョニングできず、データ パイプラインの実行時に次のエラーが発生します。

PROVISION task failed in REQUESTING_CREATE state for program run [pipeline-name] due to Managed Service for Apache Spark operation failure: INVALID_ARGUMENT: User not authorized to act as service account '[service-account-name]'

サービス アカウント名を取得する

  1. コンソールで、[Identity and Access Management] ページに移動します。 Google Cloud
    [IAM] ページに移動
  2. ページの上部にあるプロジェクト セレクタから、Cloud Data Fusion インスタンスが属するプロジェクト、 フォルダ、または組織を選択します。
  3. Cloud Data Fusion サービス アカウント 名を見つけてコピーします。service-[project-number]@gcp-sa-datafusion.iam.gserviceaccount.com 形式を使用します。

サービス アカウントにユーザー権限を付与する

  1. コンソールで、[サービス アカウント] ページに移動します。 Google Cloud
    [サービス アカウント] ページに移動
  2. [プロジェクトを選択] をクリックし、Managed Service for Apache Spark クラスタに使用するサービス アカウントがあるプロジェクトを選択して、 [開く] をクリックします。
  3. Managed Service for Apache Spark サービス アカウントのメールアドレスをクリックします。

  4. [アクセス権を持つプリンシパル] タブをクリックします。ページに、サービス アカウントにロールが付与されたプリンシパルのリストが表示されます。

  5. [**アクセスを許可**] をクリックします。

  6. [新しいプリンシパル] フィールドに、先ほどコピーした Cloud Data Fusion サービス アカウント名を貼り付けます。

  7. サービス アカウント ユーザーのロールを選択します。

    サービス アカウント ユーザー

  8. [保存] をクリックします。

Managed Service for Apache Spark サービス アカウントにロールを付与する

ランナーのロールの権限を付与する

Cloud Data Fusion ランナーのロール (roles/datafusion.runner) を Managed Service for Apache Spark で使用するサービス アカウントに付与します。これにより、Managed Service for Apache Spark サービス アカウントがプロジェクト内で Cloud Data Fusion パイプラインを実行することが認可されます。詳細については、サービス アカウントをリソースに関連付ける権限を要求するをご覧ください。

Cloud Storage 管理者の権限を付与する

Cloud Data Fusion バージョン 6.2.0 以降で、 Cloud Storage 管理者のロール (roles/storage.admin) をプロジェクト内の Managed Service for Apache Spark で使用するサービス アカウントに付与します。

次のステップ