76 votes

Comment utiliser les secrets de docker sans un cluster swarm ?

Actuellement, nous avons une application en cours d'exécution sur un seul conteneur docker, l'application a besoin de toutes sortes de données sensibles à passer comme variables d'environnement,

Je les mets dans la commande d'exécution pour qu'ils ne se retrouvent pas dans l'image et ensuite dans un dépôt, mais je me retrouve avec une commande d'exécution très peu sécurisée,

Maintenant, je comprends que les secrets docker existent, cependant, comment puis-je les utiliser sans déployer un cluster ? ou y a-t-il un autre moyen de sécuriser ces données ?

Meilleures salutations,

87voto

Oui vous pouvez utiliser des secrets si vous utilisez un composer un fichier . (Vous n'avez pas besoin d'exécuter un essaim).

Vous utilisez un fichier de composition avec docker-compose : il y a documentation pour "secrets" dans un fichier docker-compose.yml .

Je suis passé à docker-compose parce que je voulais utiliser des secrets. Je suis heureux de l'avoir fait, cela semble beaucoup plus propre. Chaque service correspond à un conteneur. Et si vous voulez un jour passer à l'exécution d'un essaim, vous y êtes déjà.

Note : Les secrets ne sont pas chargés dans l'environnement du conteneur, ils sont montés dans le répertoire /run/secrets/.

Voici un exemple :

1) Structure du projet :

|
|---    docker-compose.yml
|---    super_duper_secret.txt

2) Contenu du fichier docker-compose.yml :

version: "3.6"

services:

  my_service:
    image: centos:7
    entrypoint: "cat /run/secrets/my_secret"
    secrets:
      - my_secret

secrets:
  my_secret:
    file: ./super_duper_secret.txt

3) Contenu de super_duper_secret.txt :

Whatever you want to write for a secret really.

4) Exécutez cette commande depuis la racine du projet pour vérifier que le conteneur a bien accès à votre secret (Docker doit être en cours d'exécution et docker-compose installé) :

docker-compose up --build my_service

Vous devriez voir votre conteneur sortir votre secret.

13voto

Dichotomy2207 Points 11

Tu ne peux pas... Il ne supporte pas les secrets sans Swarm. A moins que vous n'utilisiez un seul noeud pour l'essaimage.

L'autre solution serait, je pense, d'utiliser un logiciel de coffre-fort tiers comme celui-ci :

https://www.vaultproject.io/

Mais alors, pour utiliser les secrets dans vos conteneurs à partir de Vault, vous auriez besoin de lire la doc.

J'espère que cela vous mettra sur la bonne voie pour commencer.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X