Dokumen ini menjelaskan cara melihat dan mengelola peran akun layanan Identity and Access Management. Workload batch atau sesi interaktif Serverless untuk Apache Spark dijalankan sebagai akun layanan default Compute Engine, kecuali jika Anda menentukan akun layanan kustom saat Anda mengirimkan workload batch, membuat sesi, atau membuat template runtime sesi.
Peran Pekerja Dataproc yang diperlukan
Akun layanan workload Serverless untuk Apache Spark harus memiliki peran Identity and Access Management
Dataproc Worker. Akun layanan default Compute Engine
(project_number-compute@developer.gserviceaccount.com
)
yang digunakan Serverless for Apache Spark memiliki peran ini secara default. Jika Anda menentukan
akun layanan Anda sendiri untuk workload batch, sesi, atau template sesi,
Anda harus memberikan peran Worker Dataproc ke akun layanan Anda.
Peran tambahan mungkin diperlukan untuk
operasi lain, seperti membaca dan menulis data ke BigQuery.
Melihat dan mengelola peran akun layanan IAM
Untuk melihat dan mengelola peran yang diberikan ke akun layanan workload Serverless for Apache Spark, lakukan hal berikut:
Di konsol Google Cloud , buka halaman IAM.
Klik Sertakan pemberian peran yang disediakan Google.
Lihat peran yang tercantum untuk akun layanan workload. Gambar berikut menunjukkan peran Dataproc Worker yang diperlukan yang tercantum untuk akun layanan default Compute Engine (
project_number-compute@developer.gserviceaccount.com
) yang digunakan Serverless for Apache Spark secara default sebagai akun layanan beban kerja.Anda dapat mengklik ikon pensil yang ditampilkan di baris akun layanan untuk memberikan atau menghapus peran akun layanan.
Akun layanan lintas project
Anda dapat mengirimkan workload batch Serverless untuk Apache Spark yang menggunakan akun layanan dari project yang berbeda dengan project workload batch (project tempat batch dikirimkan). Di bagian ini, project tempat
akun layanan berada disebut service account project
, dan
project tempat batch dikirimkan disebut batch project
.
Mengapa menggunakan akun layanan lintas project untuk menjalankan beban kerja batch? Salah satu kemungkinan alasannya adalah jika akun layanan di project lain telah diberi peran IAM yang memberikan akses terperinci ke resource dalam project tersebut.
Langkah penyiapan
Di project akun layanan:
Mengaktifkan akun layanan untuk dilampirkan di seluruh project.
Enable the Dataproc API.
Berikan peran Service Account User kepada akun email Anda (pengguna yang membuat cluster) di project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan di project akun layanan.
Untuk mengetahui informasi selengkapnya, lihat Mengelola akses ke project, folder, dan organisasi untuk memberikan peran di tingkat project dan Mengelola akses ke akun layanan untuk memberikan peran di tingkat akun layanan.
Contoh gcloud CLI:
Contoh perintah berikut memberikan peran Service Account User kepada pengguna di tingkat project:
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=USER_EMAIL \ --role="roles/iam.serviceAccountUser"
Catatan:
USER_EMAIL
: Berikan alamat email akun pengguna Anda, dalam format:user:user-name@example.com
.
Contoh perintah berikut memberikan peran Service Account User kepada pengguna di tingkat akun layanan:
gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \ --member=USER_EMAIL \ --role="roles/iam.serviceAccountUser"
Catatan:
USER_EMAIL
: Berikan alamat email akun pengguna Anda, dalam format:user:user-name@example.com
.
Beri akun layanan peran Dataproc Worker di project batch.
Contoh gcloud CLI:
gcloud projects add-iam-policy-binding BATCH_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com \ --role="roles/dataproc.worker"
Dalam project batch:
Berikan peran Service Account User dan Service Account Token Creator kepada akun layanan agen layanan Dataproc di project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan di project akun layanan. Dengan melakukannya, Anda mengizinkan akun layanan agen layanan Dataproc di project batch untuk membuat token bagi akun layanan di project akun layanan.
Untuk mengetahui informasi selengkapnya, lihat Mengelola akses ke project, folder, dan organisasi untuk memberikan peran di tingkat project dan Mengelola akses ke akun layanan untuk memberikan peran di tingkat akun layanan.
Contoh gcloud CLI:
Perintah berikut memberikan peran Service Account User dan Service Account Token Creator kepada akun layanan agen layanan Dataproc di project batch pada tingkat project:
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountUser"
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
Contoh perintah berikut memberikan peran Service Account User dan Service Account Token Creator kepada akun layanan Dataproc Service Agent di project batch pada tingkat akun layanan:
gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountUser"
gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
Berikan peran akun layanan Agen Layanan Compute Engine di project batch Service Account Token Creator pada project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan di project akun layanan. Dengan melakukannya, Anda memberikan kemampuan kepada akun layanan Compute Agent Service Agent di project batch untuk membuat token bagi akun layanan di project akun layanan.
Untuk mengetahui informasi selengkapnya, lihat Mengelola akses ke project, folder, dan organisasi untuk memberikan peran di tingkat project dan Mengelola akses ke akun layanan untuk memberikan peran di tingkat akun layanan.
Contoh gcloud CLI:
Contoh perintah berikut memberikan peran Service Account Token Creator di tingkat project kepada akun layanan Agen Layanan Compute Engine di project batch:
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
Contoh perintah berikut memberikan peran Service Account Token Creator kepada akun layanan Compute Engine Service Agent di project cluster pada tingkat akun layanan:
gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
Kirimkan workload batch
Setelah menyelesaikan langkah-langkah penyiapan, Anda dapat mengirimkan workload batch. Pastikan untuk menentukan akun layanan di project akun layanan sebagai akun layanan yang akan digunakan untuk beban kerja batch.