Penyedia Kredensial Secret Manager

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 mencakup jceks://, user://,localjceks://. Gunakan skema gsm:// 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 menjadi a-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 versi LATEST secret, properti ini dapat diabaikan dengan aman.

Membuat cluster Dataproc dengan Penyedia Kredensial Secret Manager

  1. 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:

Mengirimkan Dataproc dengan Penyedia Kredensial Secret Manager

  1. 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:

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

  1. 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:

  1. 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.
    • 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(-).
  2. Pastikan secret ada.

    sudo hadoop credential list -provider gsm://projects/PROJECT_ID
    

  3. Gunakan editor teks untuk menghapus properti javax.jdo.option.ConnectionPassword dari file hive-site.xml, lalu tambahkan properti hadoop.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
    

  4. Mulai ulang Hive Metastore.

    sudo systemctl restart hive-metastore
    

Membuat cluster dengan Metastore Hive eksternal

  1. 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...
    
  2. 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.
    • 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(-).
  3. Pastikan secret ada.

    sudo hadoop credential list -provider gsm://projects/PROJECT_ID
      

Membuat cluster untuk menjalankan tugas Hive yang terhubung ke metastore eksternal

  1. 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