IAM Perincian Dataproc

IAM Perincian Dataproc adalah fitur yang memungkinkan Anda memberikan izin pada level kebijakan cluster, tugas, operasi, template alur kerja, atau penskalaan otomatis.

Contoh: Anda dapat memberikan peran Viewer cluster kepada satu pengguna, yang memungkinkan pengguna melihat cluster dalam project, dan memberi pengguna lain peran Editor tugas, yang memungkinkan pengguna tersebut memperbarui dan membatalkan, serta melihat tugas. Lihat Perintah SDK yang Diaktifkan oleh IAM Perincian untuk memahami perintah Google Cloud CLI khusus yang diaktifkan oleh setiap peran Dataproc Granular IAM.

Peran dan Izin IAM Perincian Dataproc

IAM Perincian Dataproc dapat menetapkan peran berikut dengan izin berikut pada resource Dataproc.

Peran Cluster

Peran Izin
Viewer 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
Owner 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 Pekerjaan

Peran Izin
Viewer dataproc.jobs.get
Editor dataproc.jobs.get
dataproc.jobs.cancel
dataproc.jobs.delete
dataproc.jobs.update
Owner dataproc.jobs.get
dataproc.jobs.cancel
dataproc.jobs.delete
dataproc.jobs.update
dataproc.jobs.setIamPolicy
dataproc.jobs.getIamPolicy

Peran Operasi

Peran Izin
Viewer dataproc.operations.get
Editor dataproc.jobs.get
dataproc.operations.cancel
dataproc.operations.delete
Owner dataproc.jobs.get
dataproc.operations.cancel
dataproc.operations.delete
dataproc.operations.setIamPolicy
dataproc.operations.getIamPolicy

Peran Template Alur Kerja

Peran Izin
Viewer dataproc.workflowTemplates.get
Editor dataproc.workflowTemplates.get
dataproc.workflowTemplates.delete
dataproc.workflowTemplates.update
Owner dataproc.workflowTemplates.get
dataproc.workflowTemplates.delete
dataproc.workflowTemplates.update
dataproc.workflowTemplates.setIamPolicy
dataproc.workflowTemplates.getIamPolicy

Peran Kebijakan Penskalaan Otomatis

Peran Izin
Viewer dataproc.autoscalingPolicies.get
Editor dataproc.autoscalingPolicies.get
dataproc.autoscalingPolicies.use
dataproc.autoscalingPolicies.delete
dataproc.autoscalingPolicies.update
Owner dataproc.autoscalingPolicies.get
dataproc.autoscalingPolicies.use
dataproc.autoscalingPolicies.delete
dataproc.autoscalingPolicies.update
dataproc.autoscalingPolicies.setIamPolicy
dataproc.autoscalingPolicies.getIamPolicy

Menggunakan IAM Perincian Dataproc

Bagian ini menjelaskan cara menggunakan Dataproc Granular IAM untuk menetapkan peran kepada pengguna pada resource Dataproc yang ada. Lihat artikel Memberikan, Mengubah, dan Mencabut Akses untuk mengetahui informasi yang lebih umum tentang memperbarui dan menghapus peran Identity and Access Management (IAM).

Perintah gcloud

  1. 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
    
  2. Isi file JSON akan terlihat seperti 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"
    }
    
  3. 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 Viewer (roles/viewer) kepada pengguna sean@example.com, Anda perlu mengubah contoh di atas untuk menambahkan objek binding baru (ditunjukkan dalam tebal, di bawah. Catatan: pastikan untuk menampilkan nilai etag yang Anda terima dari gcloud 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"
    }
    
  4. 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
    
  5. 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

  1. Kirimkan permintaan getIamPolicy resource-type ("clusters" or "jobs" or "operations" or "workflowTemplates" or "autoscalingPolicies") guna mendapatkan kebijakan IAM untuk resource.

    Contoh getIamPolicy Cluster:

    GET https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:getIamPolicy
    
  2. Isi file JSON akan terlihat seperti 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"
    }
    
  3. 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 binding baru ke array binding yang menentukan pengguna dan peran akses cluster untuk pengguna tersebut. Misalnya, untuk memberikan peran Viewer (roles/viewer) kepada pengguna sean@example.com, Anda perlu mengubah contoh di atas untuk menambahkan objek binding baru (ditunjukkan dalam 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"
      }
    }
    
  4. Tetapkan kebijakan yang diperbarui pada resource dengan mengajukan permintaan setIamPolicy.

    Contoh setIamPolicy Cluster:

    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"
      }
    }
    
  5. Isi respons JSON akan terlihat seperti berikut:

    Tanggapan

    {
      "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 pelanggan untuk membuka panel Permissions/Labels (jika panel tidak muncul, klik SHOW INFO panel di kanan atas halaman). Di tab Permissions, pilih peran Dataproc, tambahkan satu atau beberapa alamat akun di kotak Add principals, lalu klik Add.

Perintah SDK yang Diaktifkan oleh IAM Terperinci

Tabel di bawah menunjukkan perintah gcloud dataproc yang diaktifkan di resource Dataproc oleh setiap peran IAM Perincian.

Cluster

Peran IAM Perintah
Viewer gcloud dataproc clusters describe cluster-name
Editor gcloud dataproc clusters describe cluster-name
gcloud dataproc clusters list
gcloud dataproc clusters delete cluster-name
gcloud dataproc clusters diagnose cluster-name
gcloud dataproc clusters update cluster-name
gcloud beta dataproc clusters start cluster-name
gcloud beta dataproc clusters stop cluster-name
Owner gcloud dataproc clusters describe cluster-name
gcloud dataproc clusters list
gcloud dataproc clusters delete cluster-name
gcloud dataproc clusters diagnose cluster-name
gcloud dataproc clusters update cluster-name
gcloud beta dataproc clusters start cluster-name
gcloud beta dataproc clusters stop cluster-name
gcloud dataproc clusters get-iam-policy cluster-name
gcloud dataproc clusters set-iam-policy cluster-name

Pekerjaan

Peran IAM Perintah
Viewer gcloud dataproc jobs describe job-id
Editor gcloud dataproc jobs delete job-id
gcloud dataproc jobs describe job-id
gcloud dataproc jobs kill job-id
gcloud dataproc jobs update job-id
gcloud dataproc jobs wait job-id
Owner gcloud dataproc jobs delete job-id
gcloud dataproc jobs describe job-id
gcloud dataproc jobs kill job-id
gcloud dataproc jobs update job-id
gcloud dataproc jobs wait job-id
gcloud dataproc jobs get-iam-policy job-id
gcloud dataproc jobs set-iam-policy job-id

Operasi

Peran IAM Perintah
Viewer gcloud dataproc operations describe operation-id
Editor gcloud dataproc operations delete operation-id
gcloud dataproc operations describe operation-id
gcloud dataproc operations cancel operation-id
Owner gcloud dataproc operations delete operation-id
gcloud dataproc operations describe operation-id
gcloud dataproc operations cancel operation-id
gcloud dataproc operations get-iam-policy operation-id
gcloud dataproc operations set-iam-policy operation-id

Template Alur Kerja

Peran IAM Perintah
Viewer gcloud dataproc workflow-templates describe template-id
Editor gcloud dataproc workflow-templates delete template-id
gcloud dataproc workflow-templates describe template-id
gcloud dataproc workflow-templates remove-job template-id
gcloud dataproc workflow-templates run template-id
Owner gcloud dataproc workflow-templates delete template-id
gcloud dataproc workflow-templates describe template-id
gcloud dataproc workflow-templates remove-job template-id
gcloud dataproc workflow-templates run template-id
gcloud dataproc workflow-templates get-iam-policy template-id
gcloud dataproc workflow-templates set-iam-policy template-id

Kebijakan Penskalaan Otomatis

Peran IAM Perintah
Viewer gcloud dataproc autoscaling-policies describe policy-id
Editor gcloud dataproc autoscaling-policies delete policy-id
gcloud dataproc autoscaling-policies describe policy-id
gcloud dataproc autoscaling-policies update policy-id
gcloud dataproc clusters create cluster-name --autoscaling-policy policy-id
Owner gcloud dataproc autoscaling-policies delete policy-id
gcloud dataproc autoscaling-policies describe policy-id
gcloud dataproc autoscaling-policies update policy-id
gcloud dataproc clusters create cluster-name --autoscaling-policy policy-id
gcloud dataproc autoscaling-policies get-iam-policy policy-id
gcloud dataproc autoscaling-policies set-iam-policy policy-id

Mengirimkan Tugas dengan IAM Perincian

Untuk mengizinkan akun utama (pengguna, grup, atau akun layanan) mengirimkan tugas ke cluster yang ditentukan menggunakan Dataproc Granular IAM, selain memberikan peran Editor kepada pengguna di cluster, izin tambahan harus ditetapkan di level project. Berikut langkah-langkah yang harus dilakukan untuk mengizinkan akun utama mengirimkan tugas di cluster Dataproc yang ditentukan:

  1. Buat bucket Cloud Storage yang dapat digunakan cluster Anda untuk terhubung ke Cloud Storage.
  2. Tambahkan akun utama ke kebijakan level bucket, dengan memilih peran Storage Object Viewer untuk akun utama (lihat roles/storage.objectViewer), yang mencakup izin berikut:
    1. storage.objects.get
    2. storage.objects.list
  3. Saat membuat cluster, teruskan nama bucket yang baru saja Anda buat ke cluster menggunakan parameter --bucket (lihat gcloud dataproc cluster create --bucket).
  4. Setelah cluster dibuat, tetapkan kebijakan pada cluster yang memberikan peran Editor atau Pemilik kepada kepala sekolah (lihat Menggunakan IAM Perincian Dataproc).
  5. Buat peran khusus IAM dengan izin berikut:
    1. dataproc.jobs.create
    2. dataproc.jobs.get
  6. Pilih atau Tambahkan akun utama di halaman IAM di Google Cloud Console, lalu pilih peran khusus untuk diterapkan ke akun utama.