Peran dan izin IAM Dataproc

Ringkasan

Identity and Access Management (IAM) memungkinkan Anda mengontrol akses pengguna dan grup ke resource project. Dokumen ini berfokus pada izin IAM yang relevan dengan Dataproc dan peran IAM yang memberikan izin tersebut.

Izin Dataproc

Izin Dataproc memungkinkan pengguna, termasuk akun layanan, melakukan tindakan pada cluster, tugas, operasi, dan template alur kerja Dataproc. Misalnya, izin dataproc.clusters.create memungkinkan pengguna membuat cluster Dataproc dalam project. Biasanya, Anda tidak memberikan izin; tetapi, Anda memberikan peran, yang mencakup satu atau beberapa izin.

Tabel berikut mencantumkan izin yang diperlukan untuk memanggil Dataproc API (metode). Tabel diatur sesuai dengan API yang terkait dengan setiap resource Dataproc (cluster, tugas, operasi, dan template alur kerja).

Cakupan Izin: Cakupan izin Dataproc yang tercantum dalam tabel berikut adalah project Google Cloud yang berisi (cakupan cloud-platform). Lihat Izin akun layanan.

Contoh:

  • dataproc.clusters.create mengizinkan pembuatan cluster Dataproc dalam project yang berisi
  • dataproc.jobs.create mengizinkan pengiriman tugas Dataproc ke cluster Dataproc dalam project yang berisinya
  • dataproc.clusters.list mengizinkan listingan detail cluster Dataproc dalam project yang berisinya

Izin yang diperlukan metode cluster

Metode Izin yang diperlukan
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

Catatan:

  1. Izin dataproc.operations.get juga diperlukan untuk mendapatkan update status dari Google Cloud CLI.
  2. Izin dataproc.clusters.get juga diperlukan untuk mendapatkan hasil operasi dari Google Cloud CLI.
  3. Izin dataproc.autoscalingPolicies.use juga diperlukan untuk mengaktifkan kebijakan penskalaan otomatis di cluster.

Izin yang diperlukan metode Tugas

Metode Izin yang diperlukan
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

Catatan:

  1. Google Cloud CLI juga memerlukan izin dataproc.jobs.get untuk perintah jobs submit, jobs wait, jobs update, jobs delete, dan jobs kill.

  2. gcloud CLI juga memerlukan izin dataproc.clusters.get untuk mengirimkan tugas. Untuk contoh penetapan izin yang diperlukan pengguna agar dapat menjalankan gcloud dataproc jobs submit di cluster menggunakan IAM Granular Dataproc (lihat Mengirimkan Tugas dengan IAM Granular).

Izin yang diperlukan metode operasi

Metode Izin yang diperlukan
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

Izin yang diperlukan metode template alur kerja

Metode Izin yang diperlukan
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

Catatan:

  1. Izin Template Alur Kerja tidak bergantung pada izin Cluster dan Tugas. Pengguna tanpa izin create cluster atau submit job dapat membuat dan membuat instance Template Alur Kerja.

  2. Google Cloud CLI juga memerlukan izin dataproc.operations.get untuk melakukan polling guna mengetahui penyelesaian alur kerja.

  3. Izin dataproc.operations.cancel diperlukan untuk membatalkan alur kerja yang sedang berjalan.

Izin yang diperlukan metode kebijakan penskalaan otomatis

Metode Izin yang diperlukan
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

Catatan:

  1. Izin dataproc.autoscalingPolicies.use diperlukan untuk mengaktifkan kebijakan penskalaan otomatis di cluster dengan permintaan metode clusters.patch.

Izin yang diperlukan metode grup node

Metode Izin yang diperlukan
projects.regions.nodeGroups.create dataproc.nodeGroups.create
projects.regions.nodeGroups.get dataproc.nodeGroups.get
projects.regions.nodeGroups.resize dataproc.nodeGroups.update

Peran Dataproc

Peran IAM Dataproc adalah paket berisi satu atau beberapa izin. Anda memberikan peran kepada pengguna atau grup untuk mengizinkan mereka melakukan tindakan pada resource Dataproc dalam project. Misalnya, peran Dataproc Viewer berisi izin get dan list, yang memungkinkan pengguna mendapatkan dan mencantumkan cluster, tugas, dan operasi Dataproc dalam project.

Tabel berikut mencantumkan peran IAM Dataproc dan izin yang terkait dengan setiap peran.

Izin

(roles/dataproc.admin)

Kontrol penuh atas resource Dataproc.

compute.machineTypes.*

compute.networks.get

compute.networks.list

compute.projects.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.*

dataproc.batches.analyze

dataproc.batches.cancel

dataproc.batches.create

dataproc.batches.delete

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.*

dataproc.jobs.*

dataproc.nodeGroups.*

dataproc.operations.*

dataproc.sessionTemplates.*

dataproc.sessions.create

dataproc.sessions.delete

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.sessions.terminate

dataproc.workflowTemplates.*

dataprocrm.nodePools.*

dataprocrm.nodes.get

dataprocrm.nodes.heartbeat

dataprocrm.nodes.list

dataprocrm.nodes.update

dataprocrm.operations.get

dataprocrm.operations.list

dataprocrm.workloads.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.editor)

Memberikan izin yang diperlukan untuk melihat resource yang diperlukan untuk mengelola Dataproc, termasuk jenis mesin, jaringan, project, dan zona.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Cluster

compute.machineTypes.*

compute.networks.get

compute.networks.list

compute.projects.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.create

dataproc.autoscalingPolicies.delete

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.autoscalingPolicies.update

dataproc.autoscalingPolicies.use

dataproc.batches.analyze

dataproc.batches.cancel

dataproc.batches.create

dataproc.batches.delete

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.create

dataproc.clusters.delete

dataproc.clusters.get

dataproc.clusters.list

dataproc.clusters.start

dataproc.clusters.stop

dataproc.clusters.update

dataproc.clusters.use

dataproc.jobs.cancel

dataproc.jobs.create

dataproc.jobs.delete

dataproc.jobs.get

dataproc.jobs.list

dataproc.jobs.update

dataproc.nodeGroups.*

dataproc.operations.cancel

dataproc.operations.delete

dataproc.operations.get

dataproc.operations.list

dataproc.sessionTemplates.*

dataproc.sessions.create

dataproc.sessions.delete

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.sessions.terminate

dataproc.workflowTemplates.create

dataproc.workflowTemplates.delete

dataproc.workflowTemplates.get

dataproc.workflowTemplates.instantiate

dataproc.workflowTemplates.instantiateInline

dataproc.workflowTemplates.list

dataproc.workflowTemplates.update

dataprocrm.nodePools.*

dataprocrm.nodes.get

dataprocrm.nodes.heartbeat

dataprocrm.nodes.list

dataprocrm.nodes.update

dataprocrm.operations.get

dataprocrm.operations.list

dataprocrm.workloads.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.hubAgent)

Mengizinkan pengelolaan resource Dataproc. Ditujukan untuk akun layanan yang menjalankan instance Dataproc Hub.

compute.instances.get

compute.instances.setMetadata

compute.instances.setTags

compute.zoneOperations.get

compute.zones.list

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.autoscalingPolicies.use

dataproc.clusters.create

dataproc.clusters.delete

dataproc.clusters.get

dataproc.clusters.list

dataproc.clusters.update

dataproc.operations.cancel

dataproc.operations.delete

dataproc.operations.get

dataproc.operations.list

iam.serviceAccounts.actAs

iam.serviceAccounts.get

iam.serviceAccounts.list

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

logging.logEntries.create

logging.logEntries.list

logging.logEntries.route

logging.logMetrics.get

logging.logMetrics.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.operations.get

logging.operations.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.list

observability.scopes.get

resourcemanager.projects.get

resourcemanager.projects.list

storage.buckets.get

storage.objects.get

storage.objects.list

(roles/dataproc.viewer)

Menyediakan akses baca saja ke resource Dataproc.

Resource level terendah tempat Anda dapat memberikan peran ini:

  • Cluster

compute.machineTypes.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.batches.analyze

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.get

dataproc.clusters.list

dataproc.jobs.get

dataproc.jobs.list

dataproc.nodeGroups.get

dataproc.operations.get

dataproc.operations.list

dataproc.sessionTemplates.get

dataproc.sessionTemplates.list

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.workflowTemplates.get

dataproc.workflowTemplates.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.worker)

Memberikan akses pekerja ke resource Dataproc. Ditujukan untuk akun layanan.

cloudprofiler.profiles.create

cloudprofiler.profiles.update

dataproc.agents.*

dataproc.batches.sparkApplicationWrite

dataproc.sessions.sparkApplicationWrite

dataproc.tasks.*

dataprocrm.nodes.mintOAuthToken

logging.logEntries.create

logging.logEntries.route

monitoring.metricDescriptors.create

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.monitoredResourceDescriptors.*

monitoring.timeSeries.create

storage.buckets.get

storage.folders.*

storage.managedFolders.create

storage.managedFolders.delete

storage.managedFolders.get

storage.managedFolders.list

storage.multipartUploads.*

storage.objects.*

Catatan:

  • Izin compute diperlukan atau direkomendasikan untuk membuat dan melihat cluster Dataproc saat menggunakan konsol Google Cloud atau gcloud CLI Google Cloud.
  • Untuk mengizinkan pengguna mengupload file, berikan peran Storage Object Creator. Untuk mengizinkan pengguna melihat output tugas, berikan peran Storage Object Viewer.
  • Pengguna harus memiliki izin monitoring.timeSeries.list agar dapat melihat grafik di tab Ringkasan konsol Google Cloud→Dataproc→Detail cluster.
  • Pengguna harus memiliki izin compute.instances.list untuk melihat status instance dan menu SSH instance master di tab Instance VM di konsol Google Cloud→Dataproc→Detail cluster. Untuk informasi tentang peran Compute Engine, lihat Compute Engine→Peran IAM yang tersedia).
  • Untuk membuat cluster dengan akun layanan yang ditentukan pengguna, akun layanan yang ditentukan harus memiliki semua izin yang diberikan oleh peran Dataproc Worker, yang mencakup akses ke bucket sementara dan staging Dataproc. Peran tambahan mungkin diperlukan, bergantung pada fitur yang dikonfigurasi. Lihat Membuat cluster dengan akun layanan VM kustom untuk mengetahui informasi selengkapnya.

Peran project

Anda juga dapat menetapkan izin di level project menggunakan peran Project IAM. Tabel berikut mencantumkan izin yang terkait dengan peran Project IAM:

Peran Project Izin
Project Viewer Semua izin project untuk tindakan hanya baca yang mempertahankan status (get, list)
Editor Project Semua izin Project Viewer ditambah semua izin project untuk tindakan yang mengubah status (membuat, menghapus, memperbarui, menggunakan, membatalkan, menghentikan, memulai)
Pemilik Project Semua izin Project Editor ditambah izin untuk mengelola kontrol akses untuk project (get/set IamPolicy) dan menyiapkan penagihan project

Ringkasan peran IAM dan operasi Dataproc

Tabel berikut mencantumkan operasi Dataproc yang terkait dengan project dan peran Dataproc.

Operasi Editor Project Project Viewer Dataproc Admin Editor Dataproc Penampil Dataproc
Mendapatkan/Menetapkan izin IAM Dataproc Tidak Tidak Ya Tidak Tidak
Buat cluster Ya Tidak Ya Ya Tidak
Mencantumkan cluster Ya Ya Ya Ya Ya
Mendapatkan detail cluster Ya Ya Ya 1, 2 Ya 1, 2 Ya 1, 2
Memperbarui cluster Ya Tidak Ya Ya Tidak
Hapus cluster Ya Tidak Ya Ya Tidak
Memulai/Menghentikan cluster Ya Tidak Ya Ya Tidak
Kirim tugas Ya Tidak Ya 3 Ya 3 Tidak
Membuat daftar tugas Ya Ya Ya Ya Ya
Mendapatkan detail tugas Ya Ya Ya 4 Ya 4 Ya 4
Batalkan tugas Ya Tidak Ya Ya Tidak
Hapus tugas Ya Tidak Ya Ya Tidak
Mencantumkan operasi Ya Ya Ya Ya Ya
Mendapatkan detail operasi Ya Ya Ya Ya Ya
Menghapus operasi Ya Tidak Ya Ya Tidak

Catatan:

  1. Grafik performa tidak tersedia kecuali jika pengguna juga memiliki peran dengan izin monitoring.timeSeries.list.
  2. Daftar VM di cluster tidak akan menyertakan informasi status atau link SSH untuk instance master, kecuali jika pengguna juga memiliki peran dengan izin compute.instances.list.
  3. Tugas yang mengupload file mengharuskan pengguna memiliki peran Storage Object Creator atau akses tulis ke bucket staging Dataproc.
  4. Output tugas tidak tersedia kecuali jika pengguna juga memiliki peran Storage Object Viewer atau telah diberi akses baca ke bucket staging untuk project.

Akun layanan

Saat Anda memanggil Dataproc API untuk melakukan tindakan dalam project, seperti membuat instance VM, Dataproc akan melakukan tindakan tersebut atas nama Anda menggunakan akun layanan yang memiliki izin yang diperlukan untuk melakukan tindakan tersebut. Untuk mengetahui informasi selengkapnya, lihat Akun layanan Dataproc.

Pengelolaan IAM

Anda dapat memperoleh dan menetapkan kebijakan IAM menggunakan konsol Google Cloud, IAM API, atau Google Cloud CLI.

Langkah selanjutnya