Dataproc Service Account berbasis Secure Multi-tenancy (disebut "secure multi-tenancy", di bawah) memungkinkan Anda berbagi cluster dengan beberapa pengguna, dengan kumpulan 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.
Jika pengguna mengirimkan tugas ke cluster, tugas tersebut:
berjalan sebagai pengguna OS tertentu dengan entity 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 bagi 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 pada VM cluster, akan 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-tenancy yang aman Dataproc, gunakan tanda --secure-multi-tenancy-user-mapping
untuk menentukan daftar pemetaan antar-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 antar-akun layanan dalam file YAML atau JSON Cloud Storage atau lokal. 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 ditunjukkan dalam perintah di atas, cluster
--scopes
harus menyertakan setidaknyahttps://www.googleapis.com/auth/iam
, yang diperlukan akun layanan cluster untuk 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 grup akun layanan pengguna yang dipetakan, terbatas dan ditujukan.