Use o cliente Python do Secret Manager com o Vertex AI Pipelines para acessar secrets armazenados no Secret Manager.
Criar um secret usando o Console do Google Cloud
Ative a API Secret Manager no Console do Google Cloud.
Acesse a página Secret Manager no Console do Cloud:
Na página Gerenciador de secrets, clique em Criar secret.
Na página Criar secret, em "Nome", digite um nome para o secret, por exemplo, "universe-secret".
Para adicionar uma versão do secret ao criar o secret inicial, no campo Valor do secret, insira um valor para o secret (por exemplo,
42
).Escolha sua região.
Clique no botão Criar secret.
Criar e executar um pipeline com componentes baseados em funções do Python
Veja a seguir um componente de amostra que imprime a chave secreta criada anteriormente.
Conceda à conta de serviço que executa o pipeline com permissão de administrador de secret. Consulte a seção "Configurar uma conta de serviço com permissões granulares" em Configurar seu projeto do Google Cloud para o Vertex AI Pipelines para mais informações.
Use o SDK do Kubeflow Pipelines para criar 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 usando o SDK da 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:
- PROJECT_ID: o projeto do Google Cloud em que este pipeline é executado.
- SECRET_ID: o ID do secret criado nas etapas anteriores,
por exemplo,
universe-secret
. - VERSION_ID: o nome da versão do secret.
- REGION: a região em que este pipeline é executado.
- PIPELINE_ROOT: especifique um URI do Cloud Storage que sua conta de serviço de pipelines possa acessar. Os artefatos das execuções de pipeline são armazenados na raiz do pipeline.
- SERVICE_ACCOUNT: o endereço de e-mail da conta de serviço que você criou com a permissão de acessador do Secret Manager.
Nas saídas da função job.submit()
, clique no link para ver a execução do pipeline no Console do Google Cloud.