Инструменты пользователя

Инструменты сайта


docker:swarm:secret

Управляйте конфиденциальными данными с помощью секретов Docker

В терминах служб Docker Swarm секрет— это блок данных, например пароль, закрытый ключ SSH, сертификат SSL или другой элемент данных, который не следует передавать по сети или хранить в незашифрованном виде в файле Docker или в исходный код вашего приложения. Вы можете использовать Docker secrets для централизованного управления этими данными и безопасной передачи их только тем контейнерам, которым необходим доступ к ним. Секреты шифруются во время передачи и при хранении в файле Docker swarm. Данный секрет доступен только тем службам, которым был предоставлен явный доступ к нему, и только во время выполнения данных служебных задач.

Вы можете использовать секреты для управления любыми конфиденциальными данными, которые нужны контейнеру во время выполнения, но вы не хотите хранить их в образе или в системе управления версиями, например:

  • Имена пользователей и пароли
  • TLS-сертификаты и ключи
  • SSH-ключи
  • Другие важные данные, такие как имя базы данных или внутреннего сервера
  • Общие строки или двоичное содержимое (размером до 500 КБ)

пример

Команда docker secret create считывает стандартный ввод, последний аргумент это файл, из которого нужно считать секрет.

vagrant@server1:~$ nano sec.txt
vagrant@server1:~$ docker secret create my_pass sec.txt 
lr087ew95yv8qps71c0lsvef0

или

vagrant@server1:~$ echo '123456' | docker secret create my_pass -
rbx59q8tq3fnkzkt8gf1bewc6

Создаем новый сервис с секретом

vagrant@server1:~$ docker service create --secret my_pass --name redis redis:latest
qlylu89e6punwsqlilrbi6jy1
overall progress: 1 out of 1 tasks 
1/1: running   [==================================================>] 
verify: Service converged 
 
vagrant@server1:~$ docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS      NAMES
ddf41e1c1d25   redis:latest   "docker-entrypoint.s…"   9 seconds ago   Up 9 seconds   6379/tcp   redis.1.yw0cxjkqr687ahwezfxkrynan
 
vagrant@server1:~$ docker exec -it redis.1.yw0cxjkqr687ahwezfxkrynan bash
root@ddf41e1c1d25:/run/secrets# cd /run/secrets/
root@ddf41e1c1d25:/run/secrets# ls
my_pass
root@ddf41e1c1d25:/run/secrets# cat my_pass 
123456
docker/swarm/secret.txt · Последние изменения: 2023/12/10 21:52 — werwolf