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 ロールを割り当てます。ロールには、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+ |
ユーザーに次のロールを付与します。
|
注:
the a
3.0+ランタイムとエンドユーザーの認証情報(3.0+ のデフォルト)を使用してバッチ ワークロードを送信するか、インタラクティブ セッションを作成すると、データプレーン システム オペレーションは Managed Service for Apache Spark Resource Manager ノード サービス エージェントによって実行されます。詳細については、3.0+ ランタイム サービス エージェント サービス アカウントをご覧ください。下位互換性のため、Dataproc サーバーレス編集者 ロールと Dataproc サーバーレス閲覧者 ロールの代わりに、レガシーの Dataproc 編集者 ロールと Dataproc 閲覧者 ロールを
3.0+ランタイムに付与できます。また、Dataproc サーバーレス ノード ロールの代わりに 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 Managed Service for Apache Spark, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Viewer( Provides read-only access to Managed Service for Apache Spark resources. 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 Worker( Provides worker access to Managed Service for Apache Spark resources. Intended for service accounts. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
プロジェクトのロール
IAM プロジェクト のロールを使用して、権限をプロジェクト レベルで設定することもできます。次の表に、IAM プロジェクト ロールに関連付けられている権限の概要を示します。
| プロジェクト ロール | 権限 |
|---|---|
| プロジェクト閲覧者 | 状態を変更しない読み取り専用アクション(get、list)に関するすべてのプロジェクト権限 |
| プロジェクト編集者 | すべてのプロジェクト閲覧者権限と、状態を変更するアクション(create、delete、update、use、cancel)に関するすべてのプロジェクト権限 |
| プロジェクト所有者 | すべてのプロジェクト編集者権限+プロジェクトに対するアクセス制御を管理(get/set IamPolicy)し、プロジェクト課金をセットアップするための権限 |
次のステップ
- プロジェクト、フォルダ、組織へのアクセス権を管理する方法を学習する。