Maison  >  Article  >  Opération et maintenance  >  Quelles sont les fonctionnalités de sécurité de Docker ?

Quelles sont les fonctionnalités de sécurité de Docker ?

青灯夜游
青灯夜游original
2022-01-28 15:21:423003parcourir

Les fonctionnalités de sécurité de Docker incluent : 1. ID de nœud crypté ; 2. Mécanisme d'authentification basé sur TLS ; 3. Jeton d'accès sécurisé ; 4. Configuration CA qui prend en charge le renouvellement automatique des certificats périodiques ; 6. Réseau de cryptage ; 7. Analyse de sécurité Docker ; 8. Confiance du contenu Docker ; 9. Clé Docker, etc.

Quelles sont les fonctionnalités de sécurité de Docker ?

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version docker-1.13.1, ordinateur Dell G3.

La plateforme Docker introduit également un grand nombre de ses propres technologies de sécurité. Le mode Swarm est construit sur TLS et est extrêmement simple et flexible à configurer. Les analyses de sécurité analysent les images au niveau du code source binaire et fournissent des rapports détaillés sur les failles connues.

Docker Content Trust permet aux utilisateurs de signer et de certifier du contenu, et les clés sont désormais des citoyens de premier ordre dans Docker. Docker définit des valeurs par défaut raisonnables pour ces technologies de sécurité, mais les utilisateurs peuvent également modifier la configuration ou désactiver ces technologies de sécurité.

Mode Swarm

Le mode Swarm est la future tendance de Docker. Le mode Swarm permet aux utilisateurs de gérer plusieurs hôtes Docker dans un cluster et de déployer des applications de manière déclarative.

Chaque Swarm est composé de nœuds gestionnaire et travailleur, et les nœuds peuvent être Linux ou Windows. Le nœud gestionnaire forme la couche de contrôle dans le cluster et est responsable de la configuration du cluster et de la répartition de la charge de travail. Les nœuds de travail sont des conteneurs qui exécutent le code d'application.

Comme prévu, le mode Swarm inclut de nombreuses fonctionnalités de sécurité prêtes à l'emploi, tout en définissant également des paramètres par défaut raisonnables. Ces fonctionnalités de sécurité sont les suivantes.

  • ID de nœud crypté.

  • Mécanisme d'authentification basé sur TLS.

  • Jeton d'accès sécurisé.

  • Prend en charge la configuration de l'autorité de certification pour la mise à jour automatique périodique du certificat.

  • Stockage de cluster crypté (base de données de configuration).

  • Réseau crypté.

Docker Security Scan

La capacité de trouver rapidement les failles du code est cruciale. Docker Security Scanning facilite la détection des failles connues dans les images Docker.

L'analyse de sécurité Docker est désormais disponible pour les images de référentiel privé sur Docker Hub. Dans le même temps, cette technologie peut également être utilisée dans le cadre de la solution de déploiement de services de localisation de confiance Docker. Enfin, toutes les images Docker officielles ont été analysées en matière de sécurité et les rapports d'analyse sont disponibles dans leurs référentiels.

L'analyse de sécurité Docker analyse les images Docker au niveau du code binaire et vérifie les logiciels qu'elles contiennent par rapport à une base de données de vulnérabilités connues (base de données CVE). Une fois l'analyse terminée, un rapport détaillé est généré.

Ouvrez un navigateur pour visiter Docker Hub et recherchez le référentiel Alpine. L'image ci-dessous montre l'onglet Tags du référentiel officiel Alpine.

Quelles sont les fonctionnalités de sécurité de Docker ?

L'entrepôt Alpine est un entrepôt officiel, ce qui signifie que l'entrepôt scannera et générera automatiquement les rapports correspondants. Comme vous pouvez le constater, les images avec les balises d'image edge, lates et 3.6 ont toutes réussi la vérification des défauts connus. Cependant, l'image alpine:3.5 présente des défauts connus (marqués en rouge).

Si vous ouvrez l'image alpine:3.5, vous pouvez trouver les informations détaillées comme indiqué ci-dessous.

Quelles sont les fonctionnalités de sécurité de Docker ?

C'est un moyen simple de découvrir les détails des failles connues dans votre propre logiciel.

Docker Trusted Registry (DTR) fait partie du service d'entrepôt d'images localisées dans Docker Enterprise Edition. Il offre les mêmes fonctionnalités et permet également aux utilisateurs de contrôler leurs propres délais et méthodes de numérisation d'images.

Par exemple, DTR permet aux utilisateurs de choisir si l'image doit déclencher automatiquement la numérisation lorsqu'elle est enfoncée, ou uniquement manuellement. Dans le même temps, DTR permet également aux utilisateurs de mettre à jour manuellement la base de données CVE, ce qui constitue une solution idéale pour les scénarios dans lesquels DTL ne peut pas se connecter à Internet pour mettre à jour automatiquement les données CVE.

Il s'agit de l'analyse de sécurité Docker, un excellent moyen de détecter en profondeur si les images Docker présentent des failles de sécurité connues. Bien entendu, une plus grande capacité s’accompagne d’une plus grande responsabilité. Lorsque les utilisateurs découvrent des défauts, ils doivent assumer la responsabilité de résoudre les défauts correspondants.

Docker Content Trust

Dockr Content Trust (Docker Content Trust, DCT) permet aux utilisateurs de confirmer facilement l'intégrité des images téléchargées et de leurs éditeurs. Ceci est important lors du téléchargement d’images dans un environnement réseau non fiable.

À un niveau élevé, DCT permet aux développeurs de signer des images publiées sur Docker Hub ou Docker Trusted Services. Lorsque ces images seront extraites, le statut de la signature sera automatiquement confirmé. L'image ci-dessous illustre ce processus.

Quelles sont les fonctionnalités de sécurité de Docker ?

DCT peut également fournir un contexte clé, par exemple si l'image a été signée et peut être utilisée dans des environnements de production, si l'image a été remplacée par une nouvelle version et devient obsolète, etc.

Le contexte fourni par DTC en est encore à ses balbutiements et est assez complexe à configurer. Pour activer la fonctionnalité DCT sur un hôte Docker, il vous suffit de définir la variable DOCKER_CONTENT_TRUST sur 1 dans votre environnement.

$ export DOCKER_CONTENT_TRUST=1

Dans les environnements réels, les utilisateurs peuvent souhaiter activer cette fonctionnalité par défaut dans le système.

Si vous utilisez la couche de configuration unifiée Docker (qui fait partie de Docker Enterprise Edition), vous devez cocher la case Exécuter uniquement les images signées, comme indiqué dans la figure ci-dessous. Cela forcera tous les nœuds du cluster UCP à exécuter uniquement des images signées.

Quelles sont les fonctionnalités de sécurité de Docker ?

Comme le montre la figure ci-dessus, UCP est en outre encapsulé sur la base de DCT pour fournir des informations sur les préférences de sécurité pour les images signées. Par exemple, un utilisateur peut exiger que seules les images signées par secops puissent être utilisées dans un environnement de production.

Une fois la fonction DCT activée, les images non signées ne peuvent pas être obtenues et utilisées. La figure suivante montre l'erreur signalée lors de la tentative d'extraction d'une image non signée via l'interface Docker CLI ou UCP Web UI après l'activation de DCT (les deux exemples tentent d'extraire l'image avec l'étiquette « non signée »).

Quelles sont les fonctionnalités de sécurité de Docker ?

L'image ci-dessous montre comment DCT empêche le client Docker d'extraire une image falsifiée.

Quelles sont les fonctionnalités de sécurité de Docker ?

L'image ci-dessous montre comment DCT empêche les clients d'extraire d'anciennes images.

Quelles sont les fonctionnalités de sécurité de Docker ?

La confiance dans le contenu Docker est une technologie très importante qui peut aider les utilisateurs à vérifier les images extraites du service Docker. Le mode de base de cette technologie est très simple à configurer, mais certaines fonctionnalités avancées comme le contexte sont encore très compliquées à configurer à ce stade.

Docker Key

De nombreuses applications nécessitent des clés. Tels que les mots de passe, les certificats TLS, les clés SSH, etc.

Avant la version 1.13 de Docker, il n'existait aucun moyen standard et sécurisé de partager des clés entre applications. Une méthode courante consiste pour les développeurs à écrire la clé sous forme de texte dans une variable d'environnement. C'est loin d'être idéal.

Docker1.13 introduit les clés Docker, transformant les clés en citoyens de première classe dans l'écosystème Docker. Par exemple, une nouvelle sous-commande docker secret a été ajoutée pour gérer les clés. Il existe également un emplacement dédié pour créer et gérer des clés dans l'interface UCP de Docker.

En arrière-plan, la clé est cryptée après la création et pendant la transmission, est montée sur le système de fichiers mémoire lorsqu'elle est utilisée et n'est accessible qu'aux services autorisés. Il s’agit véritablement d’une solution complète de bout en bout.

L'image ci-dessous montre le processus global.

Quelles sont les fonctionnalités de sécurité de Docker ?

Chaque étape du flux de travail présenté dans l'image ci-dessus est présentée tour à tour.

1) La clé est créée et envoyée à Swarm.

2) La clé est stockée dans le stockage du cluster et est cryptée (chaque nœud gestionnaire peut accéder au stockage du cluster).

3) Le service B est créé et la clé est utilisée.

4) Le processus de transmission de la clé au nœud de tâche (conteneur) du service B est crypté.

5) Le conteneur du service B déchiffre la clé et la monte sur le chemin /run/secrets. Il s'agit d'un système de fichiers en mémoire temporaire (cette étape est différente dans Windows Docker car il n'y a pas de concept de système de fichiers en mémoire sous Windows).

6) Une fois le conteneur (tâche de service) terminé, le système de fichiers mémoire est fermé et la clé est supprimée.

7) Les conteneurs en service A ne peuvent pas accéder à la clé.

Les utilisateurs peuvent gérer les clés via la sous-commande docker secret et spécifier une clé pour un service en ajoutant --secret lors de l'exécution de la commande docker service create.

Apprentissage recommandé : "Tutoriel vidéo Docker"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn