Dengan Identity and Access Management (IAM), Anda dapat mengontrol akses ke resource project. Dokumen ini berfokus pada izin IAM yang relevan dengan deployment serverless Managed Service untuk Apache Spark dan peran IAM yang memberikan izin tersebut.
Izin serverless Managed Service untuk Apache Spark
Izin Managed Service untuk Apache Spark memungkinkan pengguna dan
akun layanan,
melakukan tindakan pada resource Managed Service untuk Apache Spark. Misalnya, izin dataproc.batches.create
memungkinkan Anda membuat beban kerja batch dalam project.
Anda tidak secara langsung memberikan izin kepada pengguna; tetapi, Anda memberikan peran IAM kepada pengguna, yang memiliki satu atau beberapa izin yang dipaketkan di dalamnya. Anda dapat memberikan peran standar yang berisi daftar izin, atau Anda dapat membuat dan memberikan peran khusus yang berisi satu atau beberapa izin yang Anda sertakan dalam peran khusus.
Tabel berikut mencantumkan izin dasar yang diperlukan untuk memanggil
API (metode) Dataproc yang membuat atau mengakses resource Managed Service for Apache Spark. Tabel disusun berdasarkan API yang terkait dengan setiap resource Managed Service for Apache Spark, yang mencakup batches, sessions, sessionTemplates, dan operations.
Contoh:
dataproc.batches.creatememungkinkan pembuatan batch dalam project yang berisi.dataproc.sessions.creatememungkinkan pembuatan sesi interaktif dalam project yang berisi.
Izin batch
| Metode | Izin yang Diperlukan |
|---|---|
| projects.locations.batches.create | dataproc.batches.create 1 |
| projects.locations.batches.delete | dataproc.batches.delete |
| projects.locations.batches.get | dataproc.batches.get |
| projects.locations.batches.list | dataproc.batches.list |
1 dataproc.batches.create juga memerlukan izin dataproc.batches.get dan
dataproc.operations.get untuk memungkinkannya mendapatkan pembaruan status
dari alat command line gcloud.
Izin sesi
| Metode | Izin yang Diperlukan |
|---|---|
| projects.locations.sessions.create | dataproc.sessions.create 1 |
| projects.locations.sessions.delete | dataproc.sessions.delete |
| projects.locations.sessions.get | dataproc.sessions.get |
| projects.locations.sessions.list | dataproc.sessions.list |
| projects.locations.sessions.terminate | dataproc.sessions.terminate |
1 dataproc.sessions.create juga memerlukan izin dataproc.sessions.get dan
dataproc.operations.get untuk memungkinkannya mendapatkan pembaruan status
dari alat command line gcloud.
Izin template sesi
| Metode | Izin yang Diperlukan |
|---|---|
| projects.locations.sessionTemplates.create | dataproc.sessionTemplates.create 1 |
| projects.locations.sessionTemplates.delete | dataproc.sessionTemplates.delete |
| projects.locations.sessionTemplates.get | dataproc.sessionTemplates.get |
| projects.locations.sessionTemplates.list | dataproc.sessionTemplates.list |
| projects.locations.sessionTemplates.update | dataproc.sessionTemplates.update |
1 dataproc.sessionTemplates.create juga memerlukan izin dataproc.sessionTemplates.get dan
dataproc.operations.get untuk memungkinkannya mendapatkan pembaruan status
dari alat command line gcloud.
Izin operasi
| Metode | Izin yang Diperlukan |
|---|---|
| projects.regions.operations.get | dataproc.operations.get |
| projects.regions.operations.list | dataproc.operations.list |
| projects.regions.operations.cancel 1 | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
1 Untuk membatalkan operasi batch, dataproc.operations.cancel juga memerlukan
izin dataproc.batches.cancel.
Izin runtime Managed Service untuk Apache Spark 3.0+
Izin berikut berlaku untuk Managed Service untuk Apache Spark 3.0 dan runtime yang lebih baru.
Izin workload
| Metode | Izin yang Diperlukan |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.create | dataprocrm.workloads.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.cancel | dataprocrm.workloads.cancel |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.delete | dataprocrm.workloads.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.get | dataprocrm.workloads.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.list | dataprocrm.workloads.list |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.use | dataprocrm.workloads.use |
Izin NodePools
| Metode | Izin yang Diperlukan |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.create | dataprocrm.nodePools.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.delete | dataprocrm.nodePools.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.resize | dataprocrm.nodePools.resize |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.deleteNodes | dataprocrm.nodePools.deleteNodes |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.update | dataprocrm.nodePools.update |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.get | dataprocrm.nodePools.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.list | dataprocrm.nodePools.list |
Izin node
| Metode | Izin yang Diperlukan |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.create | dataprocrm.nodes.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.delete | dataprocrm.nodes.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.update | dataprocrm.nodes.update |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.heartbeat | dataprocrm.nodes.heartbeat |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.get | dataprocrm.nodes.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.list | dataprocrm.nodes.list |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.mintOAuthToken | dataprocrm.nodes.mintOAuthToken |
Izin operasi
| Metode | Izin yang Diperlukan |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.operations.get | dataprocrm.operations.get |
| dataprocrm.v1.dataprocrm.projects.locations.operations.list | dataprocrm.operations.list |
Persyaratan peran Managed Service untuk Apache Spark
Tabel berikut mencantumkan peran yang berisi izin yang diperlukan untuk mengelola workload dan sesi batch. Persyaratan bergantung pada versi runtime batch atau sesi.
| Versi runtime | Peran IAM |
|---|---|
pre-3.0 |
Berikan peran berikut kepada pengguna:
|
3.0+ |
Berikan peran berikut kepada pengguna:
|
Catatan:
Jika fitur Kredensial Pengguna Akhir (EUC) Managed Service for Apache Spark diaktifkan, identitas (kredensial) pengguna akan digunakan untuk mengirimkan beban kerja batch, membuat sesi interaktif, dan menjalankan operasi bidang data seperti akses Cloud Storage dan BigQuery dari aplikasi Spark batch atau sesi.
Jika EUC diaktifkan di runtime
3.0+, yang merupakan default3.0+, operasi sistem dataplane akan dieksekusi oleh akun layanan Managed Service for Apache Spark Resource Manager Node Service Agent, dan pengguna akan otomatis diberi izinactAsdi akun layanan ini.Jika EUC diaktifkan di runtime pra-
3.0, (kredensial akun layanan adalah default pra-3.0), operasi sistem bidang data dijalankan oleh akun layanan default Compute Engine atau akun layanan kustom. Pengguna harus diberi izinactAsdi akun layanan ini.Untuk kompatibilitas mundur, peran Dataproc Editor dan Dataproc Viewer lama dapat diberikan dengan runtime
3.0+, bukan peran Dataproc Serverless Editor dan Dataproc Serverless Viewer. Selain itu, peran Dataproc Worker dapat diberikan, bukan peran Dataproc Serverless Node.Jika akun layanan telah diberi peran Editor project, akun tersebut berisi izin yang disertakan dalam peran Dataproc Worker.
Untuk mengetahui informasi selengkapnya tentang akun layanan Managed Service untuk Apache Spark, lihat Akun layanan Serverless for Apache Spark.
Apakah Anda perlu memberikan peran?
Bergantung pada kebijakan organisasi Anda, peran yang diperlukan mungkin sudah diberikan.
Memeriksa peran yang diberikan kepada pengguna
Untuk melihat apakah pengguna telah diberi peran, ikuti petunjuk di Mengelola akses ke project, folder, dan organisasi > Melihat akses saat ini.
Memeriksa peran yang diberikan ke akun layanan
Untuk melihat apakah akun layanan telah diberi peran, lihat Melihat dan mengelola peran akun layanan IAM.
Memeriksa peran yang diberikan pada akun layanan
Untuk melihat apakah pengguna telah diberi peran di akun layanan, ikuti petunjuk di Mengelola akses ke akun layanan > Melihat akses saat ini.
Mencari peran dan izin
Anda dapat menggunakan bagian berikut untuk mencari peran dan izin Managed Service untuk Apache Spark.
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Managed Service for Apache Spark, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Viewer( Provides read-only access to Managed Service for Apache Spark resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Hub Agent( Allows management of Dataproc resources. Intended for service accounts running Dataproc Hub instances. |
|
Dataproc Serverless Editor( Permissions needed to run serverless sessions and batches as a user |
|
Dataproc Serverless Node.( Node access to Dataproc Serverless sessions and batches. Intended for service accounts. |
|
Dataproc Serverless Viewer( Permissions needed to view serverless sessions and batches |
|
Dataproc Worker( Provides worker access to Managed Service for Apache Spark resources. Intended for service accounts. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Peran project
Anda juga dapat menetapkan izin di level project menggunakan peran IAM Project. Tabel berikut merangkum izin yang terkait dengan peran project IAM:
| Peran Project | Izin |
|---|---|
| Project Viewer | Semua izin project untuk tindakan hanya baca yang mempertahankan status (get, list) |
| Editor Project | Semua izin Project Viewer ditambah semua izin project untuk tindakan yang mengubah status (membuat, menghapus, memperbarui, menggunakan, membatalkan, menghentikan, memulai) |
| Pemilik Project | Semua izin Editor Project ditambah izin untuk mengelola kontrol akses project (get/set IamPolicy) dan untuk menyiapkan penagihan project |
Langkah berikutnya
- Pelajari cara Mengelola akses ke project, folder, dan organisasi.