Gerenciar dados confidenciais, como chaves de API, tokens e credenciais em vários ambientes, pode ser bastante complicado, especialmente ao desenvolver e implantar aplicativos. Garantir que os segredos sejam armazenados com segurança e obtidos quando necessário, sem codificá-los no controle de versão, é crucial para manter a segurança.
É por isso que criei o Secrets Loader, um script Bash que busca dinamicamente segredos do AWS SSM e CloudFormation diretamente em seu arquivo .env, tornando o desenvolvimento e a implantação locais mais fáceis, seguros e eficientes.
Secrets Loader é uma ferramenta simples projetada para buscar segredos automaticamente do AWS SSM Parameter Store e saídas do AWS CloudFormation com base na sintaxe personalizada em seu arquivo .env. Ele substitui espaços reservados por segredos reais, sem nunca expor informações confidenciais no controle de versão.
Por exemplo, em vez de codificar suas chaves ou credenciais de API, você as define em seu arquivo .env assim:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
Com um único comando, o Secrets Loader irá buscar os valores reais da AWS e atualizar seu arquivo .env, mantendo as informações confidenciais seguras e fáceis de gerenciar.
Durante o desenvolvimento e implantação locais, me vi lidando com credenciais confidenciais que não queria codificadas nos arquivos do projeto. Tendo usado extensivamente os serviços da AWS, eu queria uma maneira de integrar o gerenciamento de segredos ao meu fluxo de trabalho de desenvolvimento existente sem muita complicação.
Aqui estão os principais desafios que o Secrets Loader resolve:
Secrets Loader vem com alguns recursos principais que o tornam uma ferramenta útil para ambientes de desenvolvimento local e produção:
A magia do Secrets Loader reside em sua capacidade de buscar segredos da AWS com base em prefixos específicos (ssm: e cf:). Aqui está um exemplo de fluxo de trabalho:
Adicione espaços reservados para seus segredos em seu arquivo .env usando o prefixo ssm: para parâmetros SSM ou o prefixo cf: para saídas do CloudFormation:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
Use o seguinte comando para executar o script e buscar os segredos:
./secrets.sh
Depois de executar o script, seu arquivo .env será atualizado com os valores reais obtidos da AWS:
THIRD_PARTY_API_KEY=actual-api-key-value AWS_SECRET_ACCESS_KEY=actual-access-key-value
Chega de segredos de codificação e chega de pesquisas manuais!
Pronto para começar? Veja como você pode configurar o Secrets Loader em seu projeto:
git clone https://github.com/Thavarshan/secretst-loader.git cd secretst-loader
chmod x secrets.sh
Se você não tiver o AWS CLI instalado, siga o guia de instalação do AWS CLI. Após a instalação, configure suas credenciais AWS:
aws configure
Use os prefixos ssm: e cf: para definir de onde os segredos devem vir:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
Vamos dar uma olhada em um exemplo simples:
# Application settings APP_NAME=MyApp APP_ENV=production # Secrets fetched from AWS SSM and CloudFormation THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
./secrets.sh
# Application settings APP_NAME=MyApp APP_ENV=production # Fetched secrets THIRD_PARTY_API_KEY=actual-api-key-value AWS_SECRET_ACCESS_KEY=actual-secret-access-key
Se você encontrar algum problema ao usar o Secrets Loader, aqui estão algumas coisas para verificar:
Permissões da AWS: certifique-se de que a AWS CLI esteja configurada corretamente e que sua função ou usuário do IAM tenha permissões suficientes para acessar os segredos do AWS SSM e do CloudFormation.
Erros de sintaxe: verifique novamente a sintaxe em seu arquivo .env para ter certeza de que os prefixos ssm: e cf: estão corretos.
Erros de script: se o script não conseguir buscar determinados segredos, ele registrará avisos, mas continuará buscando os outros. Revise os logs em busca de mensagens de erro e certifique-se de que os recursos da AWS existam e estejam acessíveis.
O script foi projetado para ser extensível. Se quiser integrar outros sistemas de gerenciamento de segredos (como Azure Key Vault ou HashiCorp Vault), você pode modificar facilmente o script para dar suporte a novos prefixos e lógica de busca.
Por exemplo, você pode adicionar um prefixo azkv: para buscar segredos do Azure Key Vault e lidar com a recuperação usando a CLI do Azure.
Secrets Loader é de código aberto e contribuições são sempre bem-vindas! Se desejar adicionar recursos, corrigir bugs ou sugerir melhorias, sinta-se à vontade para:
Se você está cansado de gerenciar segredos manualmente em vários ambientes, o Secrets Loader é uma ferramenta simples e eficaz para agilizar o processo. Ao buscar segredos dinamicamente do AWS SSM e do CloudFormation, você pode gerenciar suas credenciais com segurança, sem correr o risco de exposição no controle de versão.
Confira o projeto no GitHub, experimente e, se achar útil, dê-nos um ⭐ no GitHub! Seu apoio ajuda o projeto a crescer e adoraríamos ouvir sua opinião feedback ou veja suas contribuições para seu desenvolvimento contínuo.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3