Identity and Access Management(IAM)を使用すると、プロジェクトのリソースへのアクセスを制御できます。このドキュメントでは、Managed Service for Apache Spark サーバーレス デプロイに関連する IAM 権限と、それらの権限を付与する IAM ロールについて説明します。
Managed Service for Apache Spark サーバーレス デプロイの権限
Managed Service for Apache Spark の権限により、ユーザーとサービス アカウントは Managed Service for Apache Spark リソースに対するアクションを実行できます。たとえば、dataproc.batches.create 権限では、プロジェクトでバッチ ワークロードを作成できます。
ユーザーには権限を直接付与するのではなく、IAM ロールを割り当てます。IAM ロールには、1 つ以上の権限が組み込まれています。権限のリストを含む事前定義ロールを付与することも、カスタムロールに含める 1 つ以上の権限を含むカスタムロールを作成して付与することもできます。
次の表に、Managed Service for Apache Spark リソースを作成またはアクセスする Dataproc API(メソッド)を呼び出すために必要な基本権限を示します。テーブルは、各 Managed Service for Apache Spark リソースに関連付けられている API(batches、sessions、sessionTemplates、operations など)に従って整理されています。
例:
dataproc.batches.createは、含まれるプロジェクト内のバッチの作成を許可します。dataproc.sessions.createは、含まれるプロジェクト内のインタラクティブ セッションの作成を許可します。
バッチ権限
| メソッド | 必要な権限 |
|---|---|
| projects.locations.batches.create | dataproc.batches.create 1 |
| projects.locations.batches.delete | dataproc.batches.delete |
| projects.locations.batches.get | dataproc.batches.get |
| projects.locations.batches.list | dataproc.batches.list |
1 dataproc.batches.create には、gcloud コマンドライン ツールからステータスの更新を取得できるように、dataproc.batches.get 権限と dataproc.operations.get 権限も必要です。
セッションの権限
| メソッド | 必要な権限 |
|---|---|
| projects.locations.sessions.create | dataproc.sessions.create 1 |
| projects.locations.sessions.delete | dataproc.sessions.delete |
| projects.locations.sessions.get | dataproc.sessions.get |
| projects.locations.sessions.list | dataproc.sessions.list |
| projects.locations.sessions.terminate | dataproc.sessions.terminate |
1 dataproc.sessions.create には、gcloud コマンドライン ツールからステータスの更新を取得できるように、dataproc.sessions.get 権限と dataproc.operations.get 権限も必要です。
セッション テンプレートの権限
| メソッド | 必要な権限 |
|---|---|
| projects.locations.sessionTemplates.create | dataproc.sessionTemplates.create 1 |
| projects.locations.sessionTemplates.delete | dataproc.sessionTemplates.delete |
| projects.locations.sessionTemplates.get | dataproc.sessionTemplates.get |
| projects.locations.sessionTemplates.list | dataproc.sessionTemplates.list |
| projects.locations.sessionTemplates.update | dataproc.sessionTemplates.update |
1 dataproc.sessionTemplates.create には、gcloud コマンドライン ツールからステータスの更新を取得できるように、dataproc.sessionTemplates.get 権限と dataproc.operations.get 権限も必要です。
オペレーション権限
| メソッド | 必要な権限 |
|---|---|
| projects.regions.operations.get | dataproc.operations.get |
| projects.regions.operations.list | dataproc.operations.list |
| projects.regions.operations.cancel 1 | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
1 バッチ オペレーションをキャンセルするには、dataproc.operations.cancel に dataproc.batches.cancel 権限も必要です。
Managed Service for Apache Spark 3.0 以降のランタイム権限
次の権限は、Managed Service for Apache Spark 3.0 以降のランタイムに適用されます。
ワークロードの権限
| メソッド | 必要な権限 |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.create | dataprocrm.workloads.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.cancel | dataprocrm.workloads.cancel |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.delete | dataprocrm.workloads.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.get | dataprocrm.workloads.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.list | dataprocrm.workloads.list |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.use | dataprocrm.workloads.use |
NodePools の権限
| メソッド | 必要な権限 |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.create | dataprocrm.nodePools.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.delete | dataprocrm.nodePools.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.resize | dataprocrm.nodePools.resize |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.deleteNodes | dataprocrm.nodePools.deleteNodes |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.update | dataprocrm.nodePools.update |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.get | dataprocrm.nodePools.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.list | dataprocrm.nodePools.list |
ノードの権限
| メソッド | 必要な権限 |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.create | dataprocrm.nodes.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.delete | dataprocrm.nodes.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.update | dataprocrm.nodes.update |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.heartbeat | dataprocrm.nodes.heartbeat |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.get | dataprocrm.nodes.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.list | dataprocrm.nodes.list |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.mintOAuthToken | dataprocrm.nodes.mintOAuthToken |
オペレーション権限
| メソッド | 必要な権限 |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.operations.get | dataprocrm.operations.get |
| dataprocrm.v1.dataprocrm.projects.locations.operations.list | dataprocrm.operations.list |
Managed Service for Apache Spark サーバーレス デプロイのロール
次の表に、バッチ ワークロードとセッションの管理に必要な権限を含むロールを示します。要件は、バッチまたはセッションのランタイム バージョンと、バッチまたはセッションがサービス アカウントまたはエンドユーザー認証情報(EUC)で実行されているかどうかによって異なります。
| ランタイム バージョン | IAM ロール |
|---|---|
pre-3.0 |
ユーザーに次のロールを付与します。
|
3.0+ |
ユーザーに次のロールを付与します。
|
注:
バッチ ワークロードを送信するか、
3.0+ランタイムとエンドユーザー認証情報(3.0 以降のデフォルト)を使用してインタラクティブ セッションを作成すると、データプレーン システム オペレーションは Managed Service for Apache Spark Resource Manager Node Service Agent によって実行されます。詳細については、3.0 以降のランタイム サービス エージェント サービス アカウントをご覧ください。下位互換性のため、以前の Dataproc 編集者ロールと Dataproc 閲覧者ロールは、Dataproc サーバーレス編集者ロールと Dataproc サーバーレス閲覧者ロールではなく、
3.0+ランタイムで付与できます。また、Dataproc Serverless ノードのロールの代わりに Dataproc ワーカーのロールを付与することもできます。サービス アカウントにプロジェクトの編集者ロールが付与されている場合、そのアカウントには Dataproc ワーカーロールに含まれる権限が含まれています。
詳細については、Apache Spark 用 Serverless サービス アカウントをご覧ください。
ロールを付与する必要がありますか?
組織のポリシーによっては、必要なロールがすでに付与されている場合があります。
ユーザーに付与されたロールを確認する
ユーザーにロールが付与されているかどうかを確認するには、プロジェクト、フォルダ、組織へのアクセスを管理する > 現在のアクセス権を表示するの手順に沿って操作します。
サービス アカウントに付与されているロールを確認する
サービス アカウントにロールが付与されているかどうかを確認するには、IAM サービス アカウントのロールを表示して管理するをご覧ください。
サービス アカウントに付与されているロールを確認する
ユーザーにサービス アカウントのロールが付与されているかどうかを確認するには、サービス アカウントに対するアクセス権の管理 > 現在のアクセス権を表示するの手順に沿って操作します。
ロールと権限を検索する
次のセクションでは、Managed Service for Apache Spark のロールと権限を確認できます。
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Dataproc, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Hub Agent( Allows management of Dataproc resources. Intended for service accounts running Dataproc Hub instances. |
|
Dataproc Serverless Editor( Permissions needed to run serverless sessions and batches as a user |
|
Dataproc Serverless Node.( Node access to Dataproc Serverless sessions and batches. Intended for service accounts. |
|
Dataproc Serverless Viewer( Permissions needed to view serverless sessions and batches |
|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Dataproc Viewer( Provides read-only access to Dataproc resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Worker( Provides worker access to Dataproc resources. Intended for service accounts. |
|
プロジェクトのロール
IAM プロジェクトのロールを使用して、権限をプロジェクト レベルで設定することもできます。次の表に、IAM プロジェクト ロールに関連付けられている権限の概要を示します。
| プロジェクトの役割 | 権限 |
|---|---|
| プロジェクト閲覧者 | 状態を変更しない読み取り専用アクション(get、list)に関するすべてのプロジェクト権限 |
| プロジェクト編集者 | すべてのプロジェクト閲覧者権限と、状態を変更するアクション(create、delete、update、use、cancel)に関するすべてのプロジェクト権限 |
| プロジェクト所有者 | すべてのプロジェクト編集者権限+プロジェクトに対するアクセス制御を管理(get/set IamPolicy)し、プロジェクト課金をセットアップするための権限 |
次のステップ
- プロジェクト、フォルダ、組織へのアクセス権の管理方法を学習する。