Persona dan peran IAM serverless

Panduan ini menunjukkan kepada developer Spark, administrator Spark, dan pelihat Spark cara mendapatkan izin yang mereka butuhkan untuk mulai menggunakan Managed Service untuk Apache Spark serverless batch workload dan sesi interaktif serverless.

Persona Siapa mereka dalam organisasi Yang mereka butuhkan dari IAM
Developer Spark Pembangun dan konsumen platform. Menulis dan menjalankan tugas PySpark dan Spark, mengembangkan di notebook dan sesi, membaca dan menulis set data, serta memantau dan memecahkan masalah workload mereka. Mencakup data engineer, data scientist, dan developer. Izin untuk mengirimkan, menjalankan, memantau, dan memecahkan masalah workload, serta untuk membaca dan menulis data yang disentuh oleh tugas mereka.
Administrator Spark Pemilik dan pengelola platform. Menyiapkan project, memutuskan cara mengautentikasi workload, mengaktifkan developer Spark, mengelola akun layanan bersama, serta menerapkan pagar pembatas organisasi dan hak istimewa terendah. Juga disebut administrator platform. Izin untuk memberikan akses kepada orang lain, mengonfigurasi identitas eksekusi (kredensial pengguna akhir atau akun layanan bersama), dan mengelola resource serverless di seluruh project.
Penonton Spark Pengamat dan auditor platform. Melacak penyelesaian tugas, histori eksekusi, metrik, dan dasbor tanpa mengirimkan atau mengubah workload. Mencakup analis, manajer proyek, FinOps, dan auditor kepatuhan. Izin hanya baca untuk melihat batch, sesi, operasi, dan dasbor status.

Memilih versi runtime

Versi runtime yang direkomendasikan bergantung pada versi Apache Spark yang digunakan untuk menjalankan workload Anda.

  • Runtime 3.x (Direkomendasikan): menggunakan Spark 4 dan memiliki proses aktivasi dan penggunaan yang lebih sederhana. Secara default, beban kerja berjalan sebagai pengguna yang mengirimkan dengan kredensial pengguna akhir (EUC) pengguna, yang memerlukan pemberian satu peran IAM kepada pengguna. Administrator dapat mengonfigurasi akun layanan kustom workload untuk penggunaan yang lebih canggih.

  • Runtime 2.x: menggunakan Spark 3.5 dan menggunakan akun pengirim dan workload yang terpisah. Secara default, pengirim adalah identitas pengguna, dan akun layanan default Compute Engine adalah identitas beban kerja. Administrator dapat mengonfigurasi akun layanan workload kustom untuk kontrol akses yang lebih terperinci.

Untuk mengetahui informasi selengkapnya, lihat Rilis runtime Managed Service untuk Apache Spark.

Perbandingan fitur

Upgrade 3.x runtime 2.x komponen dan kemampuan, serta menyediakan penyiapan yang disederhanakan:

Kemampuan dan alur kerja Runtime 3.x (direkomendasikan) Runtime 2.x
Versi Apache Spark Spark 4 Spark 3.5 (dan versi sebelumnya 3.x)
Pengembangan interaktif Sesi Spark Connect (klien Spark interaktif standar industri) Sesi Jupyter
Workload batch R sparklyr Batch SparkR
Identitas eksekusi Kredensial pengguna akhir (EUC)1 Akun layanan 1
Penyimpanan untuk penyiapan tugas Tidak diperlukan (dikelola secara internal) Bucket staging Cloud Storage
Format output log Format JSON terstruktur (jsonPayload) Format teks biasa (textPayload)

1 Runtime 3.x secara default menggunakan kredensial pengguna akhir (EUC) pengirim kecuali jika akun layanan kustom ditentukan untuk workload atau sesi. 2.x runtime secara default adalah akun layanan default Compute Engine, kecuali jika akun layanan kustom ditentukan untuk beban kerja atau sesi.

Peran data dan layanan umum

