Halaman ini menjelaskan akun layanan dan cakupan akses VM serta cara penggunaannya dengan Managed Service untuk Apache Spark.
Persyaratan keamanan mulai 3 Agustus 2020: Pengguna Managed Service untuk Apache Spark harus memiliki izin ActAsakun layanan untuk men-deploy resource Managed Service untuk Apache Spark, seperti membuat cluster dan mengirimkan tugas. Peran
Service Account User berisi izin ini. Lihat Peran untuk autentikasi akun layanan
untuk mengetahui informasi tentang peran Managed Service untuk Apache Spark yang diperlukan.
Persetujuan untuk pengguna Managed Service untuk Apache Spark yang ada: Pengguna Managed Service untuk Apache Spark yang ada pada 3 Agustus 2020 dapat menyetujui persyaratan keamanan ini (lihat Mengamankan Managed Service untuk Apache Spark, Dataflow, dan Cloud Data Fusion).
Apa yang dimaksud dengan akun layanan?
Akun layanan adalah akun khusus yang dapat digunakan oleh layanan dan aplikasi yang berjalan pada Compute Engine instance virtual machine (VM) untuk berinteraksi dengan API Google Cloud lainnya. Aplikasi dapat menggunakan kredensial akun layanan untuk mengotorisasi dirinya ke sekumpulan API dan melakukan tindakan pada VM dalam izin yang diberikan ke akun layanan.
Akun layanan cluster Managed Service untuk Apache Spark
Akun layanan berikut harus memiliki izin yang diperlukan untuk melakukan tindakan Managed Service untuk Apache Spark di project tempat cluster Anda berada.
Akun layanan VM Managed Service untuk Apache Spark
VM di cluster Managed Service untuk Apache Spark menggunakan akun layanan untuk
Managed Service untuk Apache Spark operasi bidang data.
Akun layanan Compute Engine default,
project_number-compute@developer.gserviceaccount.com, digunakan sebagai akun layanan VM kecuali jika Anda menentukan
akun layanan kustom
saat membuat cluster. Akun layanan VM harus memiliki peran
Managed Service untuk Apache Spark Worker, yang mencakup izin yang diperlukan untuk operasi bidang data Managed Service untuk Apache Spark. Untuk mengetahui informasi selengkapnya, lihat
Peran Managed Service untuk Apache Spark.
Melihat peran akun layanan VM
Untuk melihat peran yang diberikan ke akun layanan VM Managed Service untuk Apache Spark, lakukan hal berikut:
Di Google Cloud konsol, buka halaman IAM.
Klik Include Google-provided role grants.
Lihat peran yang tercantum untuk akun layanan VM. Gambar berikut menunjukkan peran Dataproc Worker yang diperlukan dan tercantum untuk akun layanan Compute Engine default (
project_number-compute@developer.gserviceaccount.com) yang digunakan Managed Service untuk Apache Spark secara default sebagai akun layanan VM.
Anda dapat mengklik ikon pensil yang ditampilkan di baris akun layanan untuk memberikan atau menghapus peran akun layanan.
Akun layanan Agen Layanan Managed Service untuk Apache Spark
Managed Service untuk Apache Spark membuat
akun layanan Agen Layanan,
service-project_number@dataproc-accounts.iam.gserviceaccount.com, dan memberikan akun layanan
peran
Agen Layanan Managed Service untuk Apache Spark
di Google Cloud project. Akun layanan ini melakukan operasi bidang kontrol Managed Service untuk Apache Spark, seperti pembuatan, pembaruan, dan penghapusan VM cluster. Anda tidak dapat mengganti akun layanan ini dengan akun layanan VM kustom saat membuat cluster.
Pemberian peran ke akun layanan Agen Layanan di jaringan VPC Bersama
Jika cluster Managed Service untuk Apache Spark menggunakan jaringan VPC Bersama, Admin VPC Bersama harus memberikan peran Pengguna Jaringan untuk project host VPC Bersama ke akun layanan Agen Layanan Managed Service untuk Apache Spark. Untuk mengetahui informasi selengkapnya, lihat referensi berikut:
- Membuat cluster yang menggunakan jaringan VPC di project lain
- Dokumentasi VPC Bersama: mengonfigurasi akun layanan sebagai Admin Project Layanan
Membuat cluster dengan akun layanan VM kustom
Saat membuat cluster, Anda dapat menentukan akun layanan VM kustom yang akan digunakan cluster untuk operasi bidang data Managed Service untuk Apache Spark, bukan akun layanan VM default (Anda tidak dapat mengubah akun layanan VM setelah cluster dibuat). Menggunakan akun layanan VM dengan peran IAM yang ditetapkan memungkinkan Anda memberikan akses terperinci ke resource project untuk cluster.
Langkah-langkah awal
Buat akun layanan VM kustom dalam project tempat cluster akan dibuat.
Berikan peran Managed Service untuk Apache Spark Worker ke akun layanan VM kustom di project dan peran tambahan apa pun yang diperlukan oleh tugas Anda, seperti peran BigQuery Reader dan Writer (lihat Peran Managed Service untuk Apache Spark).
Contoh gcloud CLI:
- Perintah contoh berikut memberikan peran Dataproc Worker ke akun layanan VM kustom di project cluster di tingkat project:
gcloud projects add-iam-policy-binding CLUSTER_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role="roles/dataproc.worker"
- Pertimbangkan peran kustom: Daripada memberikan peran Dataproc Worker bawaan (
roles/dataproc.worker) ke akun layanan, Anda dapat memberikan peran kustom yang berisi izin peran Worker, tetapi membatasi izinstorage.objects.*.- Peran kustom setidaknya harus memberikan izin akun layanan VM
storage.objects.create,storage.objects.get, danstorage.objects.updatepada objek di bucket staging dan sementara Managed Service untuk Apache Spark serta pada bucket tambahan apa pun yang diperlukan oleh tugas yang akan berjalan di cluster.
- Peran kustom setidaknya harus memberikan izin akun layanan VM
Membuat cluster
- Buat cluster di project Anda.
Perintah gcloud
Gunakan perintah gcloud dataproc clusters create untuk membuat cluster dengan akun layanan VM kustom.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --scopes=SCOPE
Ganti kode berikut:
- CLUSTER_NAME: Nama cluster, yang harus unik dalam project. Nama harus diawali dengan huruf kecil, dan dapat berisi hingga 51 huruf kecil angka, dan tanda hubung. Nama tidak boleh diakhiri dengan tanda hubung. Nama cluster yang dihapus dapat digunakan kembali.
- REGION: Region tempat cluster akan berada.
- SERVICE_ACCOUNT_NAME: Nama akun layanan.
- PROJECT_ID: Project ID dari project yang berisi akun layanan VM Anda . Google Cloud Ini akan menjadi ID dari project tempat cluster Anda akan dibuat atau ID project lain jika Anda membuat cluster dengan akun layanan VM kustom di project lain.
- SCOPE: Cakupan akses untuk instance VM cluster (misalnya,
https://www.googleapis.com/auth/cloud-platform).
REST API
Saat melengkapi
GceClusterConfig
sebagai bagian dari
clusters.create
permintaan API, tetapkan kolom berikut:
serviceAccount: Akun layanan akan berada di project tempat cluster Anda akan dibuat, kecuali jika Anda menggunakan akun layanan VM dari project lain.serviceAccountScopes: Tentukan cakupan akses untuk instance VM cluster (misalnya,https://www.googleapis.com/auth/cloud-platform).
Konsol
Menetapkan akun layanan VM Managed Service untuk Apache Spark
di Google Cloud konsol tidak didukung. Anda dapat menetapkan cloud-platform
cakupan akses pada VM cluster
saat membuat cluster dengan mengklik
"Enables the cloud-platform scope for this cluster"
di bagian Project access pada panel Manage security
di halaman Create a cluster
Managed Service untuk Apache Spark di Google Cloud konsol.
Membuat cluster dengan akun layanan VM kustom dari project lain
Saat membuat cluster, Anda dapat menentukan akun layanan VM kustom yang akan digunakan cluster untuk operasi bidang data Managed Service untuk Apache Spark, bukan menggunakan akun layanan VM default (Anda tidak dapat menentukan akun layanan VM kustom setelah cluster dibuat). Menggunakan akun layanan VM kustom dengan peran IAM yang ditetapkan memungkinkan Anda memberikan akses terperinci ke resource project untuk cluster.
Langkah-langkah awal
Di project akun layanan (project tempat akun layanan VM kustom berada):
Mengaktifkan Dataproc API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.
Berikan peran Service Account User ke akun email Anda (pengguna yang membuat cluster) di project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan VM kustom 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 contoh berikut memberikan peran Service Account User ke 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.- Perintah contoh berikut memberikan peran Service Account User ke 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.Berikan peran Managed Service untuk Apache Spark Worker ke akun layanan VM kustom di project cluster.
Contoh gcloud CLI:
gcloud projects add-iam-policy-binding CLUSTER_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com \ --role="roles/dataproc.worker"
Berikan peran Service Account User dan Service Account Token Creator ke akun layanan Agen Layanan Managed Service untuk Apache Spark di project cluster di project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan VM kustom di project akun layanan. Dengan melakukannya, Anda mengizinkan akun layanan agen layanan Dataproc di project cluster untuk membuat token bagi akun layanan VM Dataproc kustom 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 contoh berikut memberikan peran Service Account User dan Service Account Token Creator ke akun layanan Agen Layanan Managed Service untuk Apache Spark di project cluster di tingkat project:
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountUser"
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
- Perintah contoh berikut memberikan peran Service Account User dan Service Account Token Creator ke akun layanan Agen Layanan Managed Service untuk Apache Spark di project cluster di tingkat akun layanan VM:
gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \ --member=serviceAccount:service-CLUSTER_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-CLUSTER_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
Berikan akun layanan Agen Layanan Compute Engine di project cluster peran Service Account Token Creator di project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan VM kustom di project akun layanan. Dengan melakukannya, Anda memberikan kemampuan kepada akun layanan Agen Layanan Compute Engine di project cluster untuk membuat token bagi akun layanan VM Dataproc kustom 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 contoh berikut memberikan peran Service Account Token Creator ke akun layanan Agen Layanan Compute Engine di project cluster di tingkat project:
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
- Perintah contoh berikut memberikan peran Service Account Token Creator ke akun layanan Agen Layanan Compute Engine di project cluster di tingkat akun layanan VM:
gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \ --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
Membuat cluster
Langkah berikutnya
- Akun layanan
- Peran IAM dan izin Managed Service untuk Apache Spark
- Akun utama dan peran Managed Service untuk Apache Spark
- Multi-tenancy Aman Berbasis Akun Layanan Managed Service untuk Apache Spark
- Autentikasi Cluster Pribadi Managed Service untuk Apache Spark
- IAM Terperinci Managed Service untuk Apache Spark