Peran dan izin IAM Dataproc

Ringkasan

Dengan Identity and Access Management (IAM), Anda dapat 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 sebuah project. Biasanya, Anda tidak memberikan izin; sebagai gantinya, Anda memberikan peran, yang mencakup satu atau beberapa izin.

Tabel di bawah ini mencantumkan izin yang diperlukan untuk memanggil Dataproc API (metode). Tabel disusun menurut API yang terkait dengan setiap resource Dataproc (cluster, tugas, operasi, dan template alur kerja).

Izin cluster

Metode Izin yang Diperlukan
projects.region.clusters.create 1, 2 dataproc.clusters.create
projects.regions.clusters.get dataproc.clusters.get
projects.regions.clusters.list dataproc.clusters.list
projects.region.clusters.patch 1, 2, 3 dataproc.clusters.update
projects.region.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 pembaruan 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 pekerjaan

Metode Izin yang Diperlukan
projects.region.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.region.jobs.cancel 1 dataproc.jobs.cancel
projects.region.jobs.patch 1 dataproc.jobs.update
projects.region.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 mengirim tugas. Untuk contoh setelan izin yang diperlukan agar pengguna dapat menjalankan gcloud dataproc jobs submit pada cluster menggunakan IAM Perincian Dataproc (lihat Mengirim Tugas dengan IAM Terperinci).

Izin 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 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 terkait penyelesaian alur kerja.

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

Izin 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 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 yang terdiri dari satu atau beberapa izin. Anda memberikan peran kepada pengguna atau grup agar mereka dapat melakukan tindakan pada resource Dataproc dalam sebuah project. Misalnya, peran Dataproc Viewer berisi izin dataproc.*.get dan dataproc.*.list, yang memungkinkan pengguna untuk mendapatkan dan mencantumkan cluster, tugas, dan operasi Dataproc dalam sebuah project.

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

ID Peran Izin
roles/dataproc.admin dataproc.*.getIamPolicy
dataproc.*.setIamPolicy
dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.clusters.start
dataproc.clusters.stop
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.editor dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.clusters.start
dataproc.clusters.stop
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
role/dataproc.worker (hanya untuk akun layanan) 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
storage.objects.getIamPolicy
storage.objects.setIamPolicy

Catatan:

  • "*" menandakan "cluster", "tugas", atau "operasi", kecuali satu-satunya izin yang terkait dengan dataproc.operations. adalah get, list, dan delete.
  • Izin compute yang tercantum sebelumnya diperlukan atau direkomendasikan untuk membuat dan melihat cluster Dataproc saat menggunakan Google Cloud Console atau Google Cloud CLI gcloud CLI.
  • Untuk mengizinkan pengguna mengupload file, berikan peran Storage Object Creator. Untuk mengizinkan pengguna melihat output tugas, berikan peran Storage Object Viewer. Dengan memberikan salah satu peran Cloud Storage ini, pengguna dapat mengakses bucket apa pun dalam project.
  • Pengguna harus memiliki izin monitoring.timeSeries.list untuk melihat grafik di Konsol Google Cloud→Dataproc→Detail cluster tab Ringkasan.
  • Pengguna harus memiliki izin compute.instances.list agar dapat melihat status instance dan menu SSH instance master di tab VM Instances di konsol Google Cloud→Dataproc→Detail cluster. Untuk mengetahui 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. Peran tambahan mungkin diperlukan bergantung pada fitur yang dikonfigurasi. Lihat Akun Layanan untuk 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 Proyek Izin
Project Viewer Semua izin project untuk tindakan hanya-baca yang mempertahankan status (get, list)
Editor Project Semua izin Project Viewer serta 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 project (mendapatkan/menetapkan IamPolicy) dan menyiapkan penagihan project

Ringkasan peran IAM dan operasi Dataproc

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

Operasi Editor Project Project Viewer Admin Dataproc Editor Dataproc Dataproc Viewer
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
Mulai/Hentikan 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 lowongan 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 dalam 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 untuk 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 tersebut.

Akun layanan

Saat Anda memanggil Dataproc API untuk melakukan tindakan dalam sebuah project, seperti membuat instance VM, Dataproc akan melakukan tindakan atas nama Anda dengan 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 Google Cloud Console, IAM API, atau Google Cloud CLI.

Langkah selanjutnya