Managed Service untuk Apache Spark biasanya membaca dari dan menulis ke layananGoogle Cloud lain. Bagian ini mencantumkan peran yang terkait dengan layanan yang sering diakses.

  • Runtime 3.x (identitas EUC default): Berikan peran kepada developer Spark (pengguna atau grup).
  • Runtime 2.x: Berikan peran ke akun layanan beban kerja (akun layanan default Compute Engine atau akun layanan beban kerja kustom).
Layanan atau API Peran Tujuan
Cloud Storage roles/storage.objectViewer
roles/storage.objectAdmin
Membaca data input dan skrip bertahap.
Menulis data output.
BigLake dan katalog runtime Lakehouse roles/biglake.viewer
roles/biglake.editor
roles/biglake.admin
Lakukan kueri dan kelola format tabel terbuka, seperti Apache Iceberg dan Delta Lake, menggunakan katalog REST BigLake (Lakehouse REST Catalog (LRC)).
Bigtable roles/bigtable.reader
roles/bigtable.user
Membaca tabel Bigtable.
Membaca dan menulis data Bigtable.
Dataproc Metastore (DPMS) roles/metastore.metadataViewer
roles/metastore.editor
Membaca metadata Hive.
Mengelola skema dan tabel metadata.

DPMS adalah metastore lama. Pelanggan dianjurkan untuk menggunakan Katalog REST Lakehouse (LRC) BigLake.

BigQuery menawarkan banyak peran IAM yang terperinci dan ACL tingkat resource. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin IAM BigQuery.

Memberikan peran

Bagian berikut berisi petunjuk tentang cara memberikan peran untuk setiap persona yang terkait dengan penyiapan, pengiriman, dan pemantauan workload batch dan sesi interaktif Managed Service untuk Apache Spark serverless 3.x dan 2.x.

Runtime 3.x

Secara default, beban kerja 3.x berjalan dengan kredensial pengguna akhir (EUC) pengguna yang mengirimkan. Administrator memberikan satu peran kepada pengguna, dan tidak diperlukan akun layanan bersama atau bucket penyiapan. Administrator dapat mengonfigurasi akun layanan kustom jika identitas layanan khusus diperlukan.

Developer

Developer Spark (runtime 3.x)

Sebagai developer Spark, Anda dapat menggunakan runtime 3.x dengan kredensial pengguna untuk mengembangkan, mengirimkan, memantau, dan memecahkan masalah workload Spark, serta mengakses data secara langsung

  1. Minta peran editor serverless. Minta administrator untuk memberi Anda roles/dataproc.serverlessEditor di project.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/dataproc.serverlessEditor"
    

    Peran ini memungkinkan Anda mengirimkan, memantau, memecahkan masalah, dan membatalkan workload batch Spark dan sesi Spark Connect interaktif.

  2. Mendapatkan akses ke data dan layanan. Karena workload berjalan sebagai Anda, identitas Anda memerlukan akses ke layanan dan set data yang diakses oleh aplikasi Spark Anda (lihat Peran layanan dan data umum).

    Misalnya, berikan akses baca ke bucket Cloud Storage input Anda sendiri:

    gcloud storage buckets add-iam-policy-binding gs://INPUT_BUCKET \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/storage.objectViewer"
    
  3. Kirimkan workload pengujian. Kirimkan workload batch pengujian untuk mengonfirmasi penyiapan Anda.

    gcloud dataproc batches submit spark \
      --region=REGION \
      --version=3.0 \
      --class=org.apache.spark.examples.SparkPi \
      --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
      -- 1000
    

    Catatan:

    • Jika ini pertama kalinya Anda mengirimkan beban kerja 3.x dengan kredensial pengguna akhir (EUC), Anda akan diminta untuk memberikan izin OAuth satu kali. Berikan izin, lalu kirim ulang workload.

    • Jika project Anda tidak memiliki Jaringan VPC default, gunakan flag atau kolom subnet untuk menentukan subnet regional Anda (lihat Konfigurasi jaringan serverless Managed Service untuk Apache Spark).

    • Untuk contoh end-to-end menjalankan beban kerja PySpark dan mengonfigurasi izin yang diperlukan di Cloud Storage, BigLake, dan BigQuery, lihat Mengubah data dan menulis ke tabel Apache Iceberg.

