Outils de développement · Docker exécuté vers Docker compose converter
Exécuter des conteneurs en tant que root : quoi --user et user : changement et pourquoi
· Pourquoi c'est important
menu fixe conteneurs sécurité
Sauf indication contraire dans l'image, le processus dans votre conteneur est root. Cet article explique ce que cela signifie sur l'hôte, comment --user et l'utilisateur Compose: key le modifient, ainsi que les problèmes de propriété de fichiers qui en découlent.
Fichiers que vous ne pouvez pas supprimer : un montage de liaison est plein de fichiers appartenant à l'utilisateur racine après une exécution du conteneur
Fichiers que vous ne pouvez pas supprimer : un montage de liaison est plein de fichiers appartenant à l'utilisateur racine après une exécution du conteneur. Preuve : la sortie montée sur liaison peut exposer des incompatibilités d'identité que l'analyse ne peut pas diagnostiquer. Reproduisez l’identité d’exécution avec des littéraux jetables. Associez chaque occurrence source aux capacités de montage utilisateur ; réserver les espaces de noms et la propriété pour l'examen de la destination.
L'incident de sécurité révèle également qu'une limite distincte de l'incident de sécurité est que les commutateurs d'image USER et de point d'entrée nécessitent une inspection ou des sources d'image. Preuve : les commutateurs d'image USER et de point d'entrée nécessitent une inspection ou des sources d'image. Cette contrainte d’identité d’exécution est un point d’arrêt. Inspectez les capacités des montages utilisateur sans comportement de fabrication, puis documentez une vérification de l'hôte pour les espaces de noms et la propriété.
La racine à l'intérieur est la racine à l'extérieur — avec les paramètres d'espace de noms utilisateur par défaut, l'UID 0 dans le conteneur est l'UID 0 sur l'hôte pour les fichiers montés
La racine à l'intérieur est la racine à l'extérieur — avec les paramètres d'espace de noms utilisateur par défaut, l'UID 0 dans le conteneur est l'UID 0 sur l'hôte pour les fichiers montés. Preuve : les effets de l'hôte UID zéro dépendent de la configuration de l'espace de noms qui n'est pas lue ici. Tracez les jetons d’identité d’exécution dans les capacités de montage des utilisateurs. Séparez les valeurs ordonnées des champs de dernière valeur ; les espaces de noms et la propriété sont en dehors de la collection.
Une limite de mécanisme de sécurité connexe est la suivante. Une limite de grammaire de sécurité distincte est qu'un exemple 1000:1000 démontre la préservation et non la propriété. Preuve : un exemple 1000:1000 démontre des garanties de préservation et non de propriété. Utilisez ce fait d'identité d'exécution pour prédire un membre ou un scalaire dans les capacités de montage utilisateur. Vérifiez les avertissements avant de décider quoi que ce soit concernant les espaces de noms et la propriété.
--user devient utilisateur : — UID numérique : GID par rapport aux noms, et pourquoi le numérique est plus sûr lorsque l'image n'a pas de compte correspondant
--user devient utilisateur : — UID numérique : GID par rapport aux noms, et pourquoi le numérique est plus sûr lorsque l'image n'a pas de compte correspondant. Preuve : --user devient utilisateur et le texte numérique UID:GID est cité. Jugez la sérialisation de l’identité d’exécution à partir de son modèle. La citation dans les capacités de montage utilisateur protège les types mais ne donne aucune preuve opérationnelle des espaces de noms et de la propriété.
La deuxième observation de sérialisation de sécurité est qu'une limite de sortie de sécurité distincte est que read_only cap_drop et security_opt mappent alors que le mode sans racine ne le fait pas. Preuve : read_only cap_drop et security_opt mappent alors que le mode sans racine ne le fait pas. Cette sortie d'identité d'exécution sépare les paramètres du contexte indisponible. Gardez les capacités de montage des utilisateurs consultables et vérifiez les espaces de noms et la propriété de manière indépendante.
Images qui abandonnent déjà les privilèges – USER dans le Dockerfile et images qui changent d'utilisateur dans leur point d'entrée
Images qui suppriment déjà des privilèges : USER dans le Dockerfile et images qui changent d'utilisateur dans leur point d'entrée. Arrêtez-vous à l'exception d'identité d'exécution au lieu de deviner. Tout ajout de fonctionnalités de montage à proximité des utilisateurs nécessite une raison spécifique au déploiement liée aux espaces de noms et à la propriété.
Une autre contrainte d'exception de sécurité est qu'une limite distincte d'exception de sécurité est que le remappage de l'espace de noms et les contextes Kubernetes sont hors de portée. Preuve : le remappage des espaces de noms et les contextes Kubernetes sont hors de portée. Conservez la commande d'identité d'exécution d'origine à côté des avertissements. La comparaison montre ce que contiennent les capacités de montage utilisateur et quels espaces de noms et décisions de propriété restent manuels.
Exemple pratique : conversion de docker run --user 1000:1000 -v /srv/app:/app — l'utilisateur : clé et la propriété qui en résulte sur le disque
Exemple fonctionnel : conversion de docker run --user 1000:1000 -v /srv/app:/app — l'utilisateur : clé et la propriété qui en résulte sur le disque. Créez l’exemple d’identité d’exécution à partir de noms synthétiques. Assurez la traçabilité de chaque élément de capacités de montage utilisateur sans exposer les espaces de noms de production et les détails de propriété.
Le même exemple de sécurité démontre qu'une limite d'exemple de sécurité distincte est que l'identité devient visible à côté des montages et des fonctionnalités à examiner. Preuve : l'identité devient visible à côté des montures et des capacités d'examen. Le fait d’identité d’exécution couplé doit être visible dans les fonctionnalités de montage utilisateur. Enregistrez cette ligne et évitez les hypothèses sur les espaces de noms et la propriété.
Autres clés de renforcement – read_only, cap_drop : [ALL], security_opt no-new-privileges et Docker sans racine comme étape majeure
Autres clés de renforcement : read_only, cap_drop : [ALL], security_opt no-new-privileges et Docker sans racine comme étape la plus importante. Traduisez la conséquence de l’identité d’exécution en une différence observable de capacités de montage d’utilisateur. Docker est propriétaire des derniers espaces de noms et du verdict de propriété.
L'implémentation des conséquences de sécurité montre également qu'une limite distincte d'effet de sécurité est que la sortie montée en liaison peut exposer des incompatibilités d'identité que l'analyse ne peut pas diagnostiquer. Répartition des responsabilités en matière d'identité d'exécution : la conversion écrit les capacités de montage des utilisateurs, le référentiel supprime les secrets et les opérateurs valident les espaces de noms et la propriété.
Ce que cela ne couvre pas : configuration du remappage de l'espace de noms utilisateur et securityContext de Kubernetes
Ce que ceci ne couvre pas : la configuration du remappage de l'espace de noms utilisateur et le securityContext de Kubernetes. Limitez la portée de l’identité d’exécution aux branches de capacités de montage utilisateur indiquées ici. Les formulaires et valeurs par défaut voisins ne peuvent pas répondre aux questions sur les espaces de noms et la propriété.
Une limite de portée de sécurité supplémentaire découle d'une limite de sécurité distincte : les effets de l'hôte UID zéro dépendent de la configuration de l'espace de noms non lue ici. Traitez cette limite d’identité d’exécution comme une exclusion. Préférez les capacités de montage utilisateur précises aux suppositions sur les espaces de noms et la propriété.
À retenir : décidez qui est votre processus - et vérifiez que la sortie du convertisseur inclut l'utilisateur : avant d'afficher la pile
À retenir : décidez qui est votre processus - et vérifiez que la sortie du convertisseur inclut l'utilisateur : avant d'afficher la pile. Auditez l’identité d’exécution en tant qu’option source, champ de modèle, ligne de capacités de montage utilisateur et avertissement. Supprimez les secrets avant de vérifier les espaces de noms et la propriété.
Enfin, la source de sécurité confirme qu'une limite de décision de sécurité distincte est que --user devient utilisateur et que le texte numérique UID:GID est cité. Fermez l'identité d'exécution de manière étroite : les capacités de montage de l'utilisateur sont candidates ; les espaces de noms, la propriété et l'équivalence du shell ne sont pas des garanties.