Multi-tenancy yang aman berbasis Akun Layanan Dataproc (disebut "multi-tenancy yang 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 resource Google Cloud menggunakan kredensial akun layanan yang dipetakan
Pertimbangan dan Batasan
Saat Anda membuat cluster dengan multi-tenancy aman yang 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 berjalan 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-tenancy 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 di atas, 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 hanya dapat meniru identitas grup akun layanan pengguna yang dipetakan dan terbatas.