Configurar a autenticação para o Helm

Nesta página, descrevemos como configurar o Helm para autenticar com os repositórios do Artifact Registry.

Antes de começar

  1. Se não houver repositório para os gráficos, crie um novo. Escolha Docker como o formato do repositório.
  2. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

    gcloud init
  3. (Opcional) Configure padrões para comandos gcloud.
  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.

As contas de serviço para aplicativos que normalmente se integram ao Artifact Registry, como Cloud Build ou Cloud Run, são configuradas por permissões padrão para repositórios no mesmo projeto. Você não precisa configurar a autenticação do Docker para esses aplicativos.

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

Use as credenciais do Artifact Registry configuradas para o Docker
Por padrão, o Helm pode se autenticar com as mesmas credenciais que você usa para o Docker.
Token de acesso
O Application Default Credentials fornece tokens de acesso de curta duração que uma conta de serviço usa para acessar os 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 é compatível com as configurações de registro no arquivo de configuração do Docker config.json. O Helm encontra as configurações de 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 autenticar com o Artifact Registry, o Helm usará sua configuração atual para repositórios 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 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 na autenticação com um token de acesso.
    • gcloud auth application-default print-access-token é o comando gcloud para receber o token de acesso da conta de serviço. O token de acesso é a senha para autenticação.
    • LOCATION é o local regional ou multirregional do repositório em que 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 conta de serviço 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 de chave original, e NEW-FILE-NAME é o 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
    

    Por

    • KEY-TYPE é um dos seguintes:
      • _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 local regional ou multirregional do repositório em que a imagem está armazenada.

O Helm agora está autenticado com o Artifact Registry.

A seguir