Conteúdo especializado em infraestruturaÁrea do Cliente →
Segurança

Autenticação Keyless: Como integrar GitHub Actions e Quay sem gerenciar segredos

Aprenda a utilizar o OpenID Connect (OIDC) para realizar o push de imagens de containers para o Quay de forma segura, eliminando a necessidade de armazenar tokens de longa duração em seus repositórios.

Autenticação Keyless: Como integrar GitHub Actions e Quay sem gerenciar segredos

Em ambientes de desenvolvimento modernos, a automação de pipelines de CI/CD é fundamental para a agilidade. No entanto, o gerenciamento de credenciais — como tokens de registro de containers — representa um desafio constante de segurança. Armazenar segredos de longa duração em repositórios Git aumenta a superfície de ataque, pois, caso ocorra um vazamento, o acesso ao seu registro de imagens pode ser comprometido até que o token seja revogado e rotacionado manualmente.

O que é a Federação de Contas Robot (Keyless Authentication)?

A federação de contas robot permite que serviços como o GitHub Actions provem sua identidade para o registro de imagens (neste caso, o Quay) utilizando o protocolo OpenID Connect (OIDC). Em vez de utilizar uma senha estática, o seu pipeline solicita um token de identidade assinado ao provedor (GitHub) e o troca por um token de curta duração no registro (Quay). Esse processo é conhecido como autenticação keyless ou sem segredos.

Vantagens para a Infraestrutura

  • Segurança aprimorada: Não há segredos persistentes armazenados no repositório.
  • Tokens efêmeros: O token gerado possui validade curta, reduzindo drasticamente o impacto em caso de interceptação.
  • Redução de carga operacional: Elimina a necessidade de processos manuais de rotação de senhas ou revogação de tokens após a saída de membros da equipe.
  • Controle de acesso granular: É possível restringir a autenticação a branches específicas ou repositórios determinados, garantindo que apenas fluxos autorizados possam realizar o push de imagens.

Como implementar a autenticação via OIDC

A implementação segue uma lógica de confiança entre o emissor (GitHub) e o receptor (Quay). O processo básico envolve três etapas principais:

  1. Configuração no Quay: Criação de uma conta robot com permissões de escrita no repositório de destino.
  2. Federação: Configuração da relação de confiança no Quay, utilizando a URL do emissor OIDC do GitHub e definindo o subject (identificador único do seu repositório).
  3. Pipeline de CI/CD: Ajuste do workflow para solicitar o token OIDC e realizar a troca pelo token de acesso do Quay antes da etapa de push.

Considerações de Segurança

Ao configurar o subject claim no Quay, certifique-se de ser o mais específico possível. Ao limitar o acesso a uma branch específica (como a main), você impede que desenvolvedores ou processos em branches de teste (forks ou branches de feature) consigam realizar alterações não autorizadas no seu registro de produção. Esta prática é uma camada adicional de defesa essencial em ambientes de Cloud e Infraestrutura.

O uso de tokens de curta duração é uma recomendação padrão em arquiteturas de segurança modernas. Ao integrar o podman-login (ou ferramentas equivalentes) com tokens obtidos via OIDC, você garante que o acesso ao seu registro de containers seja efêmero e auditável. Esta abordagem transforma a gestão de permissões de um modelo estático e arriscado para um modelo dinâmico e seguro, alinhado com as melhores práticas de DevOps e Segurança.

Adotar a autenticação federada não apenas simplifica o fluxo de trabalho, mas também demonstra maturidade na gestão de infraestrutura, protegendo seus ativos digitais contra exposições acidentais de credenciais.

Quer uma infraestrutura preparada para crescer?

Conheça os planos da Rei Hosting ou fale com nossa equipe.

Ver soluções