En esta página, se describe cómo configurar Helm para que se autentique con Artifact Registry de Cloud Storage.
Antes de comenzar
- Si no existe un repositorio para tus gráficos, crea uno nuevo. Elige Docker como el formato del repositorio.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- (Opcional) Establece los valores predeterminados para los comandos de Google Cloud CLI.
Instala Helm 3.8.0 o una versión posterior. En versiones anteriores de Helm, la compatibilidad con gráficos en formato OCI es una función experimental.
Ejecuta
helm version
para verificar tu versión.
Elige un método de autenticación
En la mayoría de las situaciones, recomendamos usar una cuenta de servicio para la autenticación en Artifact Registry.
Los siguientes métodos de autenticación están disponibles:
- Usa credenciales de Artifact Registry configuradas para Docker
- De forma predeterminada, Helm puede autenticarse con las mismas credenciales que que usas para Docker.
- Token de acceso
- Credenciales predeterminadas de la aplicación proporcionan tokens de acceso de corta duración usa la cuenta de servicio para acceder a tus recursos de Google Cloud.
- Archivo de claves JSON
Un par de claves administrado por el usuario que puedes usar como credencial para una cuenta de servicio. Debido a que la credencial es de larga duración, es la opción menos segura de todos los métodos de autenticación disponibles.
Cuando sea posible, usa un token de acceso para reducir el riesgo de acceso no autorizado a tus artefactos.
Usa tu configuración de Docker
De forma predeterminada, Helm admite parámetros de configuración de registro en el archivo de configuración de Docker. config.json. Helm encuentra la configuración de registro en la ubicación predeterminada o la especificada por el DOCKER_CONFIG.
Si configuraste Docker con un auxiliar de credenciales para autenticar con Artifact Registry, Helm usa tu configuración existente para los repositorios de Docker de Artifact Registry.
Usa un token de acceso
Los tokens de acceso son tokens de corta duración que proporcionan acceso a los recursos de Google Cloud. Debido a que el token es de corta duración, debes solicitarlo menos de una hora antes de usarlo para conectarte con los repositorios de Artifact Registry.
Google Cloud obtiene un token de acceso usando Credenciales predeterminadas de la aplicación.
Para usar un token de acceso, haz lo siguiente:
Crea una cuenta de servicio que actúe en nombre de tu aplicación o elige una cuenta de servicio existente que uses para la automatización.
Necesitarás la ubicación del archivo de claves de la cuenta de servicio para configurar la autenticación con Artifact Registry. En las cuentas existentes, puedes ver claves y crear claves nuevas en la página Cuentas de servicio.
Otorga la función adecuada de Artifact Registry a la cuenta de servicio para proporcionar acceso al repositorio.
Asigna la ubicación del archivo de claves de la cuenta de servicio a la variable
GOOGLE_APPLICATION_CREDENTIALS
para que el auxiliar de credenciales de Artifact Registry pueda obtener tu clave cuando se conecta con repositorios.export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
En el ejemplo anterior, KEY-FILE es la ruta de acceso al archivo de claves de la cuenta de servicio.
Obtén un token de acceso como credenciales cuando te autenticas en Artifact Registry con Docker.
Linux/macOS
Ejecuta el siguiente comando:
gcloud auth application-default print-access-token | helm registry login -u oauth2accesstoken \ --password-stdin https://LOCATION-docker.pkg.dev
Windows
Ejecuta el siguiente comando:
gcloud auth application-default print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ https://LOCATION-docker.pkg.dev
Dónde
oauth2accesstoken
es el nombre de usuario que se usará para la autenticación con un token de acceso.gcloud auth application-default print-access-token
es Google Cloud CLI. para obtener el token de acceso de la cuenta de servicio. Tu acceso el token es la contraseña para la autenticación.- LOCATION es el regional o multirregional location del repositorio donde se almacena la imagen.
Helm ahora está autenticado con Artifact Registry.
Usa un archivo de claves JSON
Cualquier persona que tenga acceso a una clave privada válida para una cuenta de servicio podrá acceder a los recursos a través de la cuenta de servicio. Ten en cuenta que el ciclo de vida del acceso de la clave a la cuenta de servicio (y, por lo tanto, a los datos a los que tiene acceso la cuenta de servicio) es independiente del ciclo de vida del usuario que descargó la clave.
Usa los siguientes lineamientos para limitar el acceso a tus repositorios:
- Crea cuentas de servicio dedicadas que solo se usen para interactuar con repositorios.
- Otorga el rol específico de Artifact Registry para el acceso que requiere la cuenta de servicio. Por ejemplo, una cuenta de servicio que únicamente descarga artefactos solo requiere la función de lector de Artifact Registry.
- Configura los permisos para las cuentas de servicio dedicadas en cada repositorio, en lugar de hacerlo a nivel de proyecto. Luego, puedes especificar el acceso en función del contexto del repositorio. Por ejemplo, una cuenta de servicio para las compilaciones de desarrollo puede tener la función de lector de Artifact Registry en un repositorio de producción y la función de escritor de Artifact Registry en un repositorio de etapa de pruebas.
- Sigue las prácticas recomendadas para administrar claves de cuentas de servicio.
A fin de crear una cuenta de servicio y una clave de cuenta de servicio nueva para usar solo con los repositorios de Artifact Registry, sigue estos pasos:
Crea una cuenta de servicio que actúe en nombre de tu aplicación o elige una cuenta de servicio existente que uses para la automatización.
Necesitarás la ubicación del archivo de claves de la cuenta de servicio para configurar la autenticación con Artifact Registry. En las cuentas existentes, puedes ver claves y crear claves nuevas en la página Cuentas de servicio.
De forma opcional, puedes codificar todo el contenido del archivo de claves en Base64.
Linux
base64 FILE-NAME > NEW-FILE-NAME
macOS
base64 -i FILE-NAME -o NEW-FILE-NAME
Windows
Base64.exe -e FILE-NAME > NEW-FILE-NAME
En el ejemplo anterior, FILE-NAME es el nombre del archivo de claves original y NEW-FILE-NAME es el archivo de claves codificado en Base64.
Otorga la función adecuada de Artifact Registry a la cuenta de servicio para proporcionar acceso al repositorio.
Usa la clave de la cuenta de servicio para autenticarte:
Linux/macOS
Ejecuta el siguiente comando:
cat KEY-FILE | helm registry login -u KEY-TYPE --password-stdin \ https://LOCATION-docker.pkg.dev
Windows
Ejecuta el siguiente comando:
helm registry login -u KEY-TYPE --password-stdin https://LOCATION-docker.pkg.dev < KEY-FILE
Dónde
- KEY-TYPE es una de las siguientes opciones:
_json_key
, si usas la clave de la cuenta de servicio en formato JSON, como se proporcionó cuando creaste el archivo._json_key_base64
, si codificas en Base64 todo el contenido del archivo.
- KEY-FILE es el nombre del archivo de claves de la cuenta de servicio en formato JSON.
- LOCATION es el regional o multirregional location del repositorio en el que se almacena la imagen.
- KEY-TYPE es una de las siguientes opciones:
Helm ahora se autentica con Artifact Registry.