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 Spark4dan 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 Spark3.5dan 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.objectViewerroles/storage.objectAdmin |
Membaca data input dan skrip bertahap. Menulis data output. |
| BigLake dan katalog runtime Lakehouse | roles/biglake.viewerroles/biglake.editorroles/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.readerroles/bigtable.user |
Membaca tabel Bigtable. Membaca dan menulis data Bigtable. |
| Dataproc Metastore (DPMS) | roles/metastore.metadataViewerroles/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
Minta peran editor serverless. Minta administrator untuk memberi Anda
roles/dataproc.serverlessEditordi 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.
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"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 \ -- 1000Catatan:
Jika ini pertama kalinya Anda mengirimkan beban kerja
3.xdengan 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 kolomsubnetuntuk 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).
Dapatkan izin untuk menjalankan workload sebagai akun layanan kustom. Minta administrator Anda untuk memberi Anda
roles/iam.serviceAccountUserdi akun layanan kustom.gcloud iam service-accounts add-iam-policy-binding \ WORKLOAD_SA_EMAIL \ --member="user:DEVELOPER_EMAIL" \ --role="roles/iam.serviceAccountUser"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 \ -- 1000Memberikan 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.
Memberikan
roles/dataproc.serverlessEditorkepada developer Spark.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:DEVELOPER_EMAIL" \ --role="roles/dataproc.serverlessEditor"Berikan
roles/dataproc.serverlessViewerkepada 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"Pastikan developer memiliki akses ke data.
Secara default, beban kerja runtime
3.xberjalan sebagai pengguna yang mengirimkan. Berikan peran akses data, sepertiroles/storage.objectVieweratauroles/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).
Beri
roles/iam.serviceAccountUserdi akun layanan kustom workload.gcloud iam service-accounts add-iam-policy-binding \ WORKLOAD_SA_EMAIL \ --member="user:DEVELOPER_EMAIL" \ --role="roles/iam.serviceAccountUser"Beri
roles/dataproc.serverlessNodeke 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"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
gcloudyang memulai tugas. Berikut adalah contoh yang menggunakangcloud:gcloud dataproc batches submit spark \ --service-account=WORKLOAD_SA_EMAIL \ ...Akun layanan workload menjalankan kode Spark di node komputasi dan mengakses set data aplikasi.
- Berikan
roles/dataproc.serverlessEditorke 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.xdengan 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).- Berikan
Beri
roles/iam.serviceAccountUserdi akun layanan kustom workload.gcloud iam service-accounts add-iam-policy-binding \ WORKLOAD_SA_EMAIL \ --member="serviceAccount:SUBMITTER_SA_EMAIL" \ --role="roles/iam.serviceAccountUser"Konfigurasi akun layanan kustom workload. Berikan peran data aplikasi dan
roles/dataproc.serverlessNodekepadaWORKLOAD_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.
Minta peran editor. Minta administrator untuk memberi Anda
roles/dataproc.editordi project:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:DEVELOPER_EMAIL" \ --role="roles/dataproc.editor"Minta izin delegasi. Minta administrator Anda untuk memberi Anda
roles/iam.serviceAccountUserdi 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"Mendapatkan akses bucket penyiapan. Pengirim
2.xruntime memerlukan izin untuk mengupload skrip dan JAR, dan akun layanan beban kerja memerlukan izin untuk mengelola file dan log sementara. Izin ini terdapat dalam peranroles/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"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 \ -- 1000Catatan:
Karena beban kerja Anda berjalan sebagai akun layanan beban kerja, akun tersebut, bukan akun pengguna Anda, memerlukan akses ke data yang dibaca dan ditulis oleh tugas Anda (lihat Peran layanan dan data umum).
Jika project Anda tidak memiliki Jaringan VPC
default, gunakan flag atau kolomsubnetuntuk 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 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).
Dapatkan izin untuk menjalankan workload sebagai akun layanan kustom. Minta administrator Anda untuk memberi Anda
roles/iam.serviceAccountUserdi akun layanan kustom:gcloud iam service-accounts add-iam-policy-binding \ WORKLOAD_SA_EMAIL \ --member="user:DEVELOPER_EMAIL" \ --role="roles/iam.serviceAccountUser"Tentukan akun layanan kustom dengan flag
--service-accountsaat 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 \ -- 1000Akses 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.
Memberi
roles/dataproc.editorkepada developer.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:DEVELOPER_EMAIL" \ --role="roles/dataproc.editor"Beri
roles/iam.serviceAccountUserpada 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"Berikan
roles/dataproc.workerke 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"Beri
roles/storage.objectAdminuntuk penyimpanan bucket staging.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role="roles/storage.objectAdmin"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.
Beri
roles/iam.serviceAccountUserpada akun layanan kustom kepada developer.gcloud iam service-accounts add-iam-policy-binding \ WORKLOAD_SA_EMAIL \ --member="user:DEVELOPER_EMAIL" \ --role="roles/iam.serviceAccountUser"Beri
roles/dataproc.workerke akun layanan kustom.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:WORKLOAD_SA_EMAIL" \ --role="roles/dataproc.worker"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.objectAdminpada 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.
Berikan
roles/dataproc.editorke akun layanan pengirim.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SUBMITTER_SA_EMAIL" \ --role="roles/dataproc.editor"Berikan
roles/iam.serviceAccountUserdi akun layanan beban kerja.gcloud iam service-accounts add-iam-policy-binding \ WORKLOAD_SA_EMAIL \ --member="serviceAccount:SUBMITTER_SA_EMAIL" \ --role="roles/iam.serviceAccountUser"Konfigurasi akun layanan workload. Berikan akses
roles/dataproc.workerdan set data keWORKLOAD_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
- Baca Mentransformasi data dan menulis ke tabel Apache Iceberg untuk tutorial menyeluruh menggunakan PySpark dan izin Spark serverless.
- Pahami Siklus proses workload batch serverless Managed Service untuk Apache Spark.
- Pelajari konfigurasi jaringan serverless Managed Service untuk Apache Spark.