27.1 Recommandations en matière de sécurité

  • Aucune contrainte de ressources n'est définie par défaut pour les conteneurs Docker. Ainsi, chaque conteneur dispose d'un accès à toutes les ressources de l'UC et mémoire fournies par le kernel de l'hôte. Vous devez également vous assurer qu'un conteneur en cours d'exécution ne consomme pas plus de ressources et n'épuise pas les autres conteneurs en cours d'exécution en définissant des limites pour le volume de ressources utilisables par un conteneur.

    • Le conteneur Docker doit veiller à ce qu'une limite fixe soit appliquée à la mémoire utilisée par le conteneur à l'aide du drapeau --memory dans la commande docker run.

    • Le conteneur Docker doit veiller à ce qu'une limite soit appliquée à la quantité d'UC utilisée par un conteneur en cours d'exécution à l'aide du drapeau --cpuset-cpus dans la commande docker run.

  • Le drapeau --pids-limit doit avoir la valeur 300 pour restreindre le nombre de threads du kernel générés à tout moment dans le conteneur. Ceci permet d'éviter les attaques par déni de service (DoS).

  • Vous devez définir la stratégie de redémarrage de conteneur en cas d'échec sur la valeur 5 à l'aide du drapeau --restart dans la commande docker run.

  • Vous ne devez utiliser le conteneur REST qu'une fois que l'état de santé est Healthy (Sain) lorsque le conteneur est activé. Pour vérifier l'état de santé du conteneur, exécutez la commande suivante :

    docker ps <container_name/ID>
  • Le conteneur REST démarre toujours en tant qu'utilisateur non-root (nds). Par mesure de sécurité supplémentaire, activez la réassignation de l'espace de noms utilisateur sur le daemon pour éviter les attaques par élévation de privilèges à partir du conteneur. Pour plus d'informations sur la réassignation de l'espace de noms utilisateur, reportez-vous à la section Isolate containers with a user namespace (Isoler les conteneurs avec un espace de noms).