IAM Terperinci Dataproc adalah fitur yang memungkinkan Anda memberikan izin di tingkat cluster, tugas, operasi, template alur kerja, atau kebijakan penskalaan otomatis.
Contoh: Anda dapat memberi satu pengguna peran Pelihat cluster, yang memungkinkan pengguna melihat cluster dalam project, dan memberi pengguna lain peran Editor tugas, yang memungkinkan pengguna tersebut memperbarui dan membatalkan, serta melihat tugas. Untuk memahami perintah Google Cloud CLI tertentu yang diaktifkan oleh setiap peran IAM Terperinci Dataproc, lihat Perintah SDK yang diaktifkan oleh IAM Terperinci.
Peran dan izin IAM Terperinci Dataproc
IAM Terperinci Dataproc dapat menetapkan peran berikut dengan izin berikut pada resource Dataproc.
Peran cluster
| Peran | Izin |
|---|---|
| Pelihat | dataproc.clusters.get |
| Editor | dataproc.clusters.get dataproc.clusters.list dataproc.clusters.delete dataproc.clusters.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop |
| Pemilik | dataproc.clusters.get dataproc.clusters.list dataproc.clusters.delete dataproc.clusters.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop dataproc.clusters.setIamPolicy dataproc.clusters.getIamPolicy |
Peran kerja
| Peran | Izin |
|---|---|
| Pelihat | dataproc.jobs.get |
| Editor | dataproc.jobs.get dataproc.jobs.cancel dataproc.jobs.delete dataproc.jobs.update |
| Pemilik | dataproc.jobs.get dataproc.jobs.cancel dataproc.jobs.delete dataproc.jobs.update dataproc.jobs.setIamPolicy dataproc.jobs.getIamPolicy |
Peran operasi
| Peran | Izin |
|---|---|
| Pelihat | dataproc.operations.get |
| Editor | dataproc.jobs.get dataproc.operations.cancel dataproc.operations.delete |
| Pemilik | dataproc.jobs.get dataproc.operations.cancel dataproc.operations.delete dataproc.operations.setIamPolicy dataproc.operations.getIamPolicy |
Peran template alur kerja
| Peran | Izin |
|---|---|
| Pelihat | dataproc.workflowTemplates.get |
| Editor | dataproc.workflowTemplates.get dataproc.workflowTemplates.delete dataproc.workflowTemplates.update |
| Pemilik | dataproc.workflowTemplates.get dataproc.workflowTemplates.delete dataproc.workflowTemplates.update dataproc.workflowTemplates.setIamPolicy dataproc.workflowTemplates.getIamPolicy |
Peran kebijakan penskalaan otomatis
| Peran | Izin |
|---|---|
| Pelihat | dataproc.autoscalingPolicies.get |
| Editor | dataproc.autoscalingPolicies.get dataproc.autoscalingPolicies.use dataproc.autoscalingPolicies.delete dataproc.autoscalingPolicies.update |
| Pemilik | dataproc.autoscalingPolicies.get dataproc.autoscalingPolicies.use dataproc.autoscalingPolicies.delete dataproc.autoscalingPolicies.update dataproc.autoscalingPolicies.setIamPolicy dataproc.autoscalingPolicies.getIamPolicy |
Menggunakan IAM Terperinci Dataproc
Bagian ini menjelaskan cara menggunakan IAM Terperinci Dataproc untuk menetapkan peran kepada pengguna di resource Dataproc yang ada. Untuk mengetahui informasi selengkapnya tentang cara memperbarui dan menghapus peran Identity and Access Management (IAM), lihat Mengelola akses ke project, folder, dan organisasi.
Perintah gcloud
- Dapatkan kebijakan IAM resource,
dan tulis ke file JSON (resource-type dapat berupa "clusters", "jobs", "operations", "workflow-templates", atau "autoscaling-policies"):
gcloud dataproc resource-type get-iam-policy resource-id \ --region=region \ --format=json > iam.json
- Isi file JSON akan terlihat mirip dengan berikut:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ], "etag": "string" } - Dengan menggunakan editor teks, tambahkan
objek binding
baru ke array binding yang menentukan pengguna dan peran akses
resource untuk pengguna tersebut. Misalnya, untuk memberikan
peran Pelihat (
roles/viewer) kepada penggunasean@example.com, Anda akan mengubah contoh sebelumnya untuk menambahkan objek binding baru (ditampilkan dalam huruf tebal pada contoh berikut). Catatan: Pastikan untuk menampilkan nilaietagyang Anda terima darigcloud dataproc resource-type get-iam-policy. Lihat dokumentasi etag.{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-get-iam-policy" } - Perbarui kebijakan cluster dengan array binding baru dengan menjalankan
perintah berikut (resource-type dapat berupa "clusters", "jobs", "operations", "workflow-templates", atau "autoscaling-policies"):
gcloud dataproc resource-type set-iam-policy resource-name \ --region=region \ --format=json iam.json
- Perintah tersebut menghasilkan kebijakan yang telah diperbarui:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "string" }
REST API
- Kirim permintaan resource-type ("clusters" or "jobs" or "operations" or "workflowTemplates" or "autoscalingPolicies") getIamPolicy untuk mendapatkan kebijakan IAM
untuk resource.
Contoh getIamPolicy Cluster:
GET https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:getIamPolicy
- Isi file JSON akan terlihat mirip dengan berikut:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ], "etag": "string" } - Dengan menggunakan editor teks, buat objek kebijakan JSON berikut untuk menyertakan array binding yang baru saja Anda terima dari layanan Dataproc. Pastikan untuk menampilkan nilai "etag" yang Anda terima dalam respons getIamPolicy (lihat
dokumentasi etag).
Sekarang, tambahkan
objek pengikatan
baru ke array pengikatan yang menentukan pengguna dan peran akses
cluster untuk pengguna tersebut. Misalnya, untuk memberikan
peran Pelihat (
roles/viewer) kepada penggunasean@example.com, Anda akan mengubah contoh di atas dengan menambahkan objek binding baru (ditampilkan dalam huruf tebal, di bawah).{ "policy": { "version": "", "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-getIamPolicy" } } - Tetapkan kebijakan yang diperbarui pada resource dengan mengeluarkan permintaan
setIamPolicy.Cluster setIamPolicy Contoh:
POST https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:setIamPolicy Request body
{ "policy": { "version": "", "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-getIamPolicy" } } - Isi respons JSON akan terlihat mirip dengan berikut ini:
Respons
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "string" }
Konsol
Buka halaman Dataproc Clusters di konsol Google Cloud , lalu klik kotak di sebelah kiri nama cluster untuk membuka panel Permissions/Labels (jika panel tidak ditampilkan, klik SHOW INFO PANEL di kanan atas halaman). Di tab Izin, pilih peran Dataproc, tambahkan satu atau beberapa alamat akun di kotak Tambahkan akun utama, lalu klik Tambahkan.
Perintah SDK yang diaktifkan oleh IAM Terperinci
Bagian ini menjelaskan perintah gcloud dataproc yang diaktifkan di resource Dataproc oleh setiap peran IAM Terperinci.
Cluster
| Peran IAM | Perintah |
|---|---|
| Pelihat | gcloud dataproc clusters describe cluster-name |
| Editor | gcloud dataproc clusters describe cluster-namegcloud dataproc clusters listgcloud dataproc clusters delete cluster-namegcloud dataproc clusters diagnose cluster-namegcloud dataproc clusters update cluster-namegcloud beta dataproc clusters start cluster-namegcloud beta dataproc clusters stop cluster-name |
| Pemilik | gcloud dataproc clusters describe cluster-namegcloud dataproc clusters listgcloud dataproc clusters delete cluster-namegcloud dataproc clusters diagnose cluster-namegcloud dataproc clusters update cluster-namegcloud beta dataproc clusters start cluster-namegcloud beta dataproc clusters stop cluster-namegcloud dataproc clusters get-iam-policy cluster-namegcloud dataproc clusters set-iam-policy cluster-name |
Pekerjaan
| Peran IAM | Perintah |
|---|---|
| Pelihat | gcloud dataproc jobs describe job-id |
| Editor | gcloud dataproc jobs delete job-idgcloud dataproc jobs describe job-idgcloud dataproc jobs kill job-idgcloud dataproc jobs update job-idgcloud dataproc jobs wait job-id |
| Pemilik | gcloud dataproc jobs delete job-idgcloud dataproc jobs describe job-idgcloud dataproc jobs kill job-idgcloud dataproc jobs update job-idgcloud dataproc jobs wait job-idgcloud dataproc jobs get-iam-policy job-idgcloud dataproc jobs set-iam-policy job-id |
Operasi
| Peran IAM | Perintah |
|---|---|
| Pelihat | gcloud dataproc operations describe operation-id |
| Editor | gcloud dataproc operations delete operation-idgcloud dataproc operations describe operation-idgcloud dataproc operations cancel operation-id |
| Pemilik | gcloud dataproc operations delete operation-idgcloud dataproc operations describe operation-idgcloud dataproc operations cancel operation-idgcloud dataproc operations get-iam-policy operation-idgcloud dataproc operations set-iam-policy operation-id |
Template alur kerja
| Peran IAM | Perintah |
|---|---|
| Pelihat | gcloud dataproc workflow-templates describe template-id |
| Editor | gcloud dataproc workflow-templates delete template-idgcloud dataproc workflow-templates describe template-idgcloud dataproc workflow-templates remove-job template-idgcloud dataproc workflow-templates run template-id |
| Pemilik | gcloud dataproc workflow-templates delete template-idgcloud dataproc workflow-templates describe template-idgcloud dataproc workflow-templates remove-job template-idgcloud dataproc workflow-templates run template-idgcloud dataproc workflow-templates get-iam-policy template-idgcloud dataproc workflow-templates set-iam-policy template-id |
Kebijakan penskalaan otomatis
| Peran IAM | Perintah |
|---|---|
| Pelihat | gcloud dataproc autoscaling-policies describe policy-id |
| Editor | gcloud dataproc autoscaling-policies delete policy-idgcloud dataproc autoscaling-policies describe policy-idgcloud dataproc autoscaling-policies update policy-idgcloud dataproc clusters create cluster-name --autoscaling-policy policy-id |
| Pemilik | gcloud dataproc autoscaling-policies delete policy-idgcloud dataproc autoscaling-policies describe policy-idgcloud dataproc autoscaling-policies update policy-idgcloud dataproc clusters create cluster-name --autoscaling-policy policy-idgcloud dataproc autoscaling-policies get-iam-policy policy-idgcloud dataproc autoscaling-policies set-iam-policy policy-id |
Mengirimkan tugas dengan IAM Terperinci
Untuk mengizinkan akun utama (pengguna, grup, atau akun layanan) mengirimkan tugas ke cluster tertentu menggunakan IAM Terperinci Dataproc, selain memberikan peran Editor kepada pengguna di cluster, izin tambahan harus ditetapkan di tingkat project. Berikut adalah langkah-langkah yang harus dilakukan untuk mengizinkan akun utama mengirimkan tugas di cluster Dataproc tertentu:
- Buat bucket Cloud Storage yang dapat digunakan cluster Anda untuk terhubung ke Cloud Storage.
- Tambahkan akun utama ke kebijakan tingkat bucket,
pilih peran Storage Object Viewer untuk akun utama
(lihat
roles/storage.objectViewer), yang mencakup izin berikut:storage.objects.getstorage.objects.list
- Saat membuat cluster, teruskan nama bucket yang baru saja Anda buat
ke cluster menggunakan parameter
--bucket(lihatgcloud dataproc clusters create --bucket). - Setelah cluster dibuat, tetapkan kebijakan pada cluster yang memberikan peran Editor atau Pemilik kepada prinsipal (lihat Menggunakan IAM Terperinci Dataproc).
- Buat peran kustom IAM
dengan izin berikut:
dataproc.jobs.createdataproc.jobs.get
- IAM konsol, lalu pilih peran kustom untuk menerapkannya ke akun utama.