Étant donné que vous avez un service d' myapp
et un secrets fichier secrets.yml
:
Créer un fichier composer:
version: '3.1'
services:
myapp:
build: .
secrets:
secrets_yaml
Disposition un secret à l'aide de cette commande:
docker secret create secrets_yaml secrets.yml
Déployer votre service à l'aide de cette commande:
docker deploy --compose-file docker-compose.yml myappstack
Maintenant, votre application peut accéder au dossier secret à l' /run/secrets/secrets_yaml
. Vous pouvez coder en dur le chemin d'accès dans votre application ou de créer un lien symbolique.
L'autre question
Cette réponse est probablement à la question "comment faites-vous votre disposition les secrets de votre menu fixe essaim de cluster".
La question initiale "comment gérez-vous le secret des valeurs avec menu fixe composé" implique que le docker-composition de fichier contient le secret des valeurs. Il n'a pas.
Il y a une autre question: "Où voulez-vous stocker les canonique source de l' secrets.yml
le fichier". C'est à vous de voir. Vous pouvez les stocker dans votre tête, imprimer sur une feuille de papier, utilisez un gestionnaire de mot de passe, utilisez un des secrets de l'application/de la base de données. Heck, vous pouvez même utiliser un dépôt git si c'est de façon sécuritaire lui-même. Bien sûr, ne jamais stocker à l'intérieur du système de fixation avec elle :)
Je recommanderais de la voûte. Pour stocker un secret:
# create a temporary secret file
cat secrets.yml | vault write secret/myappsecrets -
Pour récupérer un secret et le mettre dans votre panneau de l'essaim:
vault read -field=value secret/myappsecrets | docker secret create secrets_yaml -
Bien sûr, vous pouvez utiliser le panneau de cluster lui-même en tant que source unique de la vérité pour vous secrets, mais si votre panneau de cluster pauses, vous auriez perdu vos secrets. Donc, assurez-vous d'avoir une sauvegarde ailleurs.
La question posée personne
La troisième question (que personne n'a demandé), c'est comment à disposition de secrets pour les développeurs de machines'. Il peut être nécessaire quand il y a un service externe qui est impossible de se moquer localement ou une grande base de données qui est impossible à copier.
Encore une fois, docker n'a rien à faire avec elle (encore). Il n'a pas de listes de contrôle d'accès qui précisent que les développeurs ont accès à ce qui les secrets. Il n'a aucun mécanisme d'authentification.
La solution idéale semble être ceci:
- Un développeur s'ouvre certaines applications web.
- S'authentifie à l'aide de quelques-uns des signe sur le mécanisme.
- Des Copies de quelques longue liste d'
docker secret create
commandes et les exécute dans le terminal.
Nous avons encore à voir si une telle application s'affiche.