Em nosso ambiente nos preocupamos quanto ao uso de dados sensíveis, somos uma solução de pagamentos e devemos nos preocupar muito com segurança.
Seguindo a guia do 12factor, nos inspiramos em serviços como confd e vault, mas de forma simplificada e que utilizasse recursos da AWS, para simplificar nossas responsabilidades.
Estamos usando o seguinte fluxo:
Armazenamos dados sensíveis no dynamodb criptografados com kms
Gerenciamos nível de acesso às tabelas do dynamodb por serviço através de roles associados ao serviço no ECS-Fargate quando configuramos a infra que envolve o serviço no terraform.
o binário gcredstash intercepta as credenciais dentro do entrypoint preenchendo o arquivo configurado na variável DOTENV_PATH com os valores definidos da seguinte forma:
<nome-da-chave>={{get "<nome-da-chave>"}}
FROM pagarme/node:8.9
defina sua aplicação usando a variável APP_NAME e onde está seu .env para obter os valores da chave em DOTENV_PATH
seu .env deve seguir a nossa configuração de exemplo abaixo:
MY_KEY={{get "MY_KEY"}}
caso tenha seu próprio entrypoint em seu Docker, observe que precisamos executar nosso entrypoint antes de executar o da aplicação, então uma estratégia é contruir um entrypoint em cima do nosso e implementar da sua forma.
seja feliz e lembre de deixar essas chaves já configuradas em seu ambiente.
Caso queira ver um exemplo prático, basta vir aqui
Content type
Image
Digest
Size
25.5 MB
Last updated
over 8 years ago
docker pull pagarme/docker-nodejs