Akun layanan workload kustom (runtime 3.x)

Gunakan akun layanan kustom dengan 3.x runtime jika organisasi Anda mewajibkan workload dijalankan dengan identitas khusus yang dapat diaudit, bukan kredensial pengguna akhir (lihat Praktik terbaik akun layanan IAM).

  1. Dapatkan izin untuk menjalankan workload sebagai akun layanan kustom. Minta administrator Anda untuk memberi Anda roles/iam.serviceAccountUser di akun layanan kustom.

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  2. Tentukan layanan kustom.

    gcloud dataproc batches submit spark \
      --region=REGION \
      --service-account=WORKLOAD_SA_EMAIL \
      --version=3.0 \
      --class=org.apache.spark.examples.SparkPi \
      --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
      -- 1000
    
  3. Memberikan akses set data. Saat menggunakan akun layanan kustom, berikan peran tingkat data langsung ke WORKLOAD_SA_EMAIL (lihat Peran layanan dan data umum).

Administrator

Administrator Spark (runtime 3.x)

Sebagai administrator Spark, Anda menyiapkan project, memutuskan cara mengautentikasi workload, dan memberikan akses kepada developer Spark.

Workload menggunakan subnet VPC default bernama secara otomatis. Jika project Anda tidak memiliki jaringan default atau menggunakan VPC kustom, lihat Konfigurasi jaringan serverless Managed Service untuk Apache Spark untuk menyiapkan dan menentukan subnet untuk workload dan sesi.

Mengaktifkan runtime 3.x dengan kredensial pengguna akhir (direkomendasikan)

Ini adalah penyiapan hak istimewa terendah dengan pemeliharaan paling rendah. Setiap developer Spark menjalankan beban kerja sebagai identitas penggunanya; administrator tidak perlu menyiapkan dan mengelola akun layanan beban kerja.

  1. Memberikan roles/dataproc.serverlessEditor kepada developer Spark.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/dataproc.serverlessEditor"
    
  2. Berikan roles/dataproc.serverlessViewer kepada pelihat hanya baca.

    Berikan peran ini kepada auditor, konsumen dasbor, dan anggota tim yang perlu memantau status dan log tugas tanpa mengirimkan atau mengubah workload.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:VIEWER_EMAIL" \
      --role="roles/dataproc.serverlessViewer"
    
  3. Pastikan developer memiliki akses ke data.

    Secara default, beban kerja runtime 3.x berjalan sebagai pengguna yang mengirimkan. Berikan peran akses data, seperti roles/storage.objectViewer atau roles/storage.objectAdmin, kepada developer Spark atau grup Google yang mencakup developer Spark (lihat Peran layanan dan data umum).

Mengaktifkan akun layanan kustom workload (runtime 3.x)

Gunakan akun layanan kustom dengan 3.x runtime saat Anda memerlukan workload untuk berjalan dengan identitas khusus yang dapat diaudit, bukan kredensial pengguna akhir (lihat Praktik terbaik akun layanan IAM).

  1. Beri roles/iam.serviceAccountUser di akun layanan kustom workload.

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  2. Beri roles/dataproc.serverlessNode ke akun layanan kustom workload.

    Dengan peran ini, akun layanan dapat mengelola kumpulan node komputasi dan berkomunikasi dengan aplikasi Spark selama eksekusi beban kerja:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:WORKLOAD_SA_EMAIL" \
      --role="roles/dataproc.serverlessNode"
    
  3. Memberikan akses ke data aplikasi.

    Berikan peran tingkat data secara langsung ke akun layanan workload sehingga akun tersebut dapat membaca dan menulis set data aplikasi (lihat Peran layanan dan data umum). Jika beban kerja Anda menggunakan skrip bertahap atau JAR kustom, berikan juga akses baca pada bucket Cloud Storage yang sesuai.

Mengaktifkan akun layanan kustom pengirim (runtime 3.x)

Gunakan akun layanan kustom pengirim saat sistem otomatis (seperti Managed Service untuk Apache Airflow, Cloud Scheduler, atau pipeline CI atau CD) mengirimkan workload tanpa pengguna manusia interaktif.

  • Dalam skenario ini, akun layanan pengirim menjalankan perintah gcloud yang memulai tugas. Berikut adalah contoh yang menggunakan gcloud:

    gcloud dataproc batches submit spark \
      --service-account=WORKLOAD_SA_EMAIL \
      ...
    
  • Akun layanan workload menjalankan kode Spark di node komputasi dan mengakses set data aplikasi.

    1. Berikan roles/dataproc.serverlessEditor ke akun layanan kustom pengirim.
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:SUBMITTER_SA_EMAIL" \
      --role="roles/dataproc.serverlessEditor"
    

    Saat menggunakan runtime 3.x dengan akun layanan kustom pengirim, akun layanan workload kustom diperlukan untuk menjalankan workload; runtime tidak dapat melakukan penggantian ke kredensial pengguna akhir (EUC) karena tidak ada pengguna akhir interaktif. Pekerjaan harus dijalankan sebagai akun layanan workload yang ditentukan (--service-account).

  1. Beri roles/iam.serviceAccountUser di akun layanan kustom workload.

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="serviceAccount:SUBMITTER_SA_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  2. Konfigurasi akun layanan kustom workload. Berikan peran data aplikasi dan roles/dataproc.serverlessNode kepada WORKLOAD_SA_EMAIL.

Referensi peran administrator Spark (runtime 3.x)

Tabel berikut merangkum peran yang akan diberikan dengan runtime 3.x.

Pengirim Workload Identity Memberikan kepada pengirim Memberikan izin ke akun layanan workload
Pengguna akhir (default) Pengguna akhir (EUC) roles/dataproc.serverlessEditor (+ peran data pada pengguna) (tidak ada—tidak ada SA yang digunakan)
Pengguna akhir SA Kustom roles/dataproc.serverlessEditor + roles/iam.serviceAccountUser di SA kustom roles/dataproc.serverlessNode + peran data
SA kustom (otomatisasi) SA Kustom roles/dataproc.serverlessEditor + roles/iam.serviceAccountUser di SA kustom roles/dataproc.serverlessNode + peran data

Pelihat

Penampil Spark (runtime 3.x)

Sebagai pelihat Spark, Anda dapat melihat workload batch, sesi interaktif, metrik eksekusi, log, dan dasbor status tanpa mengirimkan atau mengubah workload.

Minta administrator Anda memberi Anda roles/dataproc.serverlessViewer.

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:VIEWER_EMAIL" \
  --role="roles/dataproc.serverlessViewer"

Peran ini memberikan akses hanya baca untuk melihat workload batch serverless, sesi interaktif, dan status operasi.

Izin mendetail

Izin terperinci (runtime 3.x)

Bagian ini mencantumkan izin IAM yang disertakan dalam peran IAM yang terkait dengan 3.x runtime.

Peran Serverless Editor (roles/dataproc.serverlessEditor)

Peran ini dengan izinnya memberikan akses baca dan tulis ke workload batch serverless runtime 3.x dan sesi interaktif.

Izin Deskripsi
dataproc.batches.create Buat dan kirimkan workload batch baru.
dataproc.batches.get Mendapatkan status dan detail workload batch.
dataproc.batches.list Mencantumkan semua beban kerja batch dalam project atau region.
dataproc.batches.delete Menghapus batch yang telah selesai atau dihentikan.
dataproc.batches.cancel Membatalkan workload batch yang sedang berjalan.
dataproc.sessions.create Buat sesi Spark Connect interaktif.
dataproc.sessions.get Mendapatkan status dan detail sesi.
dataproc.sessions.list Mencantumkan semua sesi dalam project atau region.
dataproc.sessions.delete Menghapus sesi yang dihentikan.
dataproc.sessions.terminate Menghentikan sesi interaktif yang sedang berjalan.
dataproc.operations.get Melakukan polling status operasi asinkron (diperlukan oleh CLI gcloud).

