Configurar a autenticação do Helm

Esta página descreve como configurar o Helm para autenticação com repositórios do Artifact Registry.

Antes de começar

  1. Se não houver um repositório para seus gráficos, crie um novo repositório. Escolha o Docker como o formato do repositório.
  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init
  3. (Opcional) Configure padrões para os comandos da Google Cloud CLI.
  4. Instale o Helm 3.8.0 ou mais recente. Nas versões anteriores do Helm, o suporte a gráficos no formato OCI é um recurso experimental.

    Execute helm version para verificar sua versão.

Como escolher um método de autenticação

Na maioria das situações, recomendamos o uso de uma conta de serviço para autenticação para o Artifact Registry.

Os seguintes métodos de autenticação estão disponíveis:

Usar credenciais do Artifact Registry configuradas para o Docker
Por padrão, o Helm pode fazer a autenticação com as mesmas credenciais usadas para o Docker.
Token de acesso
As credenciais padrão do aplicativo fornecem tokens de acesso de curta duração que uma conta de serviço usa para acessar seus recursos do Google Cloud.
Arquivo de chave JSON

Um par de chaves gerenciado pelo usuário que você pode usar como credencial para uma conta de serviço. Como a credencial é longa, é a opção menos segura de todos os métodos de autenticação disponíveis.

Quando possível, use um token de acesso para reduzir o risco de acesso não autorizado aos seus artefatos.

Como usar a configuração do Docker

Por padrão, o Helm oferece suporte a configurações de registro no arquivo de configuração do Docker config.json. O Helm encontra as configurações do registro no local padrão ou no local especificado pela variável de ambiente DOCKER_CONFIG.

Se você configurou o Docker com um auxiliar de credenciais para autenticação com o Artifact Registry, o Helm usa sua configuração atual para os repositórios do Docker do Artifact Registry.

Usar um token de acesso

Os tokens de acesso são tokens de curta duração que fornecem acesso aos recursos do Google Cloud. Como o token tem vida curta, solicite-o menos de uma hora antes de usá-lo para se conectar aos repositórios do Artifact Registry.

O Google Cloud recebe um token de acesso usando o Application Default Credentials.

Para usar um token de acesso:

  1. Crie uma conta de serviço para agir em nome do seu aplicativo ou escolha uma conta de serviço atual que você usa para automação.

    Você precisará do local do arquivo de chave da conta de serviço para configurar a autenticação com o Artifact Registry. Para contas existentes, é possível ver as chaves e criar novas chaves na página "Contas de serviço".

    Acesse a página Contas de serviço

  2. Conceda o papel apropriado do Artifact Registry à conta de serviço para fornecer acesso ao repositório.

  3. Atribua o local do arquivo de chave da conta de serviço à variável GOOGLE_APPLICATION_CREDENTIALS para que o auxiliar de credenciais do Artifact Registry possa conseguir sua chave ao se conectar com os repositórios.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    Em que KEY-FILE é o caminho para o arquivo de chave da conta de serviço.

  4. Receber um token de acesso como credenciais ao autenticar no Artifact Registry com o Docker.

    Linux / macOS

    Execute este comando:

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

    Windows

    Execute este comando:

    gcloud auth application-default print-access-token
    ya29.8QEQIfY_...
    
    helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \
    https://LOCATION-docker.pkg.dev
    

    Onde

    • oauth2accesstoken é o nome de usuário a ser usado ao autenticar com uma token de acesso.
    • gcloud auth application-default print-access-token é a Google Cloud CLI. para receber o token de acesso da conta de serviço. Seu token de acesso é a senha para autenticação.
    • LOCATION é o regional ou multirregional local do repositório onde a imagem está armazenada.

O Helm agora está autenticado com o Artifact Registry.

usar um arquivo de chave JSON.

Qualquer pessoa que tenha acesso a uma chave privada válida para uma conta de serviço poderá acessar recursos por meio da conta de serviço. O ciclo de vida do acesso da chave à conta de serviço (e, portanto, os dados a que a conta de serviço tem acesso) independe do ciclo de vida do usuário que fez o download da chave.

Use as seguintes diretrizes para limitar o acesso aos seus repositórios:

  • Crie contas de serviço dedicadas que são usadas apenas para interagir com os repositórios.
  • Conceda o papel específico do Artifact Registry para o acesso exigido pela conta de serviço. Por exemplo, uma conta de serviço que faz o download apenas de artefatos requer apenas o papel de Leitor do Artifact Registry.
  • Configure as permissões para suas contas de serviço dedicadas em cada repositório, e não no nível do projeto. É possível especificar o acesso com base no contexto do repositório. Por exemplo, uma conta de serviço para versões de desenvolvimento pode ter o papel de leitor do Artifact Registry para um repositório de produção e o papel de gravador do Artifact Registry para um repositório de preparo.
  • Siga as práticas recomendadas para gerenciar chaves de contas de serviço.

Para criar uma nova conta de serviço e uma chave de conta de serviço para uso apenas com repositórios do Container Registry:

  1. Crie uma conta de serviço para agir em nome do seu aplicativo ou escolha uma conta de serviço atual que você usa para automação.

    Você precisará do local do arquivo de chave da conta de serviço para configurar a autenticação com o Artifact Registry. Para contas existentes, é possível ver as chaves e criar novas chaves na página "Contas de serviço".

    Acesse a página Contas de serviço

  2. Opcionalmente, você pode codificar todo o conteúdo do arquivo de chave em 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
    

    em que FILE-NAME é o nome do arquivo da chave original e NEW-FILE-NAME é seu arquivo de chave codificado em base64.

  3. Conceda o papel apropriado do Artifact Registry à conta de serviço para fornecer acesso ao repositório.

  4. Use a chave da conta de serviço para autenticar:

    Linux/macOS

    Execute este comando:

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

    Windows

    Execute este comando:

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

    Onde

    • KEY-TYPE é um destes:
      • _json_key se você estiver usando a chave da conta de serviço no formato JSON, conforme fornecido ao criar o arquivo.
      • _json_key_base64 se você codificou todo o conteúdo do arquivo em base64.
    • KEY-FILE é o nome do arquivo de chave da conta de serviço no formato JSON.
    • LOCATION é o regional ou multirregional local do repositório em que o imagem é armazenada.

O Helm agora está autenticado com o Artifact Registry.

A seguir