Halaman ini menjelaskan akun layanan dan cakupan akses VM serta cara penggunaannya dengan Dataproc.
Apa yang dimaksud dengan akun layanan?
Akun layanan adalah akun khusus yang dapat digunakan oleh layanan dan aplikasi yang berjalan di instance virtual machine (VM) Compute Engine untuk berinteraksi dengan Google Cloud API lainnya. Aplikasi dapat menggunakan kredensial akun layanan untuk memberikan otorisasi kepada diri sendiri untuk serangkaian API dan melakukan tindakan di VM dalam izin yang diberikan ke akun layanan.
Akun layanan Dataproc
Akun layanan berikut diberi izin yang diperlukan untuk melakukan tindakan Dataproc di project tempat cluster Anda berada.
Akun layanan VM Dataproc: VM di cluster Dataproc menggunakan akun layanan ini untuk operasi bidang data Dataproc. Akun layanan default Compute Engine,
project_number-compute@developer.gserviceaccount.com
, digunakan sebagai akun layanan VM Dataproc, kecuali jika Anda menentukan akun layanan VM saat membuat cluster. Secara default, akun layanan default Compute Engine diberi peran Dataproc Worker, yang mencakup izin yang diperlukan untuk operasi platform data Dataproc.Akun layanan kustom: Jika Anda menentukan akun layanan kustom saat membuat cluster, Anda harus memberikan izin yang diperlukan untuk operasi bidang data Dataproc ke akun layanan kustom tersebut. Anda dapat melakukannya dengan menetapkan peran Dataproc Worker ke akun layanan karena peran ini mencakup izin yang diperlukan untuk operasi data plane Dataproc. Peran tambahan diperlukan untuk memberikan izin bagi operasi lain, seperti membaca dan menulis data ke BigQuery (lihat Melihat dan mengelola peran akun layanan IAM untuk mengetahui informasi selengkapnya).
Akun layanan Dataproc Service Agent: Dataproc membuat akun layanan Service Agent,
service-project_number@dataproc-accounts.iam.gserviceaccount.com
, dengan peran Dataproc Service Agent di project Google Cloud pengguna Dataproc. Akun layanan ini tidak dapat diganti dengan akun layanan VM kustom saat Anda membuat cluster. Akun agen layanan ini digunakan untuk melakukan operasi dataplane kontrol Dataproc, seperti pembuatan, pembaruan, dan penghapusan VM cluster.
Jaringan VPC Bersama: Jika cluster menggunakan jaringan VPC Bersama, Admin VPC Bersama harus memberikan akun layanan Agen Layanan Dataproc peran Pengguna Jaringan untuk project host VPC Bersama. Untuk informasi selengkapnya, lihat:
- Membuat cluster yang menggunakan jaringan VPC di project lain
- Dokumentasi VPC Bersama: mengonfigurasi akun layanan sebagai Admin Project Layanan
Melihat dan mengelola peran akun layanan IAM
Untuk melihat dan mengelola peran yang diberikan ke akun layanan VM Dataproc, lakukan hal berikut:
Di konsol Google Cloud, buka halaman IAM.
Klik Sertakan pemberian peran yang disediakan Google.
Lihat peran yang tercantum untuk akun layanan VM. Gambar berikut menunjukkan peran Dataproc Worker yang diperlukan yang tercantum untuk akun layanan default Compute Engine (
project_number-compute@developer.gserviceaccount.com
) yang digunakan Dataproc secara default sebagai akun layanan VM.Anda dapat mengklik ikon pensil yang ditampilkan di baris akun layanan untuk memberikan atau menghapus peran akun layanan.
Cakupan akses VM Dataproc
Cakupan Akses VM dan peran IAM bekerja sama untuk membatasi akses VM ke Google Cloud API. Misalnya, 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 yang luas.
Praktik terbaik
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.
Cakupan VM Dataproc default. Jika cakupan tidak ditentukan saat cluster dibuat (lihat gcloud dataproc cluster create --scopes), VM Dataproc memiliki kumpulan 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 kumpulan cakupan minimum yang diperlukan berikut (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
Membuat cluster dengan akun layanan VM kustom
Saat membuat cluster, Anda dapat menentukan akun layanan VM kustom yang akan digunakan cluster untuk operasi platform data Dataproc, bukan akun layanan VM default (Anda tidak dapat mengubah akun layanan VM setelah cluster dibuat). Dengan menggunakan akun layanan VM yang diberi peran IAM, Anda dapat memberikan akses terperinci ke resource project ke cluster.
Langkah-langkah awal
Buat akun layanan VM kustom dalam project tempat cluster akan dibuat.
Berikan peran Dataproc Worker kepada akun layanan VM kustom di project dan peran tambahan apa pun yang diperlukan oleh tugas Anda, seperti peran Pembaca dan Penulis BigQuery (lihat Izin Dataproc dan peran IAM).
Contoh gcloud CLI:
- Contoh perintah berikut memberikan peran Pekerja Dataproc ke akun layanan VM kustom di project cluster pada 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
Worker
Dataproc yang telah ditentukan sebelumnya kepada akun layanan, Anda dapat memberikan peran kustom yang berisi izin peran Pekerja, tetapi membatasi izinstorage.objects.*
.- Peran kustom setidaknya harus memberikan izin
storage.objects.create
,storage.objects.get
, danstorage.objects.update
akun layanan VM pada objek di bucket sementara dan staging Dataproc serta pada bucket tambahan yang diperlukan oleh tugas yang akan berjalan di cluster.
- Peran kustom setidaknya harus memberikan izin
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 Google Cloud dari project yang berisi akun layanan VM Anda. Ini akan menjadi ID project tempat cluster Anda akan dibuat atau ID project lain jika Anda membuat cluster dengan akun layanan VM kustom di cluster lain.
- SCOPE: Cakupan akses untuk instance VM cluster (misalnya,
https://www.googleapis.com/auth/cloud-platform
).
REST API
Saat menyelesaikan
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 Dataproc di konsol Google Cloud tidak didukung. Anda dapat menetapkan cakupan akses cloud-platform
di VM cluster saat membuat cluster dengan mengklik "Mengaktifkan cakupan platform cloud untuk cluster ini" di bagian Akses project pada panel Kelola keamanan di halaman Buat cluster Dataproc di konsol Google Cloud.
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 platform data Dataproc, bukan menggunakan akun layanan VM default (Anda tidak dapat menentukan akun layanan VM kustom setelah cluster dibuat). Dengan menggunakan akun layanan VM kustom yang diberi peran IAM, Anda dapat memberi cluster akses terperinci ke resource project.
Langkah-langkah awal
Di project akun layanan (project tempat akun layanan VM kustom berada):
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 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 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
.Berikan akun layanan VM kustom peran Dataproc Worker 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 kepada akun layanan Agen Layanan Dataproc di project cluster pada project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan VM kustom di project akun layanan. Dengan melakukan hal ini, Anda mengizinkan akun layanan agen layanan Dataproc di project cluster untuk membuat token untuk 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 memberikan peran di tingkat akun layanan.
Contoh gcloud CLI:
- Contoh perintah berikut memberikan peran Service Account User dan Service Account Token Creator kepada akun layanan Dataproc Service Agent di project cluster pada 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"
- Contoh perintah berikut memberikan peran Service Account User dan Service Account Token Creator kepada akun layanan Agen Layanan Dataproc di project cluster pada 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 peran Service Account Token Creator kepada akun layanan Agen Layanan Compute Engine di project cluster pada project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan VM kustom di project akun layanan. Dengan melakukan hal ini, Anda memberi akun layanan Compute Agent Service Agent di project cluster kemampuan untuk membuat token untuk 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 memberikan peran di tingkat akun layanan.
Contoh gcloud CLI:
- Contoh perintah berikut memberikan peran Service Account Token Creator kepada akun layanan Compute Engine Service Agent di project cluster pada 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"
- Contoh perintah berikut memberikan peran Service Account Token Creator kepada akun layanan Compute Engine Service Agent dalam 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 selanjutnya
- Akun layanan
- Izin Dataproc dan peran IAM
- Entity utama dan peran Dataproc
- Multi-tenancy yang Aman Berbasis Akun Layanan Dataproc
- Autentikasi Cluster Pribadi Dataproc
- IAM Granular Dataproc