Skip to main content

Erro 401 Unauthorized - Credenciais inválidas

Problema

O código de status 401 Unauthorized significa que as credenciais de autenticação fornecidas são inválidas ou não reconhecidas ao interagir com o Magalu Cloud Container Registry.

Causas possíveis

  1. Credenciais inválidas ou resetadas: O token de acesso ou credencial de usuário fornecido ao Docker CLI ou ao Kubernetes está incorreto (por exemplo, devido a um reset de senha recente) ou não possui as permissões necessárias.
  2. Configuração incorreta: O nome do registry ou do repositório está incorreto, ou a Secret do Kubernetes não está configurada corretamente (por exemplo, problemas de escape de caracteres).

Diagnóstico

1. Falha ao usar Docker CLI (docker pull/push local)

  • Pode indicar uso de credenciais desatualizadas.
  • A região configurada no CLI pode estar incorreta.
  • O endpoint usado no push/pull pode estar errado.

2. Falha dentro do Kubernetes (401 ao puxar imagem no pod)

  • O campo image: do Deployment pode estar incorreto.
  • A Secret do Kubernetes pode conter credenciais erradas ou mal codificadas.
  • Pode existir problema com caracteres especiais ao gerar a Secret.

Solução

Solução 1: Verificação da autenticação via CLI (Docker Client)

  1. Refaça o login no Docker:

    docker login container-registry.<região>.magalu.cloud -u <seu-usuario> -p <seu-token-de-acesso>
  2. Verifique a região da CLI:

    mgc config get region
  3. Valide o registry e o repositório:

    mgc container-registry registries list

    Exemplo de uso correto:

    docker push container-registry.br-se1.magalu.cloud/meu-projeto/minha-aplicacao:1.0.0

Solução 2: Verificação da autenticação no cluster (Kubernetes Pod)

  1. Valide o Deployment:
    Confirme que o campo image: no manifesto do seu Deployment está apontando para o registry e repositório corretos.

  2. Inspecione o conteúdo da Secret:

    kubectl get secret <nome-da-secret> -o jsonpath='{.data.<chave-do-registro>}' | base64 --decode
  3. Criação segura de Secrets (caracteres especiais):

    Gere o conteúdo Base64 (sem quebras de linha):

    cat ~/.docker/config.json | base64 -w0

    Aplique a Secret:

    apiVersion: v1
    kind: Secret
    metadata:
    name: <nome-da-secret>
    namespace: <namespace>
    type: kubernetes.io/dockerconfigjson
    data:
    .dockerconfigjson: "<conteúdo-base64-gerado>"

Conclusão

O erro 401 Unauthorized geralmente está relacionado a credenciais inválidas, região incorreta, endpoint errado ou Secret mal configurada no Kubernetes.
Seguir os passos de validação acima garante que tanto o Docker CLI quanto o cluster Kubernetes utilizem corretamente as credenciais do Magalu Cloud Container Registry.