Gerenciar segredos e chaves
Onde armazenar
Em um store de segredos gerenciado que injeta valores em tempo de execução, com permissões por serviço e por ambiente, e com log de acesso. Variáveis de ambiente são um mecanismo de transporte, não um lugar de armazenamento.
Rotação periódica
Todo segredo precisa de um processo de rotação que dá para executar em minutos. É necessário quando alguém sai, num vazamento suspeito e rotineiramente. Se a rotação exige tempo de inatividade, não será feita quando precisar.
Suporte duas chaves ativas em paralelo por um tempo breve, para que a rotação seja suave.
Prevenir um vazamento com antecedência
Um scanner de segredos no processo de build e um hook antes de salvar uma mudança, para que um segredo seja bloqueado antes de entrar no histórico. Se já entrou — assuma que vazou, rotacione imediatamente e só então limpe o histórico.
Indo mais fundo
Separe segredos por ambiente de forma absoluta. Uma chave de produção acessível de um ambiente de desenvolvimento anula o sentido da separação, e é assim que a maioria dos vazamentos internos acontece — não com malícia, mas por um script apontado por engano para o endereço errado.