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:
- Configuração no Quay: Criação de uma conta robot com permissões de escrita no repositório de destino.
- 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).
- 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.
