En este documento, se describe cómo configurar la autenticación en los repositorios ascendentes del índice de paquetes de Python (PyPI) para los repositorios remotos de Artifact Registry.
En este documento, se supone que ya creaste un repositorio remoto de Python de Artifact Registry y una cuenta de PyPI.
Para obtener más información sobre los repositorios remotos, consulta la descripción general de los repositorios remotos.
Roles obligatorios
Para obtener los permisos que necesitas para configurar la autenticación en PyPI para repositorios remotos, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
- Administrador de Artifact Registry (
roles/artifactregistry.admin) - Administrador de Secret Manager (
roles/secretmanager.admin)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Crea un token de API de PyPI
- Accede a PyPI.
- Crea un token de API.
Guarda tu token de API en una versión de secreto
- Crea un secreto en Secret Manager.
- Guarda tu token de API de PyPI como una versión de secreto.
Otorga acceso a la cuenta de servicio de Artifact Registry a tu secreto
El agente de servicio de Artifact Registry actúa en nombre de Artifact Registry cuando interactúa con Google Cloud servicios. Para permitir que el agente de servicio use los secretos almacenados en Secret Manager, debes otorgarle permiso para ver tu versión de secreto.
El identificador del agente de servicio es el siguiente:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
PROJECT-NUMBER es el número del proyecto en el que se ejecuta Artifact Registry. Google Cloud
Para otorgar al agente de servicio de Artifact Registry el rol Administrador y descriptor de acceso a secretos de Secret Manager , haz lo siguiente:
Console
-
Ve a la página Secret Manager en la Google Cloud consola de.
-
En la página Secret Manager, haz clic en la casilla de verificación junto al nombre del secreto.
-
Si aún no está abierto, haz clic en Mostrar panel de información para abrir el panel.
-
En el panel de información, haz clic en Agregar principal.
-
En el área de texto Principales nuevas, ingresa las direcciones de correo electrónico de los miembros que deseas agregar.
-
En el menú desplegable Selecciona una función , selecciona Secret Manager y, luego, Administrador y descriptor de acceso a Secretos.
gcloud
$ gcloud secrets add-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
Donde member es un miembro de IAM, como un usuario, un grupo o una cuenta de servicio.
C#
Para autenticarte en Artifact Registry, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para autenticarte en Artifact Registry, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para autenticarte en Artifact Registry, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para autenticarte en Artifact Registry, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para autenticarte en Artifact Registry, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Artifact Registry, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para autenticarte en Artifact Registry, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
API
Nota: A diferencia de los otros ejemplos, este reemplaza toda la 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 obtener más información sobre cómo otorgar o revocar el acceso a los secretos, consulta Administra el acceso a los secretos.
Agrega credenciales de PyPI a tu repositorio remoto
Para actualizar tu repositorio remoto con tus credenciales de PyPI, haz lo siguiente:
Console
Abre la página Repositorios en la Google Cloud consola de.
En la lista de repositorios, selecciona el repositorio y haz clic en Editar repositorio.
En la sección Modo de autenticación del repositorio remoto , actualiza o agrega tu nombre de usuario de PYPI
__token__y la versión de secreto que contiene tu token de API de PyPI.
Gcloud CLI
Para actualizar tu repositorio remoto con tus credenciales de PyPI, ejecuta el siguiente 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
Reemplaza lo siguiente:
REPOSITORYpor el nombre de tu repositorio remoto de Artifact RegistryPROJECT_IDpor tu Google Cloud ID del proyectoLOCATIONpor la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones admitidas, ejecuta el comandogcloud artifacts locations list.USERNAMEpor tu nombre de usuario de PyPISECRET_PROJECT_IDpor el ID del proyecto en el que creaste tu secretoSECRET_IDpor el nombre que le diste a tu secretoSECRET_VERSIONpor la versión de secreto en la que guardaste tu token de API de PyPI
Tus credenciales se usarán la próxima vez que el repositorio remoto envíe una solicitud de un artefacto desde la fuente ascendente.