Mengonfigurasi secret dengan Secret Manager

Anda dapat menggunakan klien Python Secret Manager dengan Vertex AI Pipelines untuk mengakses secret yang disimpan di Secret Manager.

Membuat secret menggunakan Konsol Google Cloud

  1. Aktifkan Secret Manager API di Konsol Google Cloud.

  2. Buka halaman Secret Manager di Konsol Cloud.

    Buka halaman Secret Manager

  3. Di halaman Secret Manager, klik Buat Secret.

  4. Di halaman Buat secret, di bagian Nama, masukkan nama untuk secret tersebut (misalnya, `universe-secret).

  5. Untuk menambahkan versi secret saat membuat secret awal, di kolom Secret value, masukkan nilai untuk secret tersebut (misalnya, 42).

  6. Pilih region Anda.

  7. Klik tombol Buat secret.

Membangun dan menjalankan pipeline dengan komponen berbasis fungsi Python

Berikut adalah contoh komponen yang mencetak secret yang dibuat sebelumnya.

  1. Berikan izin secret manager untuk akun layanan yang menjalankan pipeline. Lihat bagian "Mengonfigurasi akun layanan dengan izin terperinci" dari Mengonfigurasi project Google Cloud untuk Vertex AI Pipelines untuk mengetahui informasi selengkapnya.

  2. Dengan menggunakan Kubeflow Pipelines SDK, build pipeline sederhana dengan satu tugas.

     from kfp import compiler
     from kfp import dsl
    
     # A simple component that prints a secret stored in Secret Manager
     # Be sure to specify "google-cloud-secret-manager" as one of packages_to_install
     @dsl.component(
         packages_to_install=['google-cloud-secret-manager']
     )
     def print_secret_op(project_id: str, secret_id: str, version_id: str) -> str:
         from google.cloud import secretmanager
    
         secret_client = secretmanager.SecretManagerServiceClient()
         secret_name = f'projects/{project_id}/secrets/{secret_id}/versions/{version_id}'
         response = secret_client.access_secret_version(request={"name": secret_name})
         payload = response.payload.data.decode("UTF-8")
         answer = "The secret is: {}".format(payload)
         print(answer)
         return answer
    
     # A simple pipeline that contains a single print_secret task
     @dsl.pipeline(
         name='secret-manager-demo-pipeline')
     def secret_manager_demo_pipeline(project_id: str, secret_id: str, version_id: str):
         print_secret_task = print_secret_op(project_id, secret_id, version_id)
    
     # Compile the pipeline
     compiler.Compiler().compile(pipeline_func=secret_manager_demo_pipeline,
                                 package_path='secret_manager_demo_pipeline.yaml')
    
  3. Jalankan pipeline menggunakan Vertex AI SDK.

     from google.cloud import aiplatform
    
     parameter_values = {
         "project_id": PROJECT_ID,
         "secret_id": SECRET_ID,
         "version_id": VERSION_ID
     }
    
     aiplatform.init(
         project=PROJECT_ID,
         location=REGION,
     )
    
     job = aiplatform.PipelineJob(
         display_name=f'test-secret-manager-pipeline',
         template_path='secret_manager_demo_pipeline.yaml',
         pipeline_root=PIPELINE_ROOT,
         enable_caching=False,
         parameter_values=parameter_values
     )
    
     job.submit(
         service_account=SERVICE_ACCOUNT
     )
    

    Ganti kode berikut:

    • PROJECT_ID: Project Google Cloud tempat pipeline ini berjalan.
    • SECRET_ID: ID secret yang dibuat di langkah sebelumnya (misalnya universe-secret).
    • VERSION_ID: Nama versi secret.
    • REGION: Region tempat pipeline ini berjalan.
    • PIPELINE_ROOT: Menentukan Cloud Storage URI yang dapat diakses oleh akun layanan pipeline Anda. Artefak yang dijalankan oleh pipeline Anda disimpan di dalam root pipeline.
    • SERVICE_ACCOUNT: Alamat email akun layanan yang Anda buat dengan izin Secret Manager Accessor.

Di output fungsi job.submit(), Anda akan dapat mengklik link yang mengarahkan Anda untuk melihat eksekusi pipeline di Konsol Google Cloud.