Vous pouvez utiliser le client Python de Secret Manager avec Vertex AI Pipelines pour accéder aux secrets stockés sur Secret Manager.
Créer un secret à l'aide de Google Cloud Console
Activez l'API Secret Manager dans Google Cloud Console.
Accédez à la page Secret Manager dans la console Cloud.
Sur la page de Secret Manager, cliquez sur Créer un secret.
Sur la page Créer un secret, sous "Nom", saisissez un nom pour le secret (par exemple, "universe-secret").
Pour ajouter une version de secret au moment de sa création, saisissez une valeur dans le champ Valeur du secret (par exemple,
42
).Sélectionnez votre région.
Cliquez sur le bouton Créer un secret.
Créer et exécuter un pipeline avec des composants basés sur des fonctions Python
Voici un exemple de composant qui affiche le secret précédemment créé.
Attribuez au compte de service qui exécute le pipeline l'autorisation d'accéder aux secrets de Secret Manager. Pour en savoir plus, consultez la section "Configurer un compte de service avec des autorisations précises" de la page Configurer votre projet Google Cloud pour Vertex AI Pipelines.
À l'aide du SDK Kubeflow Pipelines, créez un pipeline simple en une seule tâche.
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')
Exécutez le pipeline à l'aide du SDK Vertex AI.
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 )
Remplacez les éléments suivants :
- PROJECT_ID : projet Google Cloud dans lequel ce pipeline s'exécute.
- SECRET_ID : ID du secret créé lors des étapes précédentes (par exemple,
universe-secret
). - VERSION_ID : nom de la version du secret.
- REGION: région dans laquelle ce pipeline s'exécute.
- PIPELINE_ROOT : spécifiez un URI Cloud Storage auquel votre compte de service de pipelines peut accéder. Les artefacts des exécutions de votre pipeline sont stockés dans la racine du pipeline.
- SERVICE_ACCOUNT : adresse e-mail du compte de service que vous avez créé avec l'autorisation "Accesseur de secrets Secret Manager".
Dans les résultats de la fonction job.submit()
, vous devriez pouvoir cliquer sur le lien qui vous permet d'afficher l'exécution du pipeline dans Google Cloud Console.