Secret Manager dapat melindungi data sensitif Anda, seperti kunci API, sandi, dan sertifikat. Anda dapat menggunakannya untuk mengelola, mengakses, dan mengaudit secret di seluruh Google Cloud.
Anda dapat mengonfigurasi cluster atau tugas Managed Service untuk Apache Spark agar menggunakan secret Secret Manager menggunakan penyedia kredensial Secret Manager.
Ketersediaan
Fitur ini tersedia untuk digunakan dengan cluster Managed Service untuk Apache Spark yang dibuat dengan versi image 2.0.97+, 2.1.41+, 2.2.6+, atau versi image Managed Service untuk Apache Spark utama yang lebih baru .
. Untuk informasi Managed Service untuk Apache Spark, lihat Penyedia kredensial Secret Manager untuk Managed Service untuk Apache Spark.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 aplikasi lain yang dihosting Managed Service untuk Apache Spark, kredensial terdiri dari nama kredensial (ID) dan nilai kredensial (sandi). ID dan nilai kredensial dipetakan ke Secret Manager ID secret dan nilai secret (versi secret). |
Penggunaan
Anda dapat mengonfigurasi Hadoop dan komponen OSS lainnya untuk bekerja dengan Secret Manager dengan menetapkan properti berikut saat Anda membuat cluster Managed Service untuk Apache Spark atau mengirimkan tugas.
Provider path : Properti jalur penyedia,
hadoop.security.credential.provider.path, adalah daftar yang dipisahkan koma dari satu atau beberapa URI penyedia kredensial yang dilalui untuk me-resolve kredensial.--properties=hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
schemedi jalur penyedia menunjukkan jenis penyedia kredensial. Skema Hadoop mencakupjceks://,user://,localjceks://. Gunakan skemagsm://untuk menelusuri kredensial di Secret Manager.
Substitute dot operator : Layanan Secret Manager tidak mengizinkan titik (
.) dalam nama secret. Namun, beberapa komponen software open source (OSS) menggunakan titik dalam kunci kredensialnya. Untuk memperbaiki 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-csaat menyimpannya di Secret Manager.--properties=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.Secret version : Secret di Secret Manager dapat memiliki beberapa versi (nilai). Gunakan properti ini untuk mengakses versi secret tertentu untuk akses stabil di lingkungan produksi.
--properties=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 secret terbaru saat runtime. Jika kasus penggunaan Anda adalah selalu mengakses versiLATESTsecret, properti ini dapat diabaikan dengan aman.
Membuat cluster Managed Service untuk Apache Spark dengan penyedia kredensial Secret Manager
- Jalankan perintah berikut secara lokal atau di Cloud Shell untuk
membuat cluster Managed Service untuk Apache Spark
dengan properti yang diperlukan.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --properties="hadoop:hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,hadoop:hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed...
Catatan:
- CLUSTER_NAME: Nama cluster baru.
- REGION: Region Compute Engine tempat beban kerja Anda akan berjalan.
- PROJECT_ID: Project ID Anda tercantum di bagian Project info dasbor Google Cloud konsol.
Mengirimkan Managed Service untuk Apache Spark dengan penyedia kredensial Secret Manager
Jalankan perintah berikut secara lokal atau di Cloud Shell untuk mengirimkan tugas Managed Service untuk Apache Spark dengan properti yang diperlukan.
gcloud dataproc jobs submit CLUSTER_NAME \ --region=REGION \ --properties="hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed... \ -- job-args
Catatan:
- CLUSTER_NAME: nama cluster yang akan menjalankan tugas.
- REGION: region Compute Engine tempat beban kerja Anda akan berjalan.
- PROJECT_ID: Project ID Anda tercantum di bagian Project info dari Google Cloud dasbor konsol.
Menggunakan Secret Manager dengan Hive Metastore
Properti Hive Metastore, javax.jdo.option.ConnectionPassword, berisi sandi yang digunakan untuk mengautentikasi akses ke database metastore. Sandi disimpan dalam format teks di hive-site.xml, yang menunjukkan risiko keamanan. Praktik terbaik produksi adalah menyimpan sandi di Secret Manager, lalu memperbarui file konfigurasi hive-site.xml untuk memungkinkan layanan metastore Hive membaca sandi dari Secret Manager.
Contoh berikut menunjukkan cara menggunakan Secret Manager dalam berbagai skenario Hive Metastore.
Membuat cluster dengan metastore lokal
- Jalankan perintah berikut secara lokal atau di Cloud Shell untuk
membuat cluster Managed Service untuk Apache Spark.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ ...other flags as needed... \
Catatan:
- CLUSTER_NAME: Nama cluster baru.
- REGION: Region Compute Engine tempat beban kerja Anda akan berjalan.
Buat secret menggunakan Secret Manager atau perintah
hadoop credential.Alternatif 1: Gunakan Secret Manager untuk membuat secret.
- Nama secret:
/projects/PROJECT_ID/secrets/javax-jdo-option-ConnectionPassword/versions/1 - Nilai secret:
METASTORE_PASSWORD.
- Nama secret:
Alternatif 2: Gunakan perintah
hadoop credentialuntuk membuat secret.sudo hadoop credential create javax-jdo-option-ConnectionPassword -provider gsm://projects/PROJECT_ID -v METASTORE_PASSWORD
- METASTORE_PASSWORD: Karena Secret Manager tidak
mendukung operator titik(
.), ganti titik(.) apa pun dalam sandi dengan tanda hubung(-).
- METASTORE_PASSWORD: Karena Secret Manager tidak
mendukung operator titik(
Pastikan secret ada.
sudo hadoop credential list -provider gsm://projects/PROJECT_ID
Gunakan editor teks untuk menghapus properti
javax.jdo.option.ConnectionPassworddari filehive-site.xml, lalu tambahkan propertihadoop.security.credential.provider.path&hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operatorke file.Contoh properti:
hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
Mulai ulang Hive Metastore.
sudo systemctl restart hive-metastore
Membuat cluster dengan Hive Metastore eksternal
Jalankan perintah berikut secara lokal atau di Cloud Shell untuk membuat cluster Managed Service untuk Apache Spark dengan properti cluster berikut. Gunakan cluster ini sebagai metastore Hive eksternal untuk tugas Hive yang berjalan dari cluster Managed Service untuk Apache Spark lainnya untuk beban kerja Spark Hive.
gcloud dataproc clusters create METASTORE_CLUSTER_NAME \ --region=REGION \ --properties=core:fs.defaultFS=gs://METASTORE_CLUSTER_PROXY_BUCKET,dataproc:dataproc.components.deactivate="hdfs hive-server2 hive-metastore" \ ...other flags as needed...
Buat secret menggunakan Secret Manager atau perintah
hadoop credential.- Alternatif 1: Gunakan Secret Manager untuk membuat secret.
- Nama secret:
/projects/PROJECT_ID/secrets/javax-jdo-option-ConnectionPassword/versions/1 - Nilai secret:
METASTORE_PASSWORD.
- Nama secret:
- Alternatif 2: Gunakan perintah
hadoop credentialuntuk membuat secret.sudo hadoop credential create javax-jdo-option-ConnectionPassword -provider gsm://projects/PROJECT_ID -v METASTORE_PASSWORD
- METASTORE_PASSWORD: Karena Secret Manager
tidak mendukung operator titik(
.), ganti titik(.) dalam sandi dengan tanda hubung(-).
- METASTORE_PASSWORD: Karena Secret Manager
tidak mendukung operator titik(
- Alternatif 1: Gunakan Secret Manager untuk membuat secret.
Pastikan secret ada.
sudo hadoop credential list -provider gsm://projects/PROJECT_ID
Membuat cluster untuk menjalankan tugas Hive yang terhubung ke metastore eksternal
- Jalankan perintah berikut secara lokal atau di Cloud Shell untuk
membuat cluster Managed Service untuk Apache Spark
dengan properti cluster berikut.
Gunakan cluster ini untuk menjalankan tugas Hive yang terhubung ke metastore eksternal di cluster Managed Service untuk Apache Spark lainnya.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --properties="hive:javax.jdo.option.ConnectionURL=jdbc:mysql://METASTORE_CLUSTER_NAME-m/metastore,hive:hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,hive:hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed...
Perintah kredensial Hadoop
Anda dapat menggunakan SSH
untuk terhubung ke node master Managed Service untuk Apache Spark
guna menggunakan perintah hadoop credential untuk membuat, mencantumkan, dan mengelola secret.
hadoop credential perintah menggunakan format berikut:
hadoop credential SUBCOMMAND OPTIONS.
Dalam contoh berikut, flag -provider ditambahkan untuk menentukan jenis dan lokasi penyedia (penyimpanan penyedia). Skema gsm:// menentukan Secret Manager.
Buat secret dengan ID secret yang ditentukan. Perintah tidak akan membuat secret jika ID secret yang ditentukan ada. Perilaku ini konsisten dengan Hadoop
CredentialProviderAPI.hadoop credential create SECRET_ID -provider gsm://projects/PROJECT_ID -v VALUE
Mencantumkan secret yang disimpan dalam project.
hadoop credential list -provider gsm://projects/PROJECT_ID
Memeriksa apakah secret ada dalam project dengan nilai yang ditentukan.
hadoop credential check SECRET_ID -provider gsm://projects/PROJECT_ID -v VALUE
Memeriksa versi secret tertentu dalam file konfigurasi.
hadoop credential conf CONFIG_FILE check SECRET_ID -provider gsm://projects/PROJECT_ID -v VALUE
CONFIG_FILE: File XML yang menetapkan
hadoop.security.credstore.google-secret-manager.secret-version.Menghapus semua versi secret dalam project.
hadoop credential delete SECRET_ID -provider gsm://projects/ PROJECT_ID
Lihat Panduan Perintah Hadoop untuk mengetahui informasi selengkapnya.
Langkah berikutnya
- Lihat dokumentasi Hive.