Multi-tenancy aman berbasis akun layanan Dataproc (disebut "multi-tenancy aman", di bawah) memungkinkan Anda berbagi cluster dengan beberapa pengguna, dengan sekumpulan pengguna yang dipetakan ke akun layanan saat cluster dibuat. Dengan multi-tenancy yang aman, pengguna dapat mengirimkan workload interaktif ke cluster dengan identitas pengguna yang terisolasi.
Saat pengguna mengirimkan tugas ke cluster, tugas tersebut:
berjalan sebagai pengguna OS tertentu dengan akun utama Kerberos tertentu
mengakses Google Cloud resource menggunakan kredensial akun layanan yang dipetakan
Pertimbangan dan batasan
Saat Anda membuat cluster dengan multi-tenancy aman diaktifkan:
Anda hanya dapat mengirimkan tugas melalui Jobs API Dataproc.
Cluster hanya tersedia untuk pengguna dengan akun layanan yang dipetakan. Misalnya, pengguna yang tidak dipetakan tidak dapat menjalankan tugas di cluster.
Akun layanan hanya dapat dipetakan ke pengguna Google, bukan grup Google.
Gateway Komponen Dataproc tidak diaktifkan.
Akses SSH langsung ke cluster dan fitur Compute Engine, seperti kemampuan untuk menjalankan skrip startup di VM cluster, diblokir. Selain itu, tugas tidak dapat dijalankan dengan hak istimewa
sudo
.Kerberos diaktifkan dan dikonfigurasi di cluster untuk komunikasi intra-cluster yang aman. Autentikasi pengguna akhir melalui Kerberos tidak didukung.
Alur Kerja Dataproc tidak didukung.
Membuat cluster multi-tenancy yang aman
Untuk membuat cluster multi-tenant aman Dataproc, gunakan
flag --secure-multi-tenancy-user-mapping
untuk menentukan daftar pemetaan pengguna ke akun layanan.
Contoh:
Perintah berikut membuat cluster, dengan pengguna bob@my-company.com
dipetakan ke akun layanan service-account-for-bob@iam.gserviceaccount.com
dan pengguna alice@my-company.com
dipetakan ke akun layanan service-account-for-alice@iam.gserviceaccount.com
.
gcloud dataproc clusters create my-cluster \ --secure-multi-tenancy-user-mapping="bob@my-company.com:service-account-for-bob@iam.gserviceaccount.com,alice@my-company.com:service-account-for-alice@iam.gserviceaccount.com" \ --scopes=https://www.googleapis.com/auth/iam \ --service-account=cluster-service-account@iam.gserviceaccount.com \ --region=region \ other args ...
Atau, Anda dapat menyimpan daftar pemetaan pengguna ke akun layanan dalam file YAML atau JSON lokal atau Cloud Storage. Gunakan
flag --identity-config-file
untuk menentukan lokasi file.
Contoh file konfigurasi identitas:
user_service_account_mapping: bob@my-company.com: service-account-for-bob@iam.gserviceaccount.com alice@my-company.com: service-account-for-alice@iam.gserviceaccount.com
Contoh perintah untuk membuat cluster menggunakan flag --identity-config-file
:
gcloud dataproc clusters create my-cluster \ --identity-config-file=local or "gs://bucket" /path/to/identity-config-file \ --scopes=https://www.googleapis.com/auth/iam \ --service-account=cluster-service-account@iam.gserviceaccount.com \ --region=region \ other args ...
Catatan:
Seperti yang ditunjukkan dalam perintah sebelumnya, cluster
--scopes
harus menyertakan setidaknyahttps://www.googleapis.com/auth/iam
, yang diperlukan agar akun layanan cluster dapat melakukan peniruan identitas.Akun layanan cluster harus memiliki izin untuk meniru identitas akun layanan yang dipetakan ke pengguna (lihat Izin akun layanan).
Rekomendasi: Gunakan akun layanan cluster yang berbeda untuk cluster yang berbeda agar setiap akun layanan cluster dapat meniru identitas hanya sekelompok akun layanan pengguna yang dipetakan dan ditujukan.