Dokumen ini menjelaskan cara menggunakan Secret Manager sebagai penyimpanan kredensial dengan Google Cloud Serverless untuk Apache Spark guna menyimpan dan mengakses data sensitif yang diproses oleh workload serverless dengan aman.
Ringkasan
Secret Manager dapat melindungi data sensitif Anda, seperti kunci API, sandi, dan sertifikat. Anda dapat menggunakannya untuk mengelola, mengakses, dan mengaudit secret di seluruhGoogle Cloud.
Saat menjalankan workload batch Serverless untuk Apache Spark, Anda dapat mengonfigurasinya untuk menggunakan secret Secret Manager dengan menggunakan Penyedia Kredensial Secret Manager Dataproc.
Ketersediaan
Fitur ini tersedia untuk versi runtime Serverless for Apache Spark 1.2.29+, 2.2.29+, atau versi runtime utama yang lebih baru.
Terminologi
Tabel berikut menjelaskan istilah yang digunakan dalam dokumen ini.
Istilah | Deskripsi |
---|---|
Secret |
Secret Secret Manager adalah objek project global yang berisi kumpulan metadata dan versi secret. Anda dapat menyimpan, mengelola, dan mengakses secret sebagai blob biner atau string teks. |
Credential |
Di Hadoop dan workload Dataproc lainnya, kredensial terdiri dari nama kredensial (ID) dan nilai kredensial (sandi). ID dan nilai kredensial dipetakan ke ID rahasia dan nilai rahasia (versi rahasia) Secret Manager. |
Izin
Dataproc memeriksa apakah secret opsional berikut ada:
- fs-gs-encryption-key
- fs-gs-encryption-key-hash
- fs-gs-proxy-password
- fs-gs-proxy-username
Untuk memastikan bahwa Akun Layanan VM Dataproc
memiliki izin untuk memeriksa secret fs-gs
, tambahkan
peran Secret Manager Secret Accessor
dengan kondisi berikut ke akun layanan, sebagai berikut:
{ "expression": "resource.name.startsWith(\"projects/PROJECT_NUMBER/secrets/fs-gs-\")", "title": "gsmkeycondition", "description": "Permission to access Dataproc secrets" }
Penggunaan
Anda dapat mengonfigurasi komponen Hadoop dan OSS lainnya yang didukung agar berfungsi dengan Secret Manager dengan menetapkan properti berikut saat Anda mengirimkan workload Serverless for Apache Spark:
Jalur penyedia (wajib): Properti jalur penyedia,
spark.hadoop.hadoop.security.credential.provider.path
, adalah daftar yang dipisahkan koma dari satu atau beberapa URI penyedia kredensial yang dilalui untuk menyelesaikan kredensial.--properties=spark.hadoop.hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
scheme
di jalur penyedia menunjukkan jenis penyedia kredensial. Skema Hadoop mencakupjceks://
,user://
,localjceks://
. Gunakan skemagsm://
untuk menelusuri kredensial di Secret Manager.
Operator titik pengganti : Layanan Secret Manager tidak mengizinkan titik (
.
) dalam nama secret. Namun, beberapa komponen software open source (OSS) menggunakan titik dalam kunci kredensialnya. Untuk mengatasi batasan ini, aktifkan properti ini untuk mengganti titik (.
) dengan tanda hubung (-
) dalam nama kredensial. Hal ini memastikan bahwa kredensial OSS dengan titik dalam namanya dapat disimpan dan diambil dengan benar dari Secret Manager.Misalnya, Jika kunci kredensial OSS adalah
a.b.c
, Anda harus mengubahnya menjadia-b-c
saat menyimpannya di Secret Manager.--properties=spark.hadoop.hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
Ini adalah properti opsional. Secara default, nilainya adalah
false
. Untuk kunci kredensial yang tidak memiliki operator titik (.
) dalam nama kredensialnya, properti ini dapat diabaikan dengan aman.Versi rahasia : Secret di Secret Manager dapat memiliki beberapa versi (nilai). Gunakan properti ini untuk mengakses versi secret tertentu untuk akses stabil di lingkungan produksi.
--properties=spark.hadoop.hadoop.security.credstore.google-secret-manager.secret-version=1
Ini adalah properti opsional. Secara default, Secret Manager mengakses versi
LATEST
, yang di-resolve ke nilai terbaru secret saat runtime. Jika kasus penggunaan Anda adalah selalu mengakses versiLATEST
rahasia, properti ini dapat diabaikan dengan aman.
Menjalankan workload batch dengan Penyedia Kredensial Secret Manager
Untuk mengirimkan beban kerja batch yang menggunakan Penyedia Kredensial Secret Manager, jalankan perintah berikut secara lokal atau di Cloud Shell.
gcloud dataproc batches submit spark \ --region=REGION \ --jars=JARS \ --class=MAIN_CLASS \ --properties="spark.hadoop.hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,spark.hadoop.hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed...
Ganti kode berikut:
- REGION: region Compute Engine tempat beban kerja Anda berjalan
- JARS: jalur jar workload
- MAIN_CLASS: class utama Jar
- PROJECT_ID: project ID Anda, yang tercantum di bagian Project info pada dasbor konsolGoogle Cloud