Autenticar repositórios de conectores em fontes upstream

Ao configurar a autenticação upstream para repositórios de conectores do Artifact Registry, é possível se conectar a registros externos particulares usando as credenciais da sua conta. É possível armazenar um token de acesso pessoal no Secret Manager e anexá-lo ao repositório do conector para autenticar solicitações de fontes upstream.

Para concluir essas etapas, você precisa de um repositório de conector do Artifact Registry e uma conta com a fonte externa. Para mais informações sobre repositórios de conectores, consulte a Visão geral dos repositórios de conectores.

Funções exigidas

Para receber as permissões necessárias para configurar a autenticação em fontes upstream para repositórios de conectores, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Fontes upstream definidas pelo usuário

Para configurar a autenticação de fontes upstream definidas pelo usuário, siga estas etapas.

Salvar seu token de acesso em um secret

  1. Crie um token de acesso no registro particular.
  2. Crie um secret no Secret Manager.
  3. Salve seu token de acesso pessoal como uma versão secreta.

Conceder acesso ao secret à conta de serviço do Artifact Registry

O agente de serviço do Artifact Registry atua em nome do Artifact Registry ao interagir com os serviços do Cloud de Confiance . Para permitir que o agente de serviço use secrets armazenados no Secret Manager, conceda a ele permissão para visualizar sua versão secreta.

O identificador do agente de serviço é:

service-PROJECT-NUMBER@gcp-sa-artifactregistry.s3ns-system.iam.gserviceaccount.com

PROJECT-NUMBER é o número do projeto do projeto Cloud de Confiance em que o Artifact Registry está sendo executado.

Para conceder ao agente de serviço do Artifact Registry o papel de Acessador de secrets do Secret Manager:

Console

  1. Acesse a página Secret Manager no console do Cloud de Confiance .

    Acessar a página "Secret Manager"

  2. Na página Secret Manager, clique na caixa de seleção ao lado do nome do secret.

  3. Se ela ainda não estiver aberta, clique em Mostrar painel de informações para abrir o painel.

  4. No painel de informações, clique em Adicionar participante.

  5. Na área de texto Novos principais, digite os endereços de e-mail dos membros que você quer adicionar.

  6. Na lista suspensa Selecionar um papel, escolha Secret Manager e depois Acessador de secrets do Secret Manager.

gcloud

$ gcloud secrets add-iam-policy-binding secret-id \
    --member="member" \
    --role="roles/secretmanager.secretAccessor"

Em que member é um membro do IAM, como um usuário, grupo ou conta de serviço.

API

Observação: diferentemente dos outros exemplos, isso substitui toda a política do IAM.

$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:setIamPolicy" \
    --request "POST" \
    --header "authorization: Bearer $(gcloud auth print-access-token)" \
    --header "content-type: application/json" \
    --data "{\"policy\": {\"bindings\": [{\"members\": [\"member\"], \"role\": \"roles/secretmanager.secretAccessor\"}]}}"

Para mais informações sobre como conceder ou revogar o acesso a secrets, consulte Gerenciar o acesso a secrets.

Adicionar credenciais upstream ao repositório do conector

Para atualizar o repositório do conector com as credenciais da fonte upstream:

Console

  1. Abra a página Repositórios no console do Cloud de Confiance .

    Abrir a página Repositórios

  2. Na lista de repositórios, selecione o repositório e clique em Editar repositório.

  3. Na seção Modo de autenticação do repositório do conector, atualize ou adicione o nome de usuário da fonte upstream e o Secret que contém seu token de acesso.

CLI da gcloud

Para atualizar o repositório do conector com as credenciais da fonte upstream, execute o seguinte comando:

gcloud artifacts repositories update REPOSITORY \
    --project=PROJECT_ID \
    --location=LOCATION \
    --remote-username=USERNAME \
    --remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION

Substitua:

  • REPOSITORY: o nome do repositório do conector do Artifact Registry.
  • PROJECT_ID: o ID do projeto Cloud de Confiance .
  • LOCATION: o local regional ou multirregional do repositório. É possível omitir essa sinalização se você definir um padrão. Para conferir uma lista de locais compatíveis, execute o comando gcloud artifacts locations list.
  • USERNAME: seu nome de usuário da fonte upstream.
  • SECRET_PROJECT_ID: o ID do projeto em que você criou o secret.
  • SECRET_ID: o nome que você deu ao secret.
  • SECRET_VERSION: a versão do secret em que você salvou o token de acesso.

Suas credenciais serão usadas na próxima vez que o repositório do conector enviar uma solicitação de um artefato da fonte upstream.