Identity and Access Management(IAM)を使用すると、プロジェクトのリソースへのアクセスを制御できます。このドキュメントでは、Serverless for Apache Spark に関連する IAM 権限と、それらの権限を付与する IAM ロールについて説明します。
Serverless for Apache Spark の Dataproc 権限
Dataproc の権限により、ユーザーとサービス アカウントは、Apache Spark 用サーバーレス リソースに対するアクションを実行できます。たとえば、dataproc.batches.create 権限では、プロジェクトでバッチ ワークロードを作成できます。
ユーザーには権限を直接付与するのではなく、IAM ロールを割り当てます。IAM ロールには、1 つ以上の権限が組み込まれています。権限のリストを含む事前定義ロールを付与することも、カスタムロールに含める 1 つ以上の権限を含むカスタムロールを作成して付与することもできます。
次の表に、Apache Spark 向け Serverless リソースを作成またはアクセスする Dataproc API(メソッド)を呼び出すために必要な基本権限を示します。テーブルは、各 Serverless 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 権限も必要です。
Serverless for Apache Spark 3.0 以降のランタイム権限
次の権限は、Serverless 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 |
Serverless for Apache Spark のロール要件
次の表に、バッチ ワークロードとセッションの管理に必要な権限を含むロールを示します。要件は、バッチまたはセッションのランタイム バージョンと、バッチまたはセッションがサービス アカウントまたはエンドユーザー認証情報(EUC)で実行されているかどうかによって異なります。
| ランタイム バージョン | IAM ロール |
|---|---|
pre-3.0 |
ユーザーに次のロールを付与します。
|
3.0+ |
ユーザーに次のロールを付与します。
|
注:
3.0+ランタイムとエンドユーザー認証情報(3.0 以降のデフォルト)を使用してバッチ ワークロードを送信するか、インタラクティブ セッションを作成すると、データプレーン システム オペレーションは Dataproc Resource Manager ノード サービス エージェントによって実行されます。詳細については、3.0 以降のランタイム サービス エージェント サービス アカウントをご覧ください。下位互換性のため、以前の Dataproc 編集者ロールと Dataproc 閲覧者ロールは、Dataproc サーバーレス編集者ロールと Dataproc サーバーレス閲覧者ロールではなく、
3.0+ランタイムで付与できます。また、Dataproc Serverless ノードのロールの代わりに Dataproc ワーカーのロールを付与することもできます。サービス アカウントにプロジェクトの編集者ロールが付与されている場合、そのアカウントには Dataproc ワーカーロールに含まれる権限が含まれています。
詳細については、Apache Spark 用 Serverless サービス アカウントをご覧ください。
ロールを付与する必要がありますか?
組織のポリシーによっては、必要なロールがすでに付与されている場合があります。
ユーザーに付与されたロールを確認する
ユーザーにロールが付与されているかどうかを確認するには、プロジェクト、フォルダ、組織へのアクセスを管理する > 現在のアクセス権を表示するの手順に沿って操作します。
サービス アカウントに付与されているロールを確認する
サービス アカウントにロールが付与されているかどうかを確認するには、IAM サービス アカウントのロールを表示して管理するをご覧ください。
サービス アカウントに付与されているロールを確認する
ユーザーにサービス アカウントのロールが付与されているかどうかを確認するには、サービス アカウントに対するアクセス権を管理する > 現在のアクセス権を表示するの手順に沿って操作します。
Dataproc のロールと権限を調べる
次のセクションでは、Dataproc のロールと権限を検索できます。
| 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)し、プロジェクト課金をセットアップするための権限 |
次のステップ
- プロジェクト、フォルダ、組織へのアクセスを管理する方法を学習する。