概要
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
は、含まれるプロジェクト内の Cloud Dataproc クラスタの作成を許可します。dataproc.jobs.create
は、含まれるプロジェクト内の Cloud 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 |
注:
dataproc.operations.get
権限も、Google Cloud CLI からステータスの更新を取得するために必要です。dataproc.clusters.get
権限も、Google Cloud CLI からオペレーションの結果を取得するために必要です。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 |
注:
dataproc.autoscalingPolicies.use
権限は、clusters.patch
メソッドのリクエストでクラスタに対して自動スケーリング ポリシーを有効にするために必要です。
ノードグループ メソッドの必要な権限
メソッド | 必要な権限 |
---|---|
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 ロールと、各ロールに関連付けられた権限を示します。
Dataproc の役割 |
権限 |
Dataproc 管理者( Dataproc リソースのすべてを管理できる権限。 |
|
Dataproc 編集者( マシンタイプ、ネットワーク、プロジェクト、ゾーンなどの Dataproc を管理するために必要となるリソースの表示に必要な権限を付与します。 このロールを付与できる最下位レベルのリソース:
|
|
Dataproc ハブ エージェント( Dataproc リソースの管理を許可します。Dataproc ハブ インスタンスが実行されているサービス アカウントを対象としています。 |
|
Dataproc 閲覧者( Dataproc リソースに対する読み取り専用アクセス権を付与します。 このロールを付与できる最下位レベルのリソース:
|
|
Dataproc ワーカー( Dataproc リソースへのワーカー アクセス権を付与します。サービス アカウント向けです。 |
|
注:
- Google Cloud コンソールやgcloud CLI Google Cloud CLI を使用して Dataproc クラスタを作成・表示するには、
compute
権限 が必要または推奨されます。 - ユーザーがファイルをアップロードできるようにするには、
Storage Object Creator
の役割を付与します。 ユーザーがジョブ出力を表示できるようにするには、Storage Object Viewer
のロールを付与します。 - ユーザーが Google Cloud Console → Dataproc → クラスタの詳細 の [概要] タブでグラフを表示するには、
monitoring.timeSeries.list
権限を持っている必要があります。 - ユーザーが Google Cloud Console → Dataproc → クラスタの詳細 の VM インスタンス タブでインスタンスのステータスとマスター インスタンス SSH メニューを表示するには、
compute.instances.list
権限を持っている必要があります。Compute Engine の役割については、Compute Engine ドキュメント → 利用できる IAM 役割をご覧ください。 - ユーザー指定のサービス アカウントでクラスタを作成するには、指定したサービス アカウントに、
Dataproc Worker
ロールによって付与されるすべての権限が必要です。これには、Dataproc のステージング バケットと一時バケットへのアクセスが含まれます。 構成された機能によっては、追加の役割が必要になることがあります。 詳細については、カスタム VM サービス アカウントを使用してクラスタを作成するをご覧ください。
プロジェクトの役割
IAM プロジェクトのロールを使用して、権限をプロジェクト レベルで設定することもできます。次の表に、IAM プロジェクトのロールに関連付けられた権限を示します。
プロジェクトの役割 | 権限 |
---|---|
プロジェクト閲覧者 | 状態を変更しない読み取り専用アクション(get、list)に関するすべてのプロジェクト権限 |
プロジェクト編集者 | すべてのプロジェクト閲覧者権限+状態を変更するアクション(create、delete、update、use、cancel、stop、start)に関するすべてのプロジェクト権限 |
プロジェクト所有者 | すべてのプロジェクト編集者権限+プロジェクトに対するアクセス制御を管理(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 Object Viewer(ストレージ オブジェクト閲覧者)役割を与えられていない場合またはプロジェクトのステージング バケットへの読み取りアクセス権が付与されていない場合は、ジョブ出力を利用できません。
サービス アカウント
Dataproc API を呼び出して、プロジェクト内で VM インスタンスの作成などのアクションを実行すると、Dataproc は、アクションの実行に必要な権限を持つサービス アカウントを使用して、ユーザーの代わりにこうしたアクションを実行します。詳細については、Dataproc サービス アカウントをご覧ください。
IAM の管理
IAM ポリシーは、Google Cloud Console、IAM API、Google Cloud CLI を使用して取得と設定ができます。
- Google Cloud Console については、Google Cloud Console によるアクセス制御をご覧ください。
- API については、API によるアクセス制御をご覧ください
- Google Cloud CLI については、Google Cloud CLI によるアクセス制御をご覧ください。
次のステップ
- Dataproc のプリンシパルとロールについて学習する
- Dataproc Granular IAM について学習する
- IAM の詳細について学習する。
- Dataproc のサービス アカウントについて学習する