Peran Serverless Node (roles/dataproc.serverlessNode)

Memberikan izin pengelolaan node pool dan komunikasi Spark internal untuk akun layanan workload kustom 3.x runtime.

Peran ini dengan izinnya diperlukan saat menggunakan akun layanan workload kustom dengan runtime 3.x. Workload yang berjalan dengan kredensial pengguna akhir (EUC) 3.xdefault tidak menggunakan akun layanan workload.

Izin Deskripsi
dataproc.batches.sparkApplicationWrite Komunikasi aplikasi Spark untuk workload batch.
dataproc.sessions.sparkApplicationWrite Komunikasi aplikasi Spark untuk sesi interaktif.
dataprocrm.nodePools.create Buat kumpulan node komputasi.
dataprocrm.nodePools.delete Menghapus kumpulan node komputasi.
dataprocrm.nodePools.resize Menskalakan node pool secara dinamis.
dataprocrm.nodePools.get Membaca status node pool.
dataprocrm.nodePools.list Mencantumkan node pool.
dataprocrm.nodePools.update Perbarui konfigurasi node pool.
dataprocrm.nodePools.deleteNodes Menghapus node tertentu dari pool.
dataprocrm.nodes.list Mencantumkan node dalam pool.
dataprocrm.nodes.delete Menghapus node setelah tugas selesai.
dataprocrm.nodes.get Membaca status node.
dataprocrm.nodes.heartbeat Melaporkan kondisi dan detak jantung node.
dataprocrm.nodes.mintOAuthToken Buat token OAuth untuk operasi node.
dataprocrm.operations.get Periksa status operasi infrastruktur.

Peran Serverless Viewer (roles/dataproc.serverlessViewer)

Peran ini dengan izinnya diperlukan saat menggunakan 3.x runtime dengan akun layanan kustom pengirim. Mereka menyediakan akses hanya baca ke workload batch serverless runtime 3.x, sesi interaktif, dan status operasi.

Izin Deskripsi
dataproc.batches.get Membaca status dan detail workload batch.
dataproc.batches.list Mencantumkan workload batch.
dataproc.sessions.get Membaca status dan detail sesi.
dataproc.sessions.list Mencantumkan sesi.
dataproc.operations.get Membaca status operasi.
dataproc.operations.list Mencantumkan operasi.

Peran delegasi akun layanan (roles/iam.serviceAccountUser)

Memungkinkan pengguna atau sistem otomatis melampirkan dan menjalankan workload sebagai akun layanan kustom. Beban kerja dijalankan dengan izin dan akses resource yang diberikan ke akun layanan tersebut, bukan kredensial pengguna akhir (EUC) pengguna yang mengirimkan.

Izin Deskripsi
iam.serviceAccounts.actAs Mengizinkan pengirim untuk menjalankan workload sebagai akun layanan yang ditentukan.

Runtime 2.x

Secara default, workload runtime 2.x dijalankan sebagai akun layanan default Compute Engine. Pengirim (pengguna atau sistem otomatis) bertindak sebagai akun ini saat menjalankan beban kerja atau sesi.

Developer

Developer Spark (runtime 2.x)

Sebagai developer Spark yang menggunakan runtime 2.x, Anda mengembangkan, mengirimkan, memantau, dan memecahkan masalah workload Spark, serta mengakses data. Karena beban kerja berjalan sebagai akun layanan, bukan identitas pengguna Anda, administrator akan memberi Anda peran IAM Editor dan peran Service Account User untuk menjalankan beban kerja sebagai akun layanan beban kerja.

  1. Minta peran editor. Minta administrator untuk memberi Anda roles/dataproc.editor di project:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/dataproc.editor"
    
  2. Minta izin delegasi. Minta administrator Anda untuk memberi Anda roles/iam.serviceAccountUser di akun layanan beban kerja.

    Akun layanan workload default adalah akun layanan default Compute Engine, PROJECT_NUMBER-compute@developer.gserviceaccount.com:

    gcloud iam service-accounts add-iam-policy-binding \
      PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  3. Mendapatkan akses bucket penyiapan. Pengirim 2.x runtime memerlukan izin untuk mengupload skrip dan JAR, dan akun layanan beban kerja memerlukan izin untuk mengelola file dan log sementara. Izin ini terdapat dalam peran roles/storage.objectAdmin.

    # Grant submitter access to upload staged files
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/storage.objectAdmin"
    
    # Grant workload service account access for staging, temporary files, and logs
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --role="roles/storage.objectAdmin"
    
  4. Kirimkan workload batch pengujian. Kirimkan workload batch pengujian untuk mengonfirmasi penyiapan Anda.

    gcloud dataproc batches submit spark \
      --region=REGION \
      --version=2.2 \
      --class=org.apache.spark.examples.SparkPi \
      --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
      -- 1000
    

    Catatan:

Akun layanan kustom workload kustom (runtime 2.x)

Gunakan akun layanan kustom jika organisasi Anda mewajibkan workload berjalan dengan identitas khusus yang dapat diaudit, bukan akun layanan default Compute Engine yang dibagikan (lihat praktik terbaik akun layanan IAM).

  1. Dapatkan izin untuk menjalankan workload sebagai akun layanan kustom. Minta administrator Anda untuk memberi Anda roles/iam.serviceAccountUser di akun layanan kustom:

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  2. Tentukan akun layanan kustom dengan flag --service-account saat mengirimkan workload.

    gcloud dataproc batches submit spark \
      --region=REGION \
      --service-account=WORKLOAD_SA_EMAIL \
      --version=2.2 \
      --class=org.apache.spark.examples.SparkPi \
      --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
      -- 1000
    
  3. Akses set data: Jika beban kerja Anda tidak dapat mengakses set data, berikan peran akses data yang diperlukan kepada akun layanan kustom beban kerja (bukan akun pengguna Anda) (lihat Peran layanan dan data umum).

Administrator

Administrator Spark (runtime 2.x)

Sebagai administrator Spark, Anda menyiapkan project, mengonfigurasi akun layanan, dan memberikan akses kepada developer Spark.

Workload menggunakan subnet VPC default bernama secara otomatis. Jika project Anda tidak memiliki jaringan default atau menggunakan VPC kustom, lihat Konfigurasi jaringan serverless Managed Service untuk Apache Spark untuk menyiapkan dan menentukan subnet untuk workload dan sesi.

Mengaktifkan runtime default 2.x

Dengan runtime default 2.x, workload dijalankan sebagai akun layanan default Compute Engine.

  1. Memberi roles/dataproc.editor kepada developer.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/dataproc.editor"
    
  2. Beri roles/iam.serviceAccountUser pada akun layanan default.

    gcloud iam service-accounts add-iam-policy-binding \
      PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  3. Berikan roles/dataproc.worker ke akun layanan workload.

    Peran ini memungkinkan akun layanan mendaftarkan agen VM, menyewa dan mengeksekusi tugas komputasi, serta mengirimkan log dan metrik ke Cloud Logging dan Cloud Monitoring:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --role="roles/dataproc.worker"
    
  4. Beri roles/storage.objectAdmin untuk penyimpanan bucket staging.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --role="roles/storage.objectAdmin"
    
  5. Memberikan akses set data ke akun layanan beban kerja.

    Berikan peran tingkat data ke akun layanan workload agar dapat mengakses set data aplikasi Spark (lihat Peran layanan dan data umum).

Mengaktifkan akun layanan kustom workload (runtime 2.x)

Gunakan akun layanan kustom workload dengan runtime 2.x untuk mengisolasi workload daripada menggunakan akun layanan default Compute Engine bersama.

  1. Beri roles/iam.serviceAccountUser pada akun layanan kustom kepada developer.

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  2. Beri roles/dataproc.worker ke akun layanan kustom.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:WORKLOAD_SA_EMAIL" \
      --role="roles/dataproc.worker"
    
  3. Memberikan akses data aplikasi dan penyiapan.

    Berikan peran tingkat data secara langsung ke akun layanan kustom workload (lihat Peran layanan dan data umum) dan berikan roles/storage.objectAdmin pada bucket sementara dan staging.

Mengaktifkan akun layanan kustom pengirim (runtime 2.x)

Gunakan akun layanan kustom pengirim saat sistem otomatis (seperti Managed Service untuk Apache Airflow, Cloud Scheduler, atau pipeline CI/CD) mengirimkan workload tanpa pengguna manusia interaktif.

  1. Berikan roles/dataproc.editor ke akun layanan pengirim.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:SUBMITTER_SA_EMAIL" \
      --role="roles/dataproc.editor"
    
  2. Berikan roles/iam.serviceAccountUser di akun layanan beban kerja.

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="serviceAccount:SUBMITTER_SA_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  3. Konfigurasi akun layanan workload. Berikan akses roles/dataproc.worker dan set data ke WORKLOAD_SA_EMAIL.

Referensi peran administrator Spark (runtime 2.x)

Tabel berikut merangkum peran IAM yang akan diberikan dengan 2.x runtime.

Pengirim Workload Identity Memberikan kepada pengirim Memberikan izin ke akun layanan workload
Pengguna akhir (default) SA default Compute Engine roles/dataproc.editor + roles/iam.serviceAccountUser di SA default roles/dataproc.worker + roles/storage.objectAdmin + peran data
Pengguna akhir SA Kustom roles/dataproc.editor + roles/iam.serviceAccountUser di SA kustom roles/dataproc.worker + roles/storage.objectAdmin + peran data
SA kustom (otomatisasi) SA Kustom roles/dataproc.editor + roles/iam.serviceAccountUser di SA kustom roles/dataproc.worker + roles/storage.objectAdmin + peran data

Pelihat

Penampil Spark (runtime 2.x)

Sebagai pelihat Spark, Anda dapat melihat workload batch, sesi interaktif, metrik eksekusi, log, dan dasbor status tanpa mengirimkan atau mengubah workload.

Minta administrator untuk memberi Anda roles/dataproc.viewer:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:VIEWER_EMAIL" \
  --role="roles/dataproc.viewer"

Peran ini memberikan akses hanya baca di seluruh resource Managed Service untuk Apache Spark, seperti cluster, tugas, batch, sesi, dan operasi.

Izin mendetail

Izin terperinci (runtime 2.x)

Bagian ini mencantumkan izin IAM yang disertakan dalam peran IAM yang terkait dengan 2.x runtime.

Peran Editor (roles/dataproc.editor)

Peran ini memberikan kontrol atas workload dan sesi serverless runtime 2.x, serta cluster dan tugas Managed Service untuk Apache Spark di Compute Engine.

Izin Diperlukan untuk serverless Deskripsi
dataproc.batches.create Ya Buat dan kirimkan workload batch baru.
dataproc.batches.get Ya Mendapatkan status dan detail workload batch.
dataproc.batches.list Ya Mencantumkan semua beban kerja batch dalam project atau region.
dataproc.batches.delete Ya Menghapus batch yang telah selesai atau dihentikan.
dataproc.batches.cancel Ya Membatalkan workload batch yang sedang berjalan.
dataproc.sessions.create Ya Buat sesi interaktif.
dataproc.sessions.get Ya Mendapatkan status dan detail sesi.
dataproc.sessions.list Ya Mencantumkan semua sesi dalam project atau region.
dataproc.sessions.delete Ya Menghapus sesi yang dihentikan.
dataproc.sessions.terminate Ya Menghentikan sesi interaktif yang sedang berjalan.
dataproc.operations.get Ya Melakukan polling status operasi asinkron (diperlukan oleh CLI gcloud).
compute.networks.get Ya Melihat konfigurasi jaringan VPC.
compute.networks.list Ya Mencantumkan subnet dan jaringan VPC yang tersedia.
dataproc.clusters.* Tidak (khusus cluster) Buat, kelola, dan gunakan cluster Managed Service untuk Apache Spark berbasis Compute Engine.
dataproc.jobs.* Tidak (khusus cluster) Mengirim dan mengelola tugas di cluster Managed Service untuk Apache Spark berbasis Compute Engine.
dataproc.autoscalingPolicies.* Tidak (khusus cluster) Kebijakan penskalaan otomatis untuk cluster berbasis Compute Engine.
dataproc.nodeGroups.* Tidak (khusus cluster) Grup node kustom pada cluster berbasis Compute Engine.
dataproc.workflowTemplates.* Tidak (khusus cluster) Alur kerja template untuk cluster berbasis Compute Engine.
compute.machineTypes.* Tidak (khusus cluster) Metadata jenis mesin untuk cluster berbasis Compute Engine.

Peran pekerja (roles/dataproc.worker)

Peran ini memberikan izin eksekusi workload untuk runtime 2.x.

Izin Deskripsi
dataproc.agents.create Daftarkan agen VM di VM.
dataproc.agents.get Membaca status agen.
dataproc.agents.update Perbarui status agen.
dataproc.agents.delete Batalkan pendaftaran agen setelah selesai.
dataproc.tasks.lease Memberi lease tugas komputasi untuk dieksekusi.
dataproc.tasks.reportStatus Melaporkan status eksekusi tugas.
storage.objects.create Menulis data penyiapan, file sementara, dan log.
storage.objects.delete Membersihkan file sementara.
storage.objects.get Membaca skrip booting dan file yang di-stage.
storage.objects.list Mencantumkan konten bucket sementara dan penyiapan.

Peran pelihat (roles/dataproc.viewer)

Peran ini memberikan akses hanya baca di semua resource Managed Service untuk Apache Spark.

Izin Diperlukan untuk serverless Deskripsi
dataproc.batches.get Ya Membaca status dan detail workload batch.
dataproc.batches.list Ya Mencantumkan semua beban kerja batch dalam project atau region.
dataproc.sessions.get Ya Membaca status dan detail sesi.
dataproc.sessions.list Ya Mencantumkan semua sesi dalam project atau region.
dataproc.operations.get Ya Membaca status operasi asinkron.
dataproc.operations.list Ya Mencantumkan operasi dalam project atau region.
dataproc.clusters.get Tidak (khusus cluster) Melihat konfigurasi dan status cluster.
dataproc.clusters.list Tidak (khusus cluster) Mencantumkan cluster dalam project atau region.
dataproc.jobs.get Tidak (khusus cluster) Melihat detail dan status tugas di cluster.
dataproc.jobs.list Tidak (khusus cluster) Mencantumkan tugas di cluster.
dataproc.autoscalingPolicies.get Tidak (khusus cluster) Lihat detail kebijakan penskalaan otomatis.
dataproc.autoscalingPolicies.list Tidak (khusus cluster) Mencantumkan kebijakan penskalaan otomatis.
dataproc.workflowTemplates.get Tidak (khusus cluster) Melihat detail template alur kerja.
dataproc.workflowTemplates.list Tidak (khusus cluster) Mencantumkan template alur kerja.

Peran delegasi akun layanan (roles/iam.serviceAccountUser)

Mengizinkan pengguna atau sistem otomatis untuk melampirkan dan menjalankan workload sebagai akun layanan default Compute Engine atau akun layanan kustom. Workload dieksekusi dengan izin dan akses resource yang diberikan ke akun layanan tersebut.

Izin Deskripsi
iam.serviceAccounts.actAs Mengizinkan pengirim untuk menjalankan workload sebagai akun layanan yang ditentukan.

Langkah berikutnya