Configurar la autenticación para Helm

En esta página se describe cómo configurar Helm para autenticarte en repositorios de Artifact Registry.

Antes de empezar

  1. Si no tienes ningún repositorio para tus gráficos, crea uno. Elige Docker como formato de repositorio.
  2. Instala Google Cloud CLI y, a continuación, inicia sesión en gcloud CLI con tu identidad federada. Después de iniciar sesión, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

    gcloud init
  3. (Opcional) Configura los valores predeterminados de los comandos de Google Cloud CLI.
  4. 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.

Elegir un método de autenticación

En la mayoría de los casos, te recomendamos que utilices una cuenta de servicio para autenticarte en Artifact Registry.

Están disponibles los siguientes métodos de autenticación:

Usar las credenciales de Artifact Registry configuradas para Docker
De forma predeterminada, Helm puede autenticarse con las mismas credenciales que usas en Docker.
Token de acceso
Credenciales predeterminadas de la aplicación: proporcionan tokens de acceso de corta duración que una cuenta de servicio usa para acceder a tus Trusted Cloud by S3NS recursos.
Archivo de clave JSON

Un par de claves gestionado por el usuario que puedes usar como credencial para una cuenta de servicio. Como la credencial tiene una 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.

Usar tu configuración de Docker

De forma predeterminada, Helm admite ajustes de registro en el archivo de configuración de Docker config.json. Helm busca los ajustes del registro en la ubicación predeterminada o en la ubicación especificada por la variable de entorno DOCKER_CONFIG.

Si configuraste Docker con un asistente de credenciales para autenticarte en Artifact Registry, Helm usará tu configuración de los repositorios de Docker de Artifact Registry.

Usar un token de acceso

Los tokens de acceso son tokens de corta duración que proporcionan acceso a tus recursos deTrusted Cloud by S3NS . Como el token tiene una duración breve, debes solicitarlo menos de una hora antes de usarlo para conectarte a los repositorios de Artifact Registry.

Trusted Cloud obtiene un token de acceso mediante las credenciales de aplicación predeterminadas.

Para usar un token de acceso, sigue estos pasos:

  1. Crea una cuenta de servicio para que actúe en nombre de tu aplicación o elige una que ya tengas y que uses para la automatización.

    Necesitarás la ubicación del archivo de clave de cuenta de servicio para configurar la autenticación con Artifact Registry. En el caso de las cuentas que ya tengas, puedes ver las claves y crear otras en la página Cuentas de servicio.

    Ir a la página Cuentas de servicio

  2. Asigna el rol de Artifact Registry adecuado a la cuenta de servicio para proporcionar acceso al repositorio.

  3. Asigna la ubicación del archivo de clave de cuenta de servicio a la variable GOOGLE_APPLICATION_CREDENTIALS para que el asistente de credenciales de Artifact Registry pueda obtener tu clave al conectarse con los repositorios.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    Donde KEY-FILE es la ruta al archivo de clave de la cuenta de servicio.

  4. Obtén un token de acceso como credenciales cuando te autentiques en Artifact Registry con Docker.

    Linux o macOS

    Ejecuta el siguiente comando:

    gcloud auth application-default print-access-token | helm registry login -u oauth2accesstoken \
    --password-stdin https://LOCATION-docker.s3nsregistry.fr
    

    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.s3nsregistry.fr
    

    Dónde

    • oauth2accesstoken es el nombre de usuario que se debe usar al autenticar con un token de acceso.
    • gcloud auth application-default print-access-token es el comando de la CLI de Google Cloud para obtener el token de acceso de la cuenta de servicio. Tu token de acceso es la contraseña para la autenticación.
    • LOCATION es la ubicación regional del repositorio.

Helm ya está autenticado con Artifact Registry.

Usar un archivo de clave JSON

Cualquier persona que tenga acceso a una clave privada válida de una cuenta de servicio podrá acceder a los recursos a través de esa cuenta. 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 ha descargado la clave.

Sigue estas directrices para limitar el acceso a tus repositorios:

  • Crea cuentas de servicio específicas que solo se usen para interactuar con repositorios.
  • Asigna el rol de Artifact Registry específico para el acceso que necesite la cuenta de servicio. Por ejemplo, una cuenta de servicio que solo descarga artefactos solo requiere el rol Lector de Artifact Registry.
  • Configure los permisos de sus cuentas de servicio dedicadas en cada repositorio en lugar de hacerlo a nivel de proyecto. A continuación, puedes especificar el acceso en función del contexto del repositorio. Por ejemplo, una cuenta de servicio para compilaciones de desarrollo puede tener el rol Lector de Artifact Registry para un repositorio de producción y el rol Escritor de Artifact Registry para un repositorio de staging.
  • Sigue las prácticas recomendadas para gestionar las claves de cuentas de servicio.

Para crear una cuenta de servicio y una clave de cuenta de servicio que solo se puedan usar con repositorios de Artifact Registry, sigue estos pasos:

  1. Crea una cuenta de servicio para que actúe en nombre de tu aplicación o elige una que ya tengas y que uses para la automatización.

    Necesitarás la ubicación del archivo de clave de cuenta de servicio para configurar la autenticación con Artifact Registry. En el caso de las cuentas que ya tengas, puedes ver las claves y crear otras en la página Cuentas de servicio.

    Ir a la página Cuentas de servicio

  2. También puedes codificar en Base64 todo el contenido del archivo de claves.

    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
    

    Donde FILE-NAME es el nombre del archivo de clave original y NEW-FILE-NAME es el archivo de clave codificado en Base64.

  3. Asigna el rol de Artifact Registry adecuado a la cuenta de servicio para proporcionar acceso al repositorio.

  4. Usa la clave de la cuenta de servicio para autenticarte:

    Linux o macOS

    Ejecuta el siguiente comando:

    cat KEY-FILE | helm registry login -u KEY-TYPE --password-stdin \
    https://LOCATION-docker.s3nsregistry.fr
    

    Windows

    Ejecuta el siguiente comando:

    helm registry login -u KEY-TYPE --password-stdin https://LOCATION-docker.s3nsregistry.fr < KEY-FILE
    

    Dónde

    • KEY-TYPE es uno de los siguientes:
      • _json_key si utilizas la clave de la cuenta de servicio en formato JSON tal como se proporcionó cuando creaste el archivo.
      • _json_key_base64 si has codificado en base64 todo el contenido del archivo.
    • KEY-FILE es el nombre del archivo de clave de cuenta de servicio en formato JSON.
    • LOCATION es la ubicación regional del repositorio.

Helm ya está autenticado con Artifact Registry.

Siguientes pasos