Sélectionner une page


Les conteneurs changent la façon dont nous voyons les applications et les infrastructures. Indépendamment du fait que le code dans les conteneurs soit grand ou petit, l’architecture du conteneur introduit un changement dans le comportement de ce code avec le matériel – elle l’abstraction fondamentalement de l’infrastructure. Docker estime que la sécurité des conteneurs comporte trois composants clés qui, ensemble, conduisent à des applications intrinsèquement plus sécurisées.

Sécurité Docker

Un élément crucial dans la création d’applications sécurisées est la communication sécurisée avec d’autres applications et systèmes. Cela nécessite souvent des informations d’identification, des jetons, des mots de passe et d’autres types d’informations sensibles communément appelées secrets d’application. Nous sommes ravis de présenter Docker Secrets, une solution de conteneur native qui renforce le composant de livraison fiable de la sécurité des conteneurs en intégrant la distribution secrète directement dans la plate-forme de conteneur.

Avec les conteneurs, les applications sont désormais dynamiques et portables dans plusieurs environnements. Cela rendait les solutions de distribution secrètes existantes inadéquates car elles étaient largement conçues pour des environnements statiques. Malheureusement, cela a conduit à une augmentation de la mauvaise gestion des secrets d’application, ce qui a rendu courant la recherche de solutions non sûres et auto-développées, par ex. B. intégrer des secrets dans des systèmes de contrôle de version comme GitHub ou d’autres solutions rétrospectives tout aussi mauvaises.

Introduction à Docker Secrets Management

Fondamentalement, nous pensons que les applications sont plus sécurisées lorsqu’il existe une interface standardisée pour accéder aux secrets. Toute bonne solution doit également suivre les meilleures pratiques de sécurité, telles que: B. crypter les secrets pendant le transport. Cryptez les secrets en paix; Empêcher les secrets de fuir accidentellement lorsqu’ils sont consommés par l’application finale; et adhérer strictement au principe du moindre privilège, selon lequel une application n’a accès qu’aux secrets dont elle a besoin – ni plus, ni moins.

En intégrant des secrets dans l’orchestration Docker, nous pouvons fournir une solution au problème de gestion des secrets qui suit exactement ces principes.

Le diagramme suivant fournit une vue générale de la manière dont l’architecture du mode Swarm de Docker est appliquée pour fournir en toute sécurité un nouveau type d’objet à nos conteneurs: un objet secret.

Gestion des secrets Docker

Dans Docker, un secret est n’importe quel bloc de données, par exemple B. un mot de passe, une clé SSH privée, un certificat TLS ou d’autres données sensibles. Lorsque vous ajoutez un secret au béguin (en exécutant docker secret create) Docker envoie le secret au gestionnaire d’essaim via une connexion TLS authentifiée mutuellement, qui est utilisée organisme de certification intégré Ceci est créé automatiquement lorsqu’un nouvel essaim est démarré.

$ echo "This is a secret" | docker secret create my_secret_data -

Dès que le secret atteint un nœud de gestionnaire, il est stocké dans le stockage interne du Raft, qui utilise le Salsa20Poly1305 de NACL avec une clé de 256 bits pour garantir que les données ne sont jamais écrites sur le disque dur sans cryptage. L’écriture dans la mémoire interne donne des secrets La même haute disponibilité garantit l’accès au reste des données de gestion des essaims.

Lors du démarrage d’un gestionnaire d’essaim, les journaux de radeau chiffrés contenant les secrets sont déchiffrés à l’aide d’une clé de chiffrement de données unique à chaque nœud. Cette clé et les informations d’identification TLS du nœud utilisées pour communiquer avec le reste du cluster peuvent être chiffrées à l’aide d’une clé de chiffrement de clé à l’échelle du cluster, la clé de déverrouillage, qui est également partagée avec Raft et est requise au démarrage du gestionnaire.

Lorsque vous accordez l’accès à un secret à un service nouvellement créé ou en cours d’exécution, l’un des nœuds de gestionnaire (seuls les gestionnaires ont accès à tous les secrets stockés) l’envoie via la connexion TLS déjà établie exclusivement aux nœuds exécutant ce service spécifique. Cela signifie que les nœuds ne peuvent pas demander les secrets eux-mêmes et ne peuvent accéder aux secrets que s’ils sont fournis par un gestionnaire – uniquement pour les services dont ils ont besoin.

$ docker service  create --name="redis" --secret="my_secret_data" redis:alpine

le Le secret non chiffré est intégré dans un système de fichiers en mémoire dans le conteneur / run / Secrets / .

$ docker exec $(docker ps --filter name=redis -q) ls -l /run/secrets
total 4
-r--r--r--    1 root     root            17 Dec 13 22:48 my_secret_data

Si un service est supprimé ou replanifié ailleurs, le gestionnaire avertit immédiatement tous les nœuds qui n’ont plus besoin d’accéder à ce secret pour le supprimer de la mémoire, et le nœud n’a plus accès à ce secret d’application.

$ docker service update --secret-rm="my_secret_data" redis

$ docker exec -it $(docker ps --filter name=redis -q) cat /run/secrets/my_secret_data

cat: can't open '/run/secrets/my_secret_data': No such file or directory

Visiter le Documents secrets Docker Plus d’informations et d’exemples sur la façon de créer et de gérer vos secrets. Et un salut spécial à Laurens Van Houtven (https://www.lvh.io/) en collaboration avec l’équipe de sécurité et d’ingénierie de Docker pour faire de cette fonction une réalité.

Sécurité Docker

Applications plus sûres avec Docker

Les secrets Docker peuvent facilement être utilisés par les développeurs et les équipes opérationnelles informatiques pour créer et exécuter des applications plus sécurisées. Docker Secrets est une architecture axée sur le conteneur conçue pour protéger les secrets. Il n’est utilisé que lorsque requis par le conteneur exact qui a besoin de ce secret pour fonctionner. De la définition des applications et des secrets avec Docker Compose à un administrateur informatique qui rend ce fichier Compose disponible directement dans le centre de données Docker, les services, secrets, réseaux et volumes sont transférés en toute sécurité avec l’application.

Ressources pour en savoir plus:



Source link

Recent Posts