Cloud Dataproc の権限と IAM の役割

概要

Google Cloud Identity and Access Management(IAM)を使用して、プロジェクトのリソースに対するユーザーとグループのアクセスを制御できます。このドキュメントでは、Cloud Dataproc に関係する IAM の権限と、それらの権限を付与する IAM の役割について説明します。

Cloud Dataproc の権限

Cloud Dataproc の権限を使用して、Cloud Dataproc のクラスタ、ジョブ、オペレーション、ワークフロー テンプレートに対して特定のアクションを実行できます。たとえば、dataproc.clusters.create 権限を使用すると、ユーザーは、プロジェクト内で Cloud Dataproc クラスタを作成できます。ユーザーには、直接権限を付与するのではなく、役割を割り当てます。役割には、1 つ以上の権限が組み込まれています。

次の表に、Cloud Dataproc API(メソッド)を呼び出すのに必要な権限を示します。表は、各 Cloud Dataproc リソース(クラスタ、ジョブ、オペレーション、ワークフロー テンプレート)に関連付けられた API ごとに整理されています。

クラスタ権限

メソッド 必要な権限
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 dataproc.clusters.update
projects.regions.clusters.delete 1 dataproc.clusters.delete
projects.regions.clusters.diagnose 1 dataproc.clusters.use

注:

  1. dataproc.operations.get 権限は、gcloud コマンドライン ツールからステータスの更新を取得する場合にも必要です。
  2. dataproc.clusters.get 権限は、gcloud コマンドライン ツールからオペレーションの結果を取得する場合にも必要です。

ジョブ権限

メソッド 必要な権限
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

注:

  1. jobs submitjobs waitjobs updatejobs deletejobs kill の各コマンドが正常に機能するには、gcloud コマンドライン ツールで dataproc.jobs.get が追加で必要となります。

  2. ジョブを送信するには、gcloud コマンドライン ツールで dataproc.clusters.get 権限が追加で必要となります。ユーザーが Cloud 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.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.post dataproc.workflowTemplates.update
projects.regions.workflowTemplates.delete dataproc.workflowTemplates.delete

注:

  1. ワークフロー テンプレートの権限は、クラスタおよびジョブの権限に依存しません。ユーザーは create cluster 権限や submit job 権限がなくても、ワークフロー テンプレートを作成し、インスタンス化できます。

  2. ワークフローの完了をポーリングするには、gcloud コマンドライン ツールで dataproc.operations.get 権限が追加で必要となります。

  3. 実行中のワークフローをキャンセルするには、dataproc.operations.cancel 権限が必要です。

Cloud Dataproc の役割

Identity and Access Management(IAM)Cloud Dataproc の役割は、1 つの以上の権限の集まりです。役割を割り当てることにより、ユーザーまたはグループはプロジェクト内の Cloud Dataproc リソースに対してアクションの実行が可能になります。たとえば、Dataproc 閲覧者の役割には dataproc.*.get 権限と dataproc.*.list 権限が含まれています。これらの権限を付与されたユーザーは、プロジェクト内の Cloud Dataproc クラスタ、ジョブ、オペレーションを取得して一覧表示できます。

次の表に、Cloud Dataproc IAM の役割と各役割に関連付けられた権限を示します。

役割 ID 権限
roles/dataproc.editor dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.jobs.cancel
dataproc.workflowTemplates.instantiate
dataproc.workflowTemplates.instantiateInline
compute.machineTypes.get
compute.machineTypes.list
compute.networks.get
compute.networks.list
compute.projects.get
compute.regions.get
compute.regions.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.viewer dataproc.*.get
dataproc.*.list
compute.machineTypes.get
compute.regions.get
compute.regions.list
compute.zones.get
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.worker(サービス アカウントの場合のみ) dataproc.agents.*
dataproc.tasks.*
logging.logEntries.create
monitoring.metricDescriptors.create
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.timeSeries.create
storage.buckets.get
storage.objects.create
storage.objects.get
storage.objects.list
storage.objects.update
storage.objects.delete

注:

  • 「*」は「クラスタ」、「ジョブ」、または「オペレーション」を意味します。ただし、dataproc.operations. に関連付けられる権限は getlistdelete のみです。
  • 上記の compute 権限は、Google Cloud Platform Console または Cloud SDK の gcloud コマンドライン ツールの使用時に Cloud Dataproc クラスタを作成または表示する場合に必要となるか、または推奨されます。
  • ユーザーがファイルをアップロードできるようにするには、Storage Object Creator 役割を付与します。ユーザーがジョブ出力を表示できるようにするには、Storage Object Viewer 役割を付与します。これらの Storage 役割のどちらかを付与すると、ユーザーは、プロジェクト内の任意のバケットにアクセスできるようになります。
  • ユーザーが Google Cloud Platform Console → [Dataproc] → [クラスタの詳細] の [概要] タブでグラフを表示するには、monitoring.timeSeries.list 権限を持っている必要があります。
  • ユーザーが Google Cloud Platform Console → [Dataproc] → [クラスタの詳細] の [VM インスタンス] タブでインスタンス ステータスとマスター インスタンス SSH メニューを表示するには compute.instances.list 権限を持っている必要があります。Google Compute Engine の役割については、Compute Engine ドキュメント → 利用できる IAM 役割をご覧ください。
  • ユーザー指定のサービス アカウントでクラスタを作成するには、指定したサービス アカウントに、Dataproc Worker の役割によって付与されるすべての権限が必要です。構成された機能によっては、追加の役割が必要になることがあります。追加の役割の一覧は、サービス アカウントをご覧ください。

プロジェクトの役割

IAM プロジェクトの役割を使用して、権限をプロジェクト レベルで設定することもできます。ここで、IAM プロジェクトの役割に関連付けられた権限の概要を示します。

プロジェクトの役割 権限
プロジェクト閲覧者 状態を変更しない読み取り専用アクション(get、list)に関するすべてのプロジェクト権限
プロジェクト編集者 すべてのプロジェクト閲覧者権限+状態を変更するアクション(create、delete、update、use、cancel)に関するすべてのプロジェクト権限
プロジェクト所有者 すべてのプロジェクト編集者権限+プロジェクトに対するアクセス制御を管理(get/set IamPolicy)し、プロジェクト課金をセットアップするための権限

IAM の役割と Cloud Dataproc のオペレーションの概要

次の表に、ユーザーに付与された役割に基づいて使用可能な Cloud Dataproc のオペレーションの概要と注意事項を示します。

プロジェクト編集者 プロジェクト閲覧者 Cloud Dataproc 編集者 Cloud Dataproc 閲覧者
クラスタの作成 × ×
クラスタのリスト表示
クラスタの詳細取得 1, 2 1, 2
クラスタの更新 × ×
クラスタの削除 × ×
ジョブの送信 × 3 ×
ジョブのリスト表示
ジョブの詳細取得 4 4
ジョブのキャンセル × ×
ジョブの削除 × ×
オペレーションのリスト表示
オペレーションの詳細取得
オペレーションの削除 × ×

注:

  1. ユーザーが monitoring.timeSeries.list 権限を持つ役割を与えられていない場合は、パフォーマンス グラフを表示できません。
  2. ユーザーが compute.instances.list 権限を持つ役割を与えられていない場合は、クラスタ内の VM のリストにマスター インスタンスのステータス情報または SSH リンクが表示されません。
  3. ユーザーが Storage Object Creator(ストレージ オブジェクト作成者)役割を与えられていない場合またはプロジェクトのステージング バケットへの書き込みアクセス権が付与されていない場合は、アップロードするファイルを含むジョブを送信できません。
  4. ユーザーが Storage Object Viewer(ストレージ オブジェクト閲覧者)役割を与えられていない場合またはプロジェクトのステージング バケットへの読み取りアクセス権が付与されていない場合は、ジョブ出力を利用できません。

サービス アカウント

Cloud Dataproc API を呼び出して、プロジェクト内で VM インスタンスを作成するなどのアクションを、クラスタが存在するプロジェクトで実行すると、Cloud Dataproc が、アクションの実行に必要な権限を持つサービス アカウントを使用して、これらのアクションを実行します。下に示すサービス アカウントには、クラスタが存在するプロジェクトで Cloud Dataproc アクションを実行するために必要な権限があります。

  • Cloud Dataproc は、まず service-[project-number]@dataproc-accounts.iam.gserviceaccount.com を使用することを試みます。
  • このサービス アカウントが存在しない場合、Cloud Dataproc は Google API サービス アカウント[project-number]@cloudservices.gserviceaccount.com)を使用します。

クラスタが共有 VPC ネットワークを使用する場合、共有 VPC 管理者は、サービス アカウントに共有 VPC ホスト プロジェクトのネットワーク ユーザーの役割を付与する必要があります。詳細については、以下をご覧ください。

IAM の管理

IAM ポリシーは、Google Cloud Platform Console、IAM API、または gcloud コマンドライン ツールを使用して取得、設定できます。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Dataproc ドキュメント
ご不明な点がありましたら、Google のサポートページをご覧ください。