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.
Anda dapat mengonfigurasi cluster atau tugas Dataproc untuk menggunakan secret Secret Manager menggunakan Penyedia Kredensial Secret Manager.
Ketersediaan
Fitur ini tersedia untuk digunakan dengan cluster Dataproc yang dibuat dengan versi image Dataproc utama versi image 2.0.97+, 2.1.41+, 2.2.6+, atau 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 aplikasi lain yang dihosting Dataproc, kredensial terdiri dari nama kredensial (ID) dan nilai kredensial (sandi). ID dan nilai kredensial dipetakan ke ID secret dan nilai secret (versi secret) Secret Manager. |
Penggunaan
Anda dapat mengonfigurasi Hadoop dan komponen OSS lainnya agar berfungsi dengan Secret Manager dengan menetapkan properti berikut saat membuat cluster Dataproc atau mengirimkan tugas.
Jalur penyedia : 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
scheme
di jalur penyedia menunjukkan jenis penyedia kredensial. Skema Hadoop mencakupjceks://
,user://
,localjceks://
. Gunakan skemagsm://
untuk menelusuri kredensial di Secret Manager.
Ganti operator titik : 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. Tindakan ini memastikan bahwa kredensial OSS dengan titik dalam namanya dapat disimpan dan diambil dengan benar dari Pengelola Secret.Misalnya, Jika kunci kredensial OSS adalah
a.b.c
, Anda harus mengubahnya menjadia-b-c
saat 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.Versi secret : Secret di Secret Manager dapat memiliki beberapa versi (nilai). Gunakan properti ini untuk mengakses versi secret tertentu guna mendapatkan akses yang 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 me-resolve ke nilai terbaru secret saat runtime. Jika kasus penggunaan Anda adalah selalu mengakses versiLATEST
secret, properti ini dapat diabaikan dengan aman.
Membuat cluster Dataproc dengan Penyedia Kredensial Secret Manager
- Jalankan perintah berikut secara lokal atau di Cloud Shell untuk
membuat cluster Dataproc
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 di dasbor konsol Google Cloud.
Mengirimkan Dataproc dengan Penyedia Kredensial Secret Manager
Jalankan perintah berikut secara lokal atau di Cloud Shell untuk mengirimkan tugas Dataproc 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 di dasbor konsol Google Cloud.
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 mewakili
risiko keamanan. Praktik terbaik produksi adalah menyimpan sandi
di Secret Manager, lalu memperbarui file konfigurasi
hive-site.xml
untuk mengizinkan layanan metastore Hive membaca sandi
dari Secret Manager.
Contoh berikut menunjukkan cara menggunakan Pengelola Secret dalam berbagai skenario Hive Metastore.
Membuat cluster dengan metastore lokal
- Jalankan perintah berikut secara lokal atau di Cloud Shell untuk
membuat cluster Dataproc.
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 credential
untuk 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(
Pastikan secret ada.
sudo hadoop credential list -provider gsm://projects/PROJECT_ID
Gunakan editor teks untuk menghapus properti
javax.jdo.option.ConnectionPassword
dari filehive-site.xml
, lalu tambahkan propertihadoop.security.credential.provider.path
&hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator
ke 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 Metastore Hive eksternal
Jalankan perintah berikut secara lokal atau di Cloud Shell untuk membuat cluster Dataproc dengan properti cluster berikut. Gunakan cluster ini sebagai metastore Hive eksternal untuk tugas Hive yang berjalan dari cluster Dataproc lain untuk workload 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 credential
untuk 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 Dataproc
dengan properti cluster berikut.
Gunakan cluster ini untuk menjalankan tugas Hive yang terhubung ke metastore eksternal di cluster Dataproc lain.
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 Dataproc
guna menggunakan perintah hadoop credential
untuk membuat, mencantumkan, dan mengelola secret.
Perintah hadoop credential
menggunakan format berikut:
hadoop credential SUBCOMMAND OPTIONS
.
Dalam contoh berikut, tanda -provider
ditambahkan untuk menentukan
jenis dan lokasi penyedia (toko penyedia). Skema gsm://
menentukan Secret Manager.
Buat secret dengan ID secret yang ditentukan. Perintah ini tidak membuat secret jika ID secret yang ditentukan ada. Perilaku ini konsisten dengan API
CredentialProvider
Hadoop.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
Periksa 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.
Untuk informasi selengkapnya
- Pelajari Dokumentasi Hive.