IAM Terperinci Dataproc

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 memberikan peran Viewer 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. Lihat Perintah SDK yang Diaktifkan oleh IAM Granular untuk memahami perintah Google Cloud CLI tertentu yang diaktifkan oleh setiap peran IAM Granular Dataproc.

Peran dan Izin IAM Terperinci Dataproc

IAM Granular 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 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 Dataproc

Bagian ini menjelaskan cara menggunakan IAM Granular Dataproc untuk menetapkan peran kepada pengguna di resource Dataproc yang ada. Lihat Memberikan, Mengubah, dan Mencabut Akses untuk mengetahui informasi yang lebih umum tentang cara 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@"
          ]
        }
      ],
      "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 Pelihat (roles/viewer) kepada pengguna sean@example.com, Anda akan mengubah contoh di atas untuk menambahkan objek binding baru (ditampilkan dalam cetak 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@"
          ]
        },
        {
          "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@"
          ]
        },
        {
          "role": "roles/viewer",
          "members": [
            "user:sean@example.com"
          ]
        }
      ],
      "etag": "string"
    }
    

REST API

  1. Buat permintaan getIamPolicy resource-type ("clusters" or "jobs" or "operations" or "workflowTemplates" or "autoscalingPolicies") untuk 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@"
          ]
        }
      ],
      "etag": "string"
    }
    
  3. Dengan 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 Pelihat (roles/viewer) kepada pengguna sean@example.com, Anda akan mengubah contoh di atas untuk menambahkan objek binding baru (ditampilkan dalam cetak 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@"
            ]
          },
          {
            "role": "roles/viewer",
            "members": [
              "user:sean@example.com"
            ]
          }
        ],
        "etag": "value-from-getIamPolicy"
      }
    }
    
  4. Tetapkan kebijakan yang diperbarui pada resource dengan mengeluarkan 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@"
            ]
          },
          {
            "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@"
          ]
        },
        {
          "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

Tabel di bawah menunjukkan 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-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
Pemilik 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
Pelihat 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
Pemilik 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
Pelihat 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
Pemilik 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
Pelihat 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
Pemilik 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
Pelihat 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
Pemilik 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 Terperinci

Untuk mengizinkan akun utama (pengguna, grup, atau akun layanan) mengirimkan tugas ke cluster yang ditentukan menggunakan IAM Granular 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:

  1. Buat bucket Cloud Storage yang dapat digunakan cluster Anda untuk terhubung ke Cloud Storage.
  2. Tambahkan akun utama ke kebijakan tingkat 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 clusters create --bucket).
  4. Setelah cluster dibuat, tetapkan kebijakan di cluster yang memberikan peran Editor atau Pemilik kepada akun utama (lihat Menggunakan IAM Granular 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 konsol Google Cloud, lalu pilih peran kustom untuk menerapkannya ke akun utama.