Pode usar o cliente Python do Secret Manager com os pipelines da Vertex AI para aceder a segredos armazenados no Secret Manager.
Crie um segredo através da consola Google Cloud
Ative a API Secret Manager na Google Cloud consola.
Aceda à página Secret Manager na Cloud Console.
Na página Secret Manager, clique em Create Secret.
Na página Criar segredo, em Nome, introduza um nome para o segredo (por exemplo, `universe-secret`).
Para adicionar uma versão do Secret quando criar o Secret inicial, no campo Valor do Secret, introduza um valor para o Secret (por exemplo,
42
).Escolha a sua região.
Clique no botão Criar segredo.
Crie e execute um pipeline com componentes baseados em funções Python
Segue-se um componente de exemplo que imprime o segredo criado anteriormente.
Conceda à conta de serviço que executa o pipeline a autorização do Secret Manager. Consulte a secção "Configure uma conta de serviço com autorizações detalhadas" de Configure o seu Google Cloud projeto para os Vertex AI Pipelines para mais informações.
Usando o SDK Kubeflow Pipelines, crie um pipeline simples com uma tarefa.
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')
Execute o pipeline com o SDK do 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 )
Substitua o seguinte:
- PROJECT_ID: o projeto Google Cloud no qual esta pipeline é executada.
- SECRET_ID: O ID secreto criado nos passos anteriores
(por exemplo,
universe-secret
). - VERSION_ID: o nome da versão do segredo.
- REGION: a região em que este pipeline é executado.
- PIPELINE_ROOT: especifique um URI do Cloud Storage ao qual a conta de serviço dos pipelines pode aceder. Os artefactos das execuções do pipeline são armazenados na raiz do pipeline.
- SERVICE_ACCOUNT: o endereço de email da conta de serviço que criou com a autorização Secret Manager Accessor.
No resultado da função job.submit()
, deve poder clicar no link que lhe permite ver a execução do pipeline na consola Google Cloud .