Penyedia Kredensial Secret Manager

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 mencakup jceks://, user://,localjceks://. Gunakan skema gsm:// 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 menjadi a-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 versi LATEST 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