Identity and Access Management (IAM) memungkinkan Anda mengontrol akses pengguna dan grup ke resource project. Dokumen ini berfokus pada izin IAM yang relevan dengan Managed Service for Apache Spark dan peran IAM yang memberikan izin tersebut.
Izin Managed Service untuk Apache Spark
Izin Managed Service for Apache Spark memungkinkan pengguna, termasuk
akun layanan,
melakukan tindakan pada cluster, tugas, operasi, dan template alur kerja Managed Service for Apache Spark. Misalnya, izin dataproc.clusters.create
memungkinkan pengguna membuat cluster Managed Service for Apache Spark dalam project.
Biasanya, Anda tidak memberikan izin, tetapi memberikan
peran, yang mencakup satu atau beberapa izin.
Tabel berikut mencantumkan izin yang diperlukan untuk memanggil API (metode) Managed Service for Apache Spark. Tabel disusun berdasarkan API yang terkait dengan setiap resource Managed Service for Apache Spark (cluster, tugas, operasi, dan template alur kerja).
Cakupan Izin: Cakupan izin Managed Service for Apache Spark yang tercantum dalam tabel berikut adalah project Google Cloudyang berisi (cakupan cloud-platform). Lihat
Izin akun layanan.
Contoh:
dataproc.clusters.createmengizinkan pembuatan cluster Managed Service for Apache Spark di project yang berisidataproc.jobs.createmengizinkan pengiriman tugas Managed Service for Apache Spark ke cluster Managed Service for Apache Spark dalam project yang berisidataproc.clusters.listmengizinkan pencantuman detail cluster Managed Service untuk Apache Spark dalam project yang berisi
Izin yang diperlukan untuk metode cluster
| Metode | Izin yang diperlukan |
|---|---|
| projects.regions.clusters.create 1, 2 | dataproc.clusters.create |
| projects.regions.clusters.get | dataproc.clusters.get |
| projects.regions.clusters.list | dataproc.clusters.list |
| projects.regions.clusters.patch 1, 2, 3 | dataproc.clusters.update |
| projects.regions.clusters.delete 1 | dataproc.clusters.delete |
| projects.regions.clusters.start | dataproc.clusters.start |
| projects.regions.clusters.stop | dataproc.clusters.stop |
| projects.regions.clusters.getIamPolicy | dataproc.clusters.getIamPolicy |
| projects.regions.clusters.setIamPolicy | dataproc.clusters.setIamPolicy |
Catatan:
- Izin
dataproc.operations.getjuga diperlukan untuk mendapatkan update status dari Google Cloud CLI. - Izin
dataproc.clusters.getjuga diperlukan untuk mendapatkan hasil operasi dari Google Cloud CLI. - izin
dataproc.autoscalingPolicies.usejuga diperlukan untuk mengaktifkan kebijakan penskalaan otomatis pada cluster.
Izin yang diperlukan untuk metode Jobs
| Metode | Izin yang diperlukan |
|---|---|
| projects.regions.jobs.submit 1, 2 | dataproc.jobs.create dataproc.clusters.use |
| projects.regions.jobs.get | dataproc.jobs.get |
| projects.regions.jobs.list | dataproc.jobs.list |
| projects.regions.jobs.cancel 1 | dataproc.jobs.cancel |
| projects.regions.jobs.patch 1 | dataproc.jobs.update |
| projects.regions.jobs.delete 1 | dataproc.jobs.delete |
| projects.regions.jobs.getIamPolicy | dataproc.jobs.getIamPolicy |
| projects.regions.jobs.setIamPolicy | dataproc.jobs.setIamPolicy |
Catatan:
Google Cloud CLI juga memerlukan izin
dataproc.jobs.getuntuk perintahjobs submit,jobs wait,jobs update,jobs delete, danjobs kill.gcloud CLI juga memerlukan izin
dataproc.clusters.getuntuk mengirimkan tugas. Untuk contoh penetapan izin yang diperlukan agar pengguna dapat menjalankangcloud dataproc jobs submitdi cluster menggunakan IAM Terperinci Managed Service for Apache Spark (lihat Mengirimkan Tugas dengan IAM Terperinci).
Izin yang diperlukan untuk metode operasi
| Metode | Izin yang diperlukan |
|---|---|
| projects.regions.operations.get | dataproc.operations.get |
| projects.regions.operations.list | dataproc.operations.list |
| projects.regions.operations.cancel | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
Izin yang diperlukan untuk metode template alur kerja
| Metode | Izin yang diperlukan |
|---|---|
| projects.regions.workflowTemplates.instantiate | dataproc.workflowTemplates.instantiate |
| projects.regions.workflowTemplates.instantiateInline | dataproc.workflowTemplates.instantiateInline |
| projects.regions.workflowTemplates.create | dataproc.workflowTemplates.create |
| projects.regions.workflowTemplates.get | dataproc.workflowTemplates.get |
| projects.regions.workflowTemplates.list | dataproc.workflowTemplates.list |
| projects.regions.workflowTemplates.update | dataproc.workflowTemplates.update |
| projects.regions.workflowTemplates.delete | dataproc.workflowTemplates.delete |
| projects.regions.workflowTemplates.getIamPolicy | dataproc.workflowTemplates.getIamPolicy |
| projects.regions.workflowTemplates.setIamPolicy | dataproc.workflowTemplates.setIamPolicy |
Catatan:
Izin Template Alur Kerja tidak bergantung pada izin Cluster dan Tugas. Pengguna tanpa izin
create clusteratausubmit jobdapat membuat dan meng-instance Template Alur Kerja.Google Cloud CLI juga memerlukan izin
dataproc.operations.getuntuk melakukan polling penyelesaian alur kerja.Izin
dataproc.operations.canceldiperlukan untuk membatalkan alur kerja yang sedang berjalan.
Izin yang diperlukan untuk metode kebijakan penskalaan otomatis
| Metode | Izin yang diperlukan |
|---|---|
| projects.regions.autoscalingPolicies.create | dataproc.autoscalingPolicies.create |
| projects.regions.autoscalingPolicies.get | dataproc.autoscalingPolicies.get |
| projects.regions.autoscalingPolicies.list | dataproc.autoscalingPolicies.list |
| projects.regions.autoscalingPolicies.update | dataproc.autoscalingPolicies.update |
| projects.regions.autoscalingPolicies.delete | dataproc.autoscalingPolicies.delete |
| projects.regions.autoscalingPolicies.getIamPolicy | dataproc.autoscalingPolicies.getIamPolicy |
| projects.regions.autoscalingPolicies.setIamPolicy | dataproc.autoscalingPolicies.setIamPolicy |
Catatan:
- Izin
dataproc.autoscalingPolicies.usediperlukan untuk mengaktifkan kebijakan penskalaan otomatis pada cluster dengan permintaan metodeclusters.patch.
Izin yang diperlukan untuk metode grup node
| Metode | Izin yang diperlukan |
|---|---|
| projects.regions.nodeGroups.create | dataproc.nodeGroups.create |
| projects.regions.nodeGroups.get | dataproc.nodeGroups.get |
| projects.regions.nodeGroups.resize | dataproc.nodeGroups.update |
Peran Managed Service for Apache Spark
Peran IAM Managed Service for Apache Spark
adalah paket berisi satu atau beberapa izin.
Anda memberikan peran kepada pengguna atau grup untuk mengizinkan mereka melakukan tindakan pada
resource Managed Service for Apache Spark dalam project. Misalnya, peran Managed Service for Apache Spark Viewer berisi izin get dan list, yang memungkinkan pengguna mendapatkan dan mencantumkan cluster, tugas, dan operasi Managed Service for Apache Spark dalam suatu project.
Tabel berikut mencantumkan peran yang berisi izin yang diperlukan untuk membuat dan mengelola cluster Managed Service for Apache Spark.
| Memberi peran kepada | Peran |
|---|---|
| Pengguna | Berikan peran berikut kepada pengguna:
|
| Akun layanan | Berikan peran Dataproc Worker kepada akun layanan VM Managed Service for Apache Spark. |
Perhatikan hal berikut:
Anda mungkin perlu memberikan peran tambahan yang telah ditentukan atau peran kustom kepada akun layanan VM Managed Service for Apache Spark yang berisi izin yang diperlukan untuk operasi lain, seperti membaca dan menulis data dari dan ke Cloud Storage, BigQuery, Cloud Logging, dan resource Google Cloud lainnya.
Di beberapa project, akun layanan VM Managed Service for Apache Spark mungkin telah otomatis diberi peran Editor project, yang mencakup izin peran Managed Service for Apache Spark Worker serta izin tambahan yang tidak diperlukan untuk operasi bidang data Managed Service for Apache Spark. Untuk mengikuti prinsip praktik terbaik keamanan hak istimewa terendah, ganti peran Editor dengan peran Managed Service for Apache Spark Worker (lihat Melihat peran akun layanan VM).
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 Managed Service for Apache Spark
Anda dapat menggunakan bagian berikut untuk mencari peran dan izin Managed Service for Apache Spark.
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Dataproc, including machine types, networks, projects, and zones. 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 Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Dataproc Viewer( Provides read-only access to Dataproc resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Worker( Provides worker access to Dataproc resources. Intended for service accounts. |
|
Catatan:
- Izin
computediperlukan atau direkomendasikan untuk membuat dan melihat cluster Managed Service for Apache Spark saat menggunakan konsol Google Cloud atau gcloud CLI Google Cloud CLI. - Untuk mengizinkan pengguna mengupload file, berikan peran
Storage Object Creator. Untuk mengizinkan pengguna melihat output tugas, berikan peranStorage Object Viewer. - Pengguna harus memiliki izin
monitoring.timeSeries.listuntuk melihat grafik di tab Ringkasan→Detail cluster→Konsol Google Cloud →Managed Service for Apache Spark. - Pengguna harus memiliki izin
compute.instances.listuntuk melihat status instance dan menu SSH instance master di tab Instance VMGoogle Cloud console→Managed Service for Apache Spark→Cluster details. Untuk mengetahui informasi tentang peran Compute Engine, lihat Compute Engine→Peran IAM yang tersedia). - Untuk membuat cluster dengan akun layanan yang ditentukan pengguna, akun layanan yang ditentukan harus memiliki semua izin yang diberikan oleh peran
Managed Service for Apache Spark Worker, yang mencakup akses ke bucket sementara dan penyiapan Managed Service for Apache Spark. Peran tambahan mungkin diperlukan, bergantung pada fitur yang dikonfigurasi. Lihat Membuat cluster dengan akun layanan VM kustom untuk informasi selengkapnya.
Peran project
Anda juga dapat menetapkan izin di level project menggunakan peran IAM Project. Tabel berikut mencantumkan 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 |
Ringkasan operasi Managed Service for Apache Spark dan peran IAM
Tabel berikut mencantumkan operasi Managed Service for Apache Spark yang terkait dengan peran project dan Managed Service for Apache Spark.
| Operasi | Editor Project | Project Viewer | Admin Managed Service for Apache Spark | Editor Managed Service for Apache Spark | Managed Service for Apache Spark Viewer |
|---|---|---|---|---|---|
| Mendapatkan/Menetapkan izin IAM Managed Service for Apache Spark | Tidak | Tidak | Ya | Tidak | Tidak |
| Buat cluster | Ya | Tidak | Ya | Ya | Tidak |
| Mencantumkan cluster | Ya | Ya | Ya | Ya | Ya |
| Mendapatkan detail cluster | Ya | Ya | Ya 1, 2 | Ya 1, 2 | Ya 1, 2 |
| Memperbarui cluster | Ya | Tidak | Ya | Ya | Tidak |
| Hapus cluster | Ya | Tidak | Ya | Ya | Tidak |
| Mulai/Hentikan cluster | Ya | Tidak | Ya | Ya | Tidak |
| Kirim tugas | Ya | Tidak | Ya 3 | Ya 3 | Tidak |
| Membuat daftar tugas | Ya | Ya | Ya | Ya | Ya |
| Mendapatkan detail tugas | Ya | Ya | Ya 4 | Ya 4 | Ya 4 |
| Batalkan tugas | Ya | Tidak | Ya | Ya | Tidak |
| Hapus tugas | Ya | Tidak | Ya | Ya | Tidak |
| Mencantumkan operasi | Ya | Ya | Ya | Ya | Ya |
| Mendapatkan detail operasi | Ya | Ya | Ya | Ya | Ya |
| Menghapus operasi | Ya | Tidak | Ya | Ya | Tidak |
Catatan:
- Grafik performa tidak tersedia kecuali jika pengguna juga memiliki
peran dengan izin
monitoring.timeSeries.list. - Daftar VM di cluster tidak akan menyertakan informasi status atau link SSH untuk instance master kecuali jika pengguna juga memiliki peran dengan izin
compute.instances.list. - Tugas yang mengupload file mengharuskan pengguna memiliki peran
Storage Object Creatoratau akses tulis ke bucket penyiapan Managed Service for Apache Spark. - Output tugas tidak tersedia kecuali jika pengguna juga memiliki peran Storage Object Viewer atau telah diberi akses baca ke bucket penyiapan untuk project.
Cakupan akses VM Managed Service untuk Apache Spark
Cakupan Akses VM dan peran IAM bekerja sama untuk membatasi akses VM ke API. Google CloudMisalnya, jika VM cluster hanya diberi cakupan https://www.googleapis.com/auth/storage-full, aplikasi yang berjalan di VM cluster dapat memanggil Cloud Storage API, tetapi tidak dapat membuat permintaan ke BigQuery, meskipun aplikasi tersebut berjalan sebagai akun layanan VM yang telah diberi peran BigQuery dengan izin luas.
Praktik terbaiknya adalah memberikan cakupan cloud-platform yang luas
(https://www.googleapis.com/auth/cloud-platform)
ke VM, lalu membatasi akses VM dengan memberikan
peran IAM tertentu ke akun layanan VM (lihat Praktik terbaik cakupan).
Cakupan VM Managed Service for Apache Spark default. Jika cakupan tidak ditentukan saat cluster dibuat (lihat gcloud dataproc cluster create --scopes), VM Managed Service for Apache Spark memiliki set cakupan default berikut:
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/bigtable.admin.table
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
Jika Anda menentukan cakupan saat membuat cluster, VM cluster akan memiliki cakupan yang Anda tentukan dan set cakupan minimum berikut yang diperlukan (meskipun Anda tidak menentukannya):
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
Pengelolaan kebijakan izin IAM
Anda memberikan peran IAM kepada principal menggunakan kebijakan izinkan. Anda dapat memperoleh dan menetapkan kebijakan yang diizinkan menggunakan konsol Google Cloud , IAM API, atau Google Cloud CLI.
- Untuk konsol Google Cloud , lihat Kontrol akses menggunakan konsol Google Cloud .
- Untuk API, lihat Kontrol akses menggunakan API.
- Untuk Google Cloud CLI, lihat Kontrol akses menggunakan Google Cloud CLI.
Langkah berikutnya
- Mempelajari prinsipal dan peran Managed Service for Apache Spark
- Mempelajari IAM Terperinci Managed Service for Apache Spark
- Pelajari lebih lanjut tentang IAM.
- Mempelajari Akun layanan di Managed Service for Apache Spark