Este documento descreve como configurar a autenticação para repositórios upstream do Python Package Index (PyPI) para repositórios remotos do Artifact Registry.
Este documento pressupõe que já criou um repositório remoto do Python do Artifact Registry e uma conta do PyPI.
Para mais informações sobre repositórios remotos, consulte a Vista geral dos repositórios remotos.
Funções necessárias
Para receber as autorizações de que precisa para configurar a autenticação no PyPI para repositórios remotos, peça ao seu administrador para lhe conceder as seguintes funções do IAM no projeto:
-
Administrador do Artifact Registry (
roles/artifactregistry.admin
) -
Administrador do Secret Manager (
roles/secretmanager.admin
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie uma chave da API PyPI
- Inicie sessão no PyPI.
- Crie uma chave da API.
Guarde o token da API numa versão secreta
- Crie um segredo no Secret Manager.
- Guarde o seu token da API PyPI como uma versão secreta.
Conceda à conta de serviço do Artifact Registry acesso ao seu segredo
O agente de serviço do Artifact Registry atua em nome do Artifact Registry quando interage com os serviços Google Cloud . Para permitir que o agente de serviço use segredos armazenados no Secret Manager, tem de conceder ao agente de serviço autorização para ver a sua versão secreta.
O identificador do agente do serviço é:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
PROJECT-NUMBER é o número do projeto do projeto onde o Artifact Registry está a ser executado. Google Cloud
Para conceder ao agente de serviço do Artifact Registry a função Secret Manager Secret Accessor:
Consola
-
Aceda à página Secret Manager na Google Cloud consola.
-
Na página Secret Manager, clique na caixa de verificação junto ao nome do segredo.
-
Se ainda não estiver aberto, clique em Mostrar painel de informações para o abrir.
-
No painel de informações, clique em Adicionar principal.
-
Na área de texto Novos diretores, introduza os endereços de email dos membros a adicionar.
-
No menu pendente Selecionar uma função, escolha Secret Manager e, de seguida, Secret Manager Secret Accessor.
gcloud
$ gcloud secrets add-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
Em que member é um membro do IAM, como um utilizador, um grupo ou uma conta de serviço.
C#
Para se autenticar no Artifact Registry, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para se autenticar no Artifact Registry, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para se autenticar no Artifact Registry, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para se autenticar no Artifact Registry, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para se autenticar no Artifact Registry, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para se autenticar no Artifact Registry, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para se autenticar no Artifact Registry, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
API
Nota: ao contrário dos outros exemplos, isto substitui toda a política de 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 segredos, consulte o artigo Gerir o acesso a segredos.
Adicione credenciais do PyPI ao seu repositório remoto
Para atualizar o repositório remoto com as suas credenciais do PyPI:
Consola
Abra a página Repositórios na Google Cloud consola.
Na lista de repositórios, selecione o repositório e clique em Editar repositório.
Na secção Modo de autenticação do repositório remoto, atualize ou adicione o seu nome de utilizador do PYPI
__token__
e a versão secreta que contém o seu token da API PyPI.
CLI gcloud
Para atualizar o repositório remoto com as suas credenciais do PyPI, execute o seguinte comando:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=__token__ \
--remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
Substitua o seguinte:
REPOSITORY
com o nome do seu repositório remoto do Artifact Registry.PROJECT_ID
com o seu Google Cloud ID do projeto.LOCATION
com a localização regional ou multirregional do repositório. Pode omitir esta sinalização se definir uma predefinição. Para ver uma lista de localizações suportadas, execute o comandogcloud artifacts locations list
.USERNAME
com o seu nome de utilizador do PyPI.SECRET_PROJECT_ID
com o ID do projeto no qual criou o seu segredo.SECRET_ID
com o nome que atribuiu ao seu segredo.SECRET_VERSION
com a versão do segredo em que guardou o token da API PyPI.
As suas credenciais são usadas da próxima vez que o repositório remoto enviar um pedido de um artefacto da origem a montante.