IAM Terperinci Managed Service untuk Apache Spark adalah fitur yang memungkinkan Anda memberikan izin di tingkat cluster, tugas, operasi, template alur kerja, atau kebijakan penskalaan otomatis.
Contoh: Anda dapat memberikan peran Pelihat cluster kepada satu pengguna, yang memungkinkan pengguna tersebut melihat cluster dalam project, dan memberikan peran Editor tugas kepada pengguna lain, yang memungkinkan pengguna tersebut memperbarui dan membatalkan, serta melihat tugas. Untuk memahami perintah Google Cloud CLI tertentu yang diaktifkan oleh setiap peran IAM Terperinci Managed Service untuk Apache Spark, lihat Perintah SDK yang diaktifkan oleh IAM Terperinci.
Peran dan izin IAM Terperinci Managed Service untuk Apache Spark
IAM Terperinci Managed Service untuk Apache Spark dapat menetapkan peran berikut dengan izin berikut pada resource Managed Service untuk Apache Spark.
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 tugas
| 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 Managed Service untuk Apache Spark
Bagian ini menjelaskan cara menggunakan IAM Terperinci Managed Service untuk Apache Spark guna menetapkan peran kepada pengguna pada resource Managed Service untuk Apache Spark 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" atau "jobs" atau "operations" atau "workflow-templates" atau "autoscaling-policies"):
gcloud dataproc resource-type get-iam-policy resource-id \ --region=region \ --format=json > iam.json
- Konten file JSON akan terlihat mirip dengan berikut ini:
{ "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 dengan huruf tebal dalam 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" atau "jobs" atau "operations" atau "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 getIamPolicy resource-type ("clusters" or "jobs" or "operations" or "workflowTemplates" or "autoscalingPolicies") untuk mendapatkan kebijakan IAM
untuk resource.
Contoh getIamPolicy
GET https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:getIamPolicy
- Konten file JSON akan terlihat mirip dengan berikut ini:
{ "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 melampirkan array binding yang baru saja Anda terima dari layanan Managed Service untuk Apache Spark. Pastikan untuk menampilkan nilai "etag" yang Anda terima dalam respons getIamPolicy (lihat
dokumentasi etag).
Sekarang, tambahkan objek
binding
baru ke array binding 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 untuk menambahkan objek binding baru (ditampilkan dengan 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 mengirimkan permintaan
setIamPolicy.Contoh setIamPolicy
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" } } - Konten 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 Cluster Managed Service untuk Apache Spark di Google Cloud konsol, 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 Permissions, pilih peran Managed Service untuk Apache Spark, tambahkan satu atau beberapa alamat akun di kotak Add principals, lalu klik Add.
Perintah SDK yang diaktifkan oleh IAM Terperinci
Bagian ini menjelaskan perintah gcloud dataproc yang diaktifkan pada resource Managed Service untuk Apache Spark 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 |
Tugas
| 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 |
Mengirim tugas dengan IAM Terperinci
Untuk mengizinkan akun utama (pengguna, grup, atau akun layanan) mengirim tugas ke cluster tertentu menggunakan IAM Terperinci Managed Service untuk Apache Spark, 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 mengirim tugas di cluster Managed Service untuk Apache Spark 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 akun utama (lihat Menggunakan IAM Terperinci Managed Service untuk Apache Spark).
- Buat peran kustom IAM
dengan izin berikut:
dataproc.jobs.createdataproc.jobs.get
- Pilih atau Tambahkan akun utama di halaman Google Cloud konsol IAM, lalu pilih peran kustom untuk menerapkannya ke akun utama.