Neste documento, descrevemos como configurar a autenticação para upstream do Maven Central. repositórios para repositórios remotos do Artifact Registry.
Para seguir este documento, é preciso ter criado um Maven para o Artifact Registry repositório remoto e um Maven Central (em inglês) do Compute Engine.
Para mais informações sobre repositórios remotos, consulte a Visão geral dos repositórios remotos.
Funções exigidas
Para receber as permissões necessárias para configurar a autenticação no Maven Central para repositórios remotos, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Administrador do Artifact Registry (
roles/artifactregistry.admin
) -
Administrador do Secret Manager (
roles/secretmanager.admin
)
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Criar um token de acesso pessoal do Maven Central
- Faça login no Maven Central (em inglês).
Crie um access-token.
Use o código de usuário do token de acesso pessoal como seu nome de usuário quando adicionar suas credenciais ao Artifact Registry. Para mais informações sobre como gerenciar tokens de usuário no Maven Central, consulte Configuração de segurança com tokens de usuário.
Salve seu token de acesso pessoal em uma versão do secret
- Crie um secret no Secret Manager.
- Salve seu token de acesso pessoal do Maven Central como um versão secreta.
Conceda à conta de serviço do Artifact Registry acesso ao seu secret
O agente de serviço do Artifact Registry atua em nome dele ao interagir. com os serviços do Google Cloud. Permitir que o agente de serviço use secrets armazenadas no Secret Manager, é preciso conceder ao agente de serviço a permissão para ver a versão do secret.
O identificador do agente de serviço é:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
PROJECT-NUMBER é o número do projeto do projeto do Google Cloud em que o Artifact Registry está sendo executado.
Para conceder ao agente de serviço do Artifact Registry o acessor de secret do Secret Manager função:
Console
-
Acesse a página do Secret Manager no console do Google Cloud:
-
Na página do Gerenciador de secrets, clique na caixa de seleção ao lado do nome do secret.
-
Se ela ainda não estiver aberta, clique em Mostrar painel de informações para abrir o painel.
-
No painel de informações, clique em Adicionar participante.
-
Na área de texto Novos principais, digite os endereços de e-mail dos membros que você quer adicionar.
-
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.
C#
Para autenticar no Artifact Registry, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para autenticar no Artifact Registry, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no Artifact Registry, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para autenticar no Artifact Registry, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para autenticar no Artifact Registry, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Artifact Registry, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para autenticar no Artifact Registry, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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 aos secrets.
Adicionar credenciais do Maven Central ao seu repositório remoto
Para atualizar o repositório remoto com as credenciais do Maven Central:
Console
Abra a página Repositórios no console do Google Cloud.
Na lista de repositórios, selecione o repositório e clique em Editar repositório.
Na seção Modo de autenticação do repositório remoto, atualize ou adicione código de usuário do Maven Central associado ao seu token de acesso pessoal conforme seu nome de usuário e a versão do secret que contém o arquivo token de acesso.
CLI da gcloud
Para atualizar o repositório remoto com as credenciais do Maven Central, execute o comando seguinte comando:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=USER_CODE \
--remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
Substitua:
REPOSITORY
pelo nome do controle remoto do Artifact Registry repositório de dados.PROJECT_ID
pelo ID de projeto do Google Cloud;LOCATION
com o modelo regional ou multirregional location do repositório. É possível omitir essa sinalização se você definir um padrão. Para ver uma lista de locais com suporte, execute o comandogcloud artifacts locations list
.USER_CODE
é o código do usuário associado ao Maven. Token de acesso central. Para mais informações sobre como gerenciar tokens de usuário no Maven, Central, consulte Configuração de segurança com tokens de usuário.SECRET_PROJECT_ID
pelo ID do projeto. em que você criou o secret.SECRET_ID
pelo nome que você deu ao secret.SECRET_VERSION
pela versão do secret que você salvou. token de acesso do Maven Central. s
Suas credenciais serão usadas na próxima vez que o repositório remoto enviar uma solicitação de um artefato da origem upstream.