概要
Identity and Access Management(IAM)を使用すると、プロジェクト リソースへのユーザーとグループのアクセスを制御できます。このドキュメントでは、Dataproc に関係する IAM の権限と、それらの権限を付与する IAM のロールについて説明します。
Dataproc の権限
Dataproc の権限を使用すると、ユーザー(サービス アカウントを含む)は、Dataproc のクラスタ、ジョブ、オペレーション、ワークフロー テンプレートのアクションを実行できます。たとえば、dataproc.clusters.create 権限を持つユーザーは、プロジェクトで Dataproc クラスタを作成できます。通常、権限を付与することはありません。代わりに、ロールを割り当てます。ロールには、1 つ以上の権限が含まれています。
次の表に、Dataproc API(メソッド)を呼び出すのに必要な権限を示します。表は、各 Dataproc リソース(クラスタ、ジョブ、オペレーション、ワークフロー テンプレート)に関連付けられた API ごとに整理されています。
権限の範囲: 次の表に示す Dataproc 権限の範囲は、含まれる Google Cloudプロジェクト(cloud-platform 範囲)です。サービス アカウント権限をご覧ください。
例:
dataproc.clusters.createは、含まれるプロジェクト内の Dataproc クラスタの作成を許可します。dataproc.jobs.createは、含まれるプロジェクト内の Dataproc ジョブの Dataproc クラスタへの送信を許可します。dataproc.clusters.listは、含まれるプロジェクト内の Dataproc クラスタの詳細の一覧表示を許可します。
クラスタ メソッドで必要な権限
| メソッド | 必要な権限 |
|---|---|
| projects.regions.clusters.create 1、2 | dataproc.clusters.create |
| projects.regions.clusters.get | dataproc.clusters.get |
| projects.regions.clusters.list | dataproc.clusters.list |
| projects.regions.clusters.patch 1、2、3 | dataproc.clusters.update |
| projects.regions.clusters.delete 1 | dataproc.clusters.delete |
| projects.regions.clusters.start | dataproc.clusters.start |
| projects.regions.clusters.stop | dataproc.clusters.stop |
| projects.regions.clusters.getIamPolicy | dataproc.clusters.getIamPolicy |
| projects.regions.clusters.setIamPolicy | dataproc.clusters.setIamPolicy |
注:
- Google Cloud CLI からステータスの更新を取得するために、
dataproc.operations.get権限も必要です。 - Google Cloud CLI からオペレーションの結果を取得するために、
dataproc.clusters.get権限も必要です。 - クラスタに対して自動スケーリング ポリシーを有効にするために
dataproc.autoscalingPolicies.use権限も必要です。
Jobs メソッドで必要な権限
| メソッド | 必要な権限 |
|---|---|
| projects.regions.jobs.submit 1、2 | dataproc.jobs.create dataproc.clusters.use |
| projects.regions.jobs.get | dataproc.jobs.get |
| projects.regions.jobs.list | dataproc.jobs.list |
| projects.regions.jobs.cancel 1 | dataproc.jobs.cancel |
| projects.regions.jobs.patch 1 | dataproc.jobs.update |
| projects.regions.jobs.delete 1 | dataproc.jobs.delete |
| projects.regions.jobs.getIamPolicy | dataproc.jobs.getIamPolicy |
| projects.regions.jobs.setIamPolicy | dataproc.jobs.setIamPolicy |
注:
Google Cloud CLI では、
jobs submit、jobs wait、jobs update、jobs delete、jobs killコマンドにdataproc.jobs.get権限も必要です。gcloud CLI では、ジョブを送信するために
dataproc.clusters.get権限も必要です。ユーザーが Dataproc Granular IAM を使用してクラスタでgcloud dataproc jobs submitを実行するために必要な権限の設定の例については、Granular IAM によるジョブの送信をご覧ください。
オペレーション メソッドで必要な権限
| メソッド | 必要な権限 |
|---|---|
| projects.regions.operations.get | dataproc.operations.get |
| projects.regions.operations.list | dataproc.operations.list |
| projects.regions.operations.cancel | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
ワークフロー テンプレート メソッドで必要な権限
| メソッド | 必要な権限 |
|---|---|
| projects.regions.workflowTemplates.instantiate | dataproc.workflowTemplates.instantiate |
| projects.regions.workflowTemplates.instantiateInline | dataproc.workflowTemplates.instantiateInline |
| projects.regions.workflowTemplates.create | dataproc.workflowTemplates.create |
| projects.regions.workflowTemplates.get | dataproc.workflowTemplates.get |
| projects.regions.workflowTemplates.list | dataproc.workflowTemplates.list |
| projects.regions.workflowTemplates.update | dataproc.workflowTemplates.update |
| projects.regions.workflowTemplates.delete | dataproc.workflowTemplates.delete |
| projects.regions.workflowTemplates.getIamPolicy | dataproc.workflowTemplates.getIamPolicy |
| projects.regions.workflowTemplates.setIamPolicy | dataproc.workflowTemplates.setIamPolicy |
注:
ワークフロー テンプレートの権限は、クラスタおよびジョブの権限に依存しません。ユーザーは
create cluster権限やsubmit job権限がなくても、ワークフロー テンプレートを作成し、インスタンス化できます。Google Cloud CLI では、ワークフローの完了をポーリングするために
dataproc.operations.get権限も必要です。実行中のワークフローをキャンセルするには、
dataproc.operations.cancel権限が必要です。
自動スケーリング ポリシー メソッドで必要な権限
| メソッド | 必要な権限 |
|---|---|
| projects.regions.autoscalingPolicies.create | dataproc.autoscalingPolicies.create |
| projects.regions.autoscalingPolicies.get | dataproc.autoscalingPolicies.get |
| projects.regions.autoscalingPolicies.list | dataproc.autoscalingPolicies.list |
| projects.regions.autoscalingPolicies.update | dataproc.autoscalingPolicies.update |
| projects.regions.autoscalingPolicies.delete | dataproc.autoscalingPolicies.delete |
| projects.regions.autoscalingPolicies.getIamPolicy | dataproc.autoscalingPolicies.getIamPolicy |
| projects.regions.autoscalingPolicies.setIamPolicy | dataproc.autoscalingPolicies.setIamPolicy |
注:
clusters.patchメソッドのリクエストでクラスタに対して自動スケーリング ポリシーを有効にするために、dataproc.autoscalingPolicies.use権限が必要です。
ノードグループ メソッドで必要な権限
| メソッド | 必要な権限 |
|---|---|
| projects.regions.nodeGroups.create | dataproc.nodeGroups.create |
| projects.regions.nodeGroups.get | dataproc.nodeGroups.get |
| projects.regions.nodeGroups.resize | dataproc.nodeGroups.update |
Dataproc のロール
Dataproc IAM ロールとは、1 つ以上の権限をまとめたものです。ロールを付与されたユーザーまたはグループは、プロジェクト内の Dataproc リソースに対する操作を行えるようになります。たとえば、Dataproc 閲覧者ロールには、get 権限と list 権限が含まれています。これらの権限を付与されたユーザーは、プロジェクト内の Dataproc クラスタ、ジョブ、オペレーションを取得して一覧表示できます。
次の表に、Dataproc IAM のロールと、各ロールに関連付けられた権限を示します。
| 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. |
|
注:
- Google Cloud コンソール、gcloud CLI、または Google Cloud CLI を使用して Dataproc クラスタを作成・表示するには、
compute権限が必要または推奨されます。 - ユーザーがファイルをアップロードできるようにするには、
Storage Object Creatorロールを付与します。ユーザーがジョブ出力を表示できるようにするには、Storage Object Viewerロールを付与します。 - ユーザーが Google Cloud コンソール → [Dataproc] → [クラスタの詳細] の [概要] タブでグラフを表示するには、
monitoring.timeSeries.list権限が必要です。 - ユーザーがGoogle Cloud コンソール → [Dataproc] → [クラスタの詳細] の [VM インスタンス] タブでインスタンスのステータスとマスター インスタンス SSH メニュー表示するには、
compute.instances.list権限が必要です。Compute Engine のロールについては、Compute Engine ドキュメント → 利用できる IAM ロールをご覧ください。 - ユーザー指定のサービス アカウントでクラスタを作成するには、指定したサービス アカウントに、
Dataproc Workerロールによって付与されるすべての権限が必要です。これには、Dataproc のステージング バケットと一時バケットへのアクセスが含まれます。構成された機能によっては、追加のロールが必要になることがあります。詳細については、カスタム VM サービス アカウントを使用してクラスタを作成するをご覧ください。
プロジェクトのロール
IAM プロジェクトのロールを使用して、権限をプロジェクト レベルで設定することもできます。次の表に、IAM プロジェクト ロールに関連付けられている権限を示します。
| プロジェクトのロール | 権限 |
|---|---|
| プロジェクト閲覧者 | 状態を変更しない読み取り専用アクション(get、list)に関するすべてのプロジェクト権限 |
| プロジェクト編集者 | すべてのプロジェクト閲覧者権限と、状態を変更するアクション(create、delete、update、use、cancel)に関するすべてのプロジェクト権限 |
| プロジェクト所有者 | すべてのプロジェクト編集者権限+プロジェクトに対するアクセス制御を管理(get/set IamPolicy)し、プロジェクト課金をセットアップするための権限 |
IAM のロールと Dataproc のオペレーションの概要
次の表に、プロジェクトと Dataproc のロールに関連付けられた Dataproc オペレーションを示します。
| オペレーション | プロジェクト編集者 | プロジェクト閲覧者 | Dataproc Admin | Dataproc 編集者 | Dataproc 閲覧者 |
|---|---|---|---|---|---|
| Dataproc IAM 権限の取得と設定 | × | いいえ | はい | いいえ | × |
| クラスタの作成 | ○ | いいえ | はい | はい | × |
| クラスタのリスト表示 | ○ | はい | はい | はい | ○ |
| クラスタの詳細取得 | ○ | ○ | ○ 1、2 | ○ 1、2 | ○ 1、2 |
| クラスタの更新 | ○ | いいえ | はい | はい | × |
| クラスタの削除 | ○ | いいえ | はい | はい | いいえ |
| クラスタの起動または停止 | はい | いいえ | はい | はい | × |
| ジョブの送信 | ○ | × | ○ 3 | ○ 3 | × |
| ジョブのリスト表示 | ○ | はい | はい | はい | ○ |
| ジョブの詳細取得 | ○ | ○ | ○ 4 | ○ 4 | ○ 4 |
| ジョブのキャンセル | ○ | いいえ | はい | はい | × |
| ジョブの削除 | ○ | いいえ | はい | はい | × |
| オペレーションのリスト表示 | ○ | はい | はい | はい | ○ |
| オペレーションの詳細取得 | ○ | はい | はい | はい | ○ |
| オペレーションの削除 | ○ | いいえ | はい | はい | いいえ |
注:
- ユーザーに
monitoring.timeSeries.list権限を含むロールがない限り、パフォーマンス グラフを利用できません。 - ユーザーに
compute.instances.list権限を含むロールがない限り、クラスタ内の VM のリストにステータス情報やマスター インスタンスの SSH リンクが含まれません。 - ファイルをアップロードするジョブでは、ユーザーに
Storage Object Creatorロールまたは Dataproc ステージング バケットへの書き込みアクセス権が必要です。 - ユーザーが Storage オブジェクト閲覧者ロールを与えられていない場合、またはプロジェクトのステージング バケットへの読み取りアクセス権が付与されていない場合は、ジョブ出力を利用できません。
サービス アカウント
Dataproc API を呼び出して、プロジェクトでアクション(たとえば、VM インスタンスの作成)を実行すると、Dataproc は、アクションの実行に必要な権限のあるサービス アカウントを使用して、ユーザーの代わりにこうしたアクションを実行します。詳細については、Dataproc サービス アカウントをご覧ください。
IAM の管理
IAM ポリシーは、 Google Cloud コンソール、IAM API、Google Cloud CLI を使用して取得と設定ができます。
- Google Cloud コンソールについては、 Google Cloud コンソールによるアクセス制御をご覧ください。
- API については、API によるアクセス制御をご覧ください。
- Google Cloud CLI については、Google Cloud CLI によるアクセス制御をご覧ください。
次のステップ
- Dataproc のプリンシパルとロールについて確認する
- Dataproc Granular IAM について確認する
- IAM の詳細について確認する。
- Dataproc のサービス アカウントについて確認する