Atualmente, somos um aplicativo em execução em um único contêiner docker, o aplicativo precisa de todos os tipos de dados confidenciais para serem passados como variáveis de ambiente,
Estou colocando aqueles no comando de execução para que eles não acabem na imagem e depois em um repositório, no entanto, acabo com um comando de execução muito não seguro,
Agora, eu entendo que existem segredos do docker, no entanto, como posso usá-los sem implantar um cluster? ou existe alguma outra maneira de proteger esses dados?
Cumprimentos,
Sim , você pode usar segredos se usar um arquivo de composição . (Você não precisa executar um enxame).
Você usa um arquivo de composição com docker-compose : há documentação para "segredos" em um arquivo docker-compose.yml .
Mudei para docker-compose porque queria usar segredos. Estou feliz que eu fiz, parece muito mais limpo. Cada serviço é mapeado para um contêiner. E se você quiser mudar para a execução de um enxame, basicamente já está lá.
Observação: os segredos não são carregados no ambiente do contêiner, eles são montados em /run/secrets/
Aqui está um exemplo:
1) Estrutura do Projeto:
2) conteúdo docker-compose.yml:
3) conteúdo super_duper_secret.txt:
4) Execute este comando na raiz do projeto para ver se o contêiner tem acesso ao seu segredo (o Docker deve estar em execução e o docker-compose instalado):
Você deve ver seu contêiner produzir seu segredo.
Você não pode... Ele não suporta segredos sem Swarm. A menos que ''pode ser'' você ''enxame'' usando apenas um nó.
A outra solução seria, acho que usar um software de cofre de terceiros como este:
https://www.vaultproject.io/
Mas então, para usar os segredos em seus contêineres do Vault, você precisaria ler o documento.
Espero que isso traga você para o caminho certo para começar.