Ringkasan
Secret Manager dapat mengamankan data sensitif Anda, seperti kunci API, sandi, dan sertifikat. Gunakan layanan ini untuk mengelola, mengakses, dan mengaudit secret Anda di seluruh Google Cloud.
GoogleHadoopSecretManagerCredentialProvider
API, yang terintegrasi dengan Secret Manager, adalah implementasi dari Hadoop CredentialProvider API, sebuah solusi untuk mengamankan kredensial sensitif dari akses publik.
Anda dapat menggunakan API penyedia kredensial Hadoop dengan cara berikut:
- Gunakan perintah kredensial Hadoop.
- Konfigurasikan komponen OSS, seperti Hive, untuk digunakan dengan Secret Manager.
Terminologi
Tabel berikut menjelaskan istilah yang digunakan dalam dokumen ini.
Masa Berlaku | Deskripsi |
---|---|
Secret |
Secret adalah objek global project yang berisi kumpulan metadata dan versi secret. Secret Manager memungkinkan Anda menyimpan, mengelola, dan mengakses secret sebagai blob biner atau string teks. |
Credential |
Di Hadoop dan aplikasi yang dihosting Dataproc lainnya, kredensial terdiri dari nama kredensial (ID) dan nilai kredensial (sandi). ID kredensial dan nilai dipetakan ke ID secret dan nilai secret (versi secret) di Secret Manager. |
Perintah kredensial Hadoop
Anda dapat menggunakan perintah hadoop credential
untuk membuat, mencantumkan, dan mengelola secret.
Perintah hadoop credential
menggunakan format umum ini:
hadoop credential SUBCOMMAND OPTIONS
.
Dalam contoh berikut, flag -provider
ditambahkan untuk menentukan
jenis dan lokasi penyedia (penyimpanan penyedia). Skema gsm://
menetapkan
Secret Manager.
Membuat secret dengan ID rahasia yang ditentukan. Perintah ini tidak membuat secret jika ID rahasia yang ditentukan ada. Perilaku ini konsisten dengan Hadoop
CredentialProvider
API.hadoop credential create secret-id -provider gsm://projects/PROJECT_ID -v VALUE
Membuat daftar secret yang disimpan dalam sebuah project.
hadoop credential list -provider gsm://projects/PROJECT_ID
Memeriksa apakah secret ada dalam project dengan nilai tertentu.
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 sebuah project.
hadoop credential delete SECRET_ID -provider gsm://projects/ PROJECT_ID
Lihat Panduan Perintah Hadoop untuk mengetahui informasi selengkapnya.
Mengonfigurasi komponen OSS
Anda dapat mengonfigurasi Hadoop dan komponen OSS lainnya yang didukung agar berfungsi dengan Secret Manager dengan menetapkan properti komponen berikut:
Jalur penyedia (wajib): 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
digunakan untuk menunjukkan jenis penyedia kredensial. Skema Hadoop mencakupjceks://
,user://
,localjceks://
. Gunakan skemagsm://
seperti yang ditunjukkan pada contoh sebelumnya untuk menelusuri kredensial di Secret Manager.
Operator titik pengganti (opsional): Secret Manager tidak mendukung operator dot(
.
) dalam nama secret, tetapi kunci kredensial komponen OSS dapat berisi operator ini. Jika properti ini disetel ketrue
. Anda dapat mengganti titik(.
) dengan tanda hubung(-
) pada nama kredensial. Misalnya, jika properti ini disetel ketrue
, Anda dapat menentukan nama kredensiala.b.c
sebagaia-b-c
saat meneruskannya ke Secret Manager. Properti ini hanya diperlukan untuk menentukan kredensial menggunakan perintah kredensial Hadoop atau saat komponen OSS mencoba me-resolve kredensial. Perintah ini tidak berpengaruh pada perintah pembuatan, daftar, atau penghapusan kredensial Hadoop.--properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
Secret version (opsional): Secret di Secret Manager dapat memiliki beberapa versi (nilai). Gunakan properti ini untuk mengakses versi secret. Secara default, Secret Manager mengakses versi
LATEST
, yang me-resolve ke nilai secret terbaru saat runtime. Praktik terbaiknya adalah menentukan properti ini untuk akses stabil di lingkungan produksi.--properties=hadoop.security.credstore.google-secret-manager.secret-version=1
Contoh Metastore Hive
Properti Hive Metastore, javax.jdo.option.ConnectionPassword
, berisi sandi yang digunakan untuk mengautentikasi akses ke database metastore. Sandi ini disimpan dalam format teks biasa di hive-site.xml
, yang mewakili risiko keamanan. Praktik terbaik produksi adalah menyimpan sandi di Secret Manager, lalu memperbarui file konfigurasi hive-site.xml
agar layanan Hive Metastore dapat membaca sandi dari Secret Manager.
Bagian berikut memberikan petunjuk cara menggunakan Secret Manager dalam berbagai skenario Hive Metastore.
Cluster sarang dengan metastore lokal
Jalankan perintah berikut secara lokal atau di Cloud Shell untuk membuat cluster Dataproc dengan properti cluster yang diperlukan.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ ...other flags as needed... \ --properties="hive:hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,hive:hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true"
Buat secret. Anda dapat membuat secret menggunakan Secret Manager atau perintah
hadoop credential
.Alternatif 1: Gunakan Secret Manager untuk membuat rahasia
- Nama rahasia:
/projects/PROJECT_ID/secrets/javax-jdo-option-ConnectionPassword/versions/1
- Nilai rahasia:
METASTORE_PASSWORD
.
- Nama rahasia:
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 setiap titik(.
) dalam sandi dengan tanda hubung(-
).
- METASTORE_PASSWORD: Karena Secret Manager tidak mendukung operator titik(
Verifikasi bahwa rahasia itu ada.
sudo hadoop credential list -provider gsm://projects/PROJECT_ID
Hapus
javax.jdo.option.ConnectionPassword
dari filehive-site.xml
. Perintah berikut akan membuka file untuk diedit divim
.sudo vim /etc/hive/conf/hive-site.xml
Mulai ulang Hive Metastore.
sudo systemctl restart hive-metastore
Cluster Hive dengan metastore eksternal
Jalankan perintah berikut secara lokal atau di Cloud Shell untuk membuat cluster Dataproc dengan properti cluster berikut.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ ...other flags as needed... \ --properties=core:fs.defaultFS=gs://METASTORE_CLUSTER_PROXY_BUCKET,dataproc:dataproc.components.deactivate="hdfs hive-server2 hive-metastore"
Buat secret. Anda dapat membuat secret menggunakan Secret Manager atau perintah
hadoop credential
.- Alternatif 1: Gunakan Secret Manager untuk membuat secret:
- Nama rahasia:
/projects/PROJECT_ID/secrets/javax-jdo-option-ConnectionPassword/versions/1
- Nilai rahasia:
METASTORE_PASSWORD
.
- Nama rahasia:
- 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:
Verifikasi bahwa rahasia itu ada.
sudo hadoop credential list -provider gsm://projects/PROJECT_ID
Jalankan perintah berikut secara lokal atau di Cloud Shell untuk membuat cluster Dataproc dengan properti cluster berikut. Gunakan cluster ini untuk menjalankan tugas Hive dan terhubung ke metastore eksternal.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ ...other flags as needed... --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"
Untuk informasi selengkapnya
- Pelajari Dokumentasi Hive.