Introdução
Neste laboratório, você aprenderá como gerenciar efetivamente dados sensíveis dentro do seu ambiente Docker usando o comando docker secret create. Você explorará diferentes métodos para criar secrets (segredos), incluindo a leitura de dados da entrada padrão (STDIN) e de um arquivo.
O laboratório irá guiá-lo através do processo de criação de secrets com nomes específicos e de diferentes fontes. Você também aprenderá como adicionar labels (rótulos) aos seus secrets para uma melhor organização e como inspecionar os detalhes dos secrets que você criou para verificar seu conteúdo e configuração. Esta experiência prática irá equipá-lo com as habilidades fundamentais necessárias para proteger informações sensíveis ao implantar aplicações com Docker Swarm.
Criar um secret a partir de STDIN
Nesta etapa, você aprenderá como criar um Docker secret lendo dados da entrada padrão (STDIN). Isso é útil para fornecer informações sensíveis a um container sem armazená-las diretamente em um arquivo no sistema host.
Primeiro, vamos criar um secret simples contendo uma senha. Usaremos o comando echo para gerar a senha e canalizá-la para o comando docker secret create.
echo "mysecretpassword" | docker secret create my_password_secret -
Neste comando:
echo "mysecretpassword"gera a string "mysecretpassword" para a saída padrão.|é o operador pipe, que envia a saída do comandoechocomo entrada para o próximo comando.docker secret createé o comando para criar um novo Docker secret.my_password_secreté o nome que estamos dando a este secret.-diz aodocker secret createpara ler os dados do secret de STDIN.
Você deve ver o ID do secret recém-criado como saída.
Criar um secret a partir de um arquivo
Nesta etapa, você aprenderá como criar um Docker secret a partir do conteúdo de um arquivo. Este é um método comum para gerenciar secrets como chaves de API, certificados ou arquivos de configuração.
Primeiro, vamos criar um arquivo simples contendo alguns dados sensíveis. Criaremos um arquivo chamado api_key.txt no seu diretório home (~/project).
echo "my_super_secret_api_key_12345" > ~/project/api_key.txt
Este comando usa echo para escrever a string "my_super_secret_api_key_12345" no arquivo ~/project/api_key.txt.
Agora, criaremos um Docker secret usando o conteúdo deste arquivo.
docker secret create my_api_key_secret ~/project/api_key.txt
Neste comando:
docker secret createé o comando para criar um novo Docker secret.my_api_key_secreté o nome que estamos dando a este secret.~/project/api_key.txté o caminho para o arquivo contendo os dados do secret. O Docker lerá o conteúdo deste arquivo e o armazenará como o secret.
Você deve ver o ID do secret recém-criado como saída.
Criar um secret com labels
Nesta etapa, você aprenderá como adicionar labels (rótulos) a um Docker secret quando você o cria. Labels são pares chave-valor que você pode anexar a objetos Docker para ajudar a organizá-los e identificá-los. Isso é particularmente útil em implantações maiores.
Criaremos outro secret a partir de STDIN, mas desta vez adicionaremos labels a ele.
echo "anothersecretvalue" | docker secret create --label env=production --label app=webserver my_labeled_secret -
Neste comando:
echo "anothersecretvalue"fornece os dados do secret via STDIN.docker secret createé o comando para criar o secret.--label env=productionadiciona um label com a chaveenve o valorproduction.--label app=webserveradiciona outro label com a chaveappe o valorwebserver. Você pode adicionar múltiplos labels repetindo a flag--label.my_labeled_secreté o nome do secret.-indica que os dados do secret devem ser lidos de STDIN.
Você deve ver o ID do secret recém-criado como saída. Adicionar labels ajuda você a categorizar seus secrets, tornando-os mais fáceis de gerenciar e filtrar posteriormente.
Inspecionar o secret criado
Nesta etapa, você aprenderá como inspecionar os detalhes de um Docker secret usando o comando docker secret inspect. Este comando fornece informações detalhadas sobre um secret, incluindo seu ID, nome, tempo de criação e quaisquer labels (rótulos) associados a ele.
Vamos inspecionar o secret que criamos na etapa anterior, my_labeled_secret.
docker secret inspect my_labeled_secret
Este comando exibirá um objeto JSON contendo os detalhes do my_labeled_secret. Você deve ver informações como o ID do secret, seu nome (my_labeled_secret), o tempo em que foi criado e os labels que adicionamos (env=production e app=webserver).
Observe que os dados reais do secret não são exibidos quando você inspeciona um secret, por razões de segurança.
Você também pode inspecionar os outros secrets que criamos:
docker secret inspect my_password_secret
docker secret inspect my_api_key_secret
Inspecionar secrets é uma maneira útil de verificar sua existência, verificar sua configuração e confirmar se os labels foram aplicados corretamente.
Resumo
Neste laboratório, você aprendeu como gerenciar efetivamente dados sensíveis dentro do Docker usando o comando docker secret create. Você praticou a criação de secrets lendo dados diretamente da entrada padrão (STDIN), o que é útil para evitar o armazenamento de informações sensíveis em arquivos no host. Você também aprendeu como criar secrets a partir do conteúdo de um arquivo, um método comum para gerenciar vários tipos de dados sensíveis, como chaves de API ou certificados.
Além disso, você explorou como aprimorar o gerenciamento de secrets adicionando labels (rótulos) durante a criação, permitindo uma melhor organização e identificação dos secrets. Finalmente, você aprendeu como inspecionar os detalhes dos secrets criados para verificar sua configuração e conteúdo (embora os detalhes completos da etapa de inspeção não tenham sido fornecidos no resumo). Essas técnicas fornecem maneiras seguras de lidar com informações sensíveis dentro do seu ambiente Docker.



