Identity and Access Management(IAM)を使用すると、プロジェクトのリソースへのアクセスを制御できます。このドキュメントでは、Apache Spark 用サーバーレスに関係する IAM の権限と、それらの権限を付与する IAM ロールについて説明します。
Apache Spark 向け Serverless の Dataproc 権限
Dataproc の権限により、ユーザーとサービス アカウントは、Apache Spark 用 Serverless リソースに対するアクションを実行できます。たとえば、dataproc.batches.create
権限では、プロジェクトでバッチ ワークロードを作成できます。
ユーザーには権限を直接付与するのではなく、IAM ロールを割り当てます。IAM ロールには、1 つ以上の権限が組み込まれています。権限のリストを含む事前定義ロールを付与することも、カスタムロールに含める 1 つ以上の権限を含むカスタムロールを作成して付与することもできます。
次の表に、Serverless for Apache Spark リソースを作成またはアクセスする 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
権限も必要です。
Apache Spark 3.0 以降のランタイム権限のサーバーレス
次の権限は、Apache Spark 向け Serverless 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 |
Dataproc と Dataproc Serverless のロール
Dataproc IAM ロールには、Dataproc と Apache Spark 用サーバーレスの両方のリソースに関連付けられた権限を含めることができます。Dataproc Serverless IAM ロールには、Apache Spark リソースのサーバーレスに関連付けられた権限が含まれています。
たとえば、Dataproc 閲覧者ロールには、dataproc.batches
権限と dataproc.sessions
権限が含まれています。これらの権限を付与されたユーザーまたはサービス アカウントは、プロジェクト内のバッチ ワークロードとセッションを取得して一覧表示できます。
ユーザー権限とロールの要件
Serverless for Apache Spark リソースをデプロイするには、サービス アカウントの
ActAs
権限が必要です。たとえば、バッチ ワークロードを送信できます。詳細については、サービス アカウントの認証のロールをご覧ください。Apache Spark
3.0
以降のランタイム ロールの要件:- バッチとセッションを実行するには、ユーザー アカウントに Dataproc 編集者または Dataproc サーバーレス編集者のロールが必要です。
- バッチとセッションを取得して一覧表示するには、ユーザー アカウントに Dataproc 閲覧者ロールまたは Dataproc Serverless 編集者ロールが必要です。
- カスタム サービス アカウントがバッチとセッションを実行するには、Dataproc ワーカーのロールが必要です。
Apache Spark 用サーバーレスの
3.0
ランタイムに関連付けられているサービス アカウントについては、Apache Spark 用サーバーレスのサービス アカウントをご覧ください。
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)し、プロジェクト課金をセットアップするための権限 |
次のステップ
- プロジェクト、フォルダ、組織へのアクセスを管理する方法を学習する。