Bonnes pratiques pour les conteneurs

Cette page présente les bonnes pratiques à suivre pour créer et exécuter des images de conteneurs.

Créer des conteneurs

L'approche que vous adoptez pour créer des images de conteneurs peut avoir un impact sur la vitesse des compilations et des déploiements, ainsi que sur les efforts requis pour gérer vos images.

Découvrez les bonnes pratiques à suivre pour créer et exécuter des conteneurs plus facilement.

Vous pouvez également consulter les bonnes pratiques de Docker concernant la création d'images.

Travailler avec des conteneurs

Découvrez les bonnes pratiques pour l'exploitation de conteneurs. Ces pratiques incluent des recommandations en matière de sécurité, de surveillance et de journalisation qui facilitent l'exécution des applications dans Google Kubernetes Engine et dans les conteneurs en général.

Remarques concernant les registres publics

Réfléchissez bien aux cas suivants:

Utiliser des images provenant de sources publiques

Lorsque vous utilisez des images provenant de sources publiques telles que Docker Hub, vous introduisez du code que votre organisation ne contrôle pas dans votre chaîne d'approvisionnement logicielle. Pour atténuer les risques, vous pouvez:

  • Créez vos propres images pour contrôler le contenu des images.
  • Utilisez une image de base standardisée et basez-vous sur celle-ci.
  • Détectez les failles identifiées dans les images et corrigez les failles identifiées.
  • Appliquez des normes et des règles aux images que vous déployez.

En savoir plus sur les éléments à prendre en compte concernant les images publiques

Rendre vos registres publics

Vous pouvez rendre le registre public de votre projet Google Cloud en accordant à l'identité allUsers un accès en lecture sur le bucket de stockage du registre.

Si tous vos utilisateurs possèdent un compte Google Cloud, vous pouvez limiter l'accès aux utilisateurs authentifiés à l'aide de l'identité allAuthenticatedUsers.

Tenez compte des consignes suivantes avant de rendre un registre public:

  • Vérifiez que toutes les images que vous stockez dans le registre peuvent être partagées publiquement et qu'elles n'exposent pas d'identifiants, de données à caractère personnel ni de données confidentielles.
  • La sortie de réseau vous est facturée lorsque les utilisateurs extraient des images. Si vous prévoyez un grand nombre de téléchargements Internet, prenez en compte les coûts associés.
  • Par défaut, les projets disposent d'un quota par utilisateur illimité. Pour éviter les abus, limitez le quota par utilisateur dans votre projet.

Supprimer les images inutilisées

Supprimez les images de conteneurs inutilisées pour réduire les coûts de stockage et les risques liés à l'utilisation de logiciels plus anciens. Un certain nombre d'outils sont disponibles pour vous aider dans cette tâche, y compris gcr-cleaner. L'outil gcr-cleaner n'est pas un produit Google officiel.

Évaluer la sécurité des conteneurs

Le CIS (Center for Internet Security) dispose d'un benchmark Docker permettant d'évaluer la sécurité d'un conteneur Docker.

Docker fournit un script Open Source appelé Docker Bench for Security. Vous pouvez exécuter ce script pour vérifier qu'un conteneur Docker en cours d'exécution respecte certains critères du benchmark Docker du CIS.

Le script Docker Bench for Security vous permet de vérifier de nombreux éléments dans le benchmark Docker du CIS. Cependant, tous les éléments ne sont pas vérifiables avec le script. Par exemple, le script ne peut pas vérifier si l'hôte du conteneur est renforcé ou si l'image du conteneur inclut des données à caractère personnel. Examinez tous les éléments du benchmark et identifiez ceux qui peuvent nécessiter une validation supplémentaire.

Sécuriser les déploiements

Découvrez comment créer une chaîne d'approvisionnement logicielle sécurisée, et comment définir et appliquer des règles de déploiement à l'aide de l'analyse des failles et de l'autorisation binaire sur Google Cloud.

Vous pouvez également regarder une vidéo qui décrit comment sécuriser votre chaîne d'approvisionnement logicielle.