IAM Terperinci Managed Service untuk Apache Spark

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

  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. 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"
    }
    
  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 sebelumnya untuk menambahkan objek binding baru (ditampilkan dengan huruf tebal dalam contoh berikut). 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. 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
    
  2. 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"
    }
    
  3. 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 pengguna sean@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"
      }
    }
    
  4. 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"
      }
    }
    
  5. 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-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

Tugas

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

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:

  1. Buat bucket Cloud Storage yang dapat digunakan cluster Anda untuk terhubung ke Cloud Storage.
  2. Tambahkan akun utama ke kebijakan tingkat bucket, pilih 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 pada cluster yang memberikan peran Editor atau Pemilik kepada akun utama (lihat Menggunakan IAM Terperinci Managed Service untuk Apache Spark).
  5. Buat peran kustom IAM dengan izin berikut:
    1. dataproc.jobs.create
    2. dataproc.jobs.get
  6. Pilih atau Tambahkan akun utama di halaman Google Cloud konsol IAM, lalu pilih peran kustom untuk menerapkannya ke akun utama.