Contrôles Amazon ECS - AWS Security Hub

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Contrôles Amazon ECS

Ces contrôles sont liés aux ressources Amazon ECS.

Il est possible que ces commandes ne soient pas toutes disponiblesRégions AWS. Pour en savoir plus, consultez Disponibilité des contrôles par région.

[ECS.1] Les définitions de tâches Amazon ECS doivent comporter des modes réseau et des définitions d'utilisateur sécurisés.

Exigences connexes : NIST.800-53.R5 AC-2 (1), NIST.800-53.R5 AC-3, NIST.800-53.R5 AC-3 (15), NIST.800-53.R5 AC-3 (7), NIST.800-53.R5 AC-5, NIST.800-53.R5 AC-6

Catégorie : Protéger - Gestion de l'accès sécurisé

Gravité : Élevée

Type de ressource : AWS::ECS::TaskDefinition

Règle AWS Config : ecs-task-definition-user-for-host-mode-check

Type de calendrier : changement déclenché

Paramètres :

  • SkipInactiveTaskDefinitions: true

Ce contrôle vérifie si une définition de tâche Amazon ECS active avec le mode réseau hôte possède privileged ou non des définitions de user conteneur. Le contrôle échoue pour les définitions de tâches dont le mode réseau hôte et les définitions de privileged=false conteneur sont vides ou vides. user=root

Ce contrôle évalue uniquement la dernière révision active d'une définition de tâche Amazon ECS.

L'objectif de ce contrôle est de garantir que l'accès est défini intentionnellement lorsque vous exécutez des tâches utilisant le mode réseau hôte. Si une définition de tâche possède des privilèges élevés, c'est parce que vous avez choisi cette configuration. Ce contrôle vérifie l'absence d'augmentation inattendue des privilèges lorsqu'une définition de tâche a activé le réseau hôte et que vous ne choisissez pas de privilèges élevés.

Correction

Pour plus d'informations sur la mise à jour d'une définition de tâche, consultez la section Mise à jour d'une définition de tâche dans le manuel Amazon Elastic Container Service Developer Guide.

Lorsque vous mettez à jour une définition de tâche, elle ne met pas à jour les tâches en cours qui ont été lancées à partir de la définition de tâche précédente. Pour mettre à jour une tâche en cours d'exécution, vous devez la redéployer avec la nouvelle définition de tâche.

[ECS.2] Aucune adresse IP publique ne doit être attribuée automatiquement aux services ECS

Exigences connexes : NIST.800-53.R5 AC-21, NIST.800-53.R5 AC-3, NIST.800-53.R5 AC-3 (7), NIST.800-53.R5 AC-4, NIST.800-53.R5 AC-4 (21), NIST.800-53.R5 AC-6, NIST.800-53.R5 SC-7, NIST.800-53.R5 SC-7 (11), NIST.800-53.R5 SC-7 (11), NIST.800-53.R5 800-53.R5 SC-7 (16), NIST.800-53.R5 SC-7 (20), NIST.800-53.R5 SC-7 (21), NIST.800-53.R5 SC-7 (3), NIST.800-53.R5 SC-7 (4), NIST.800-53.R5 SC-7 (9)

Catégorie : Protéger > Configuration réseau sécurisée > Ressources non accessibles au public

Gravité : Élevée

Type de ressource : AWS::ECS::Service

AWS Configrègle : ecs-service-assign-public-ip-disabled (règle Security Hub personnalisée)

Type de calendrier : changement déclenché

Paramètres :

  • exemptEcsServiceArns (Facultatif). Security Hub ne renseigne pas ce paramètre. Liste séparée par des virgules des ARN des services Amazon ECS exemptés de cette règle.

    Cette règle s'COMPLIANTapplique si un service Amazon ECS est AssignPublicIP défini sur ENABLED et est spécifié dans cette liste de paramètres.

    Cette règle NON_COMPLIANT s'applique si un service Amazon ECS est AssignPublicIP défini sur cette liste de paramètres ENABLED et n'est pas spécifié dans cette liste de paramètres.

Ce contrôle vérifie si les services Amazon ECS sont configurés pour attribuer automatiquement des adresses IP publiques. Ce contrôle échoue si tel AssignPublicIP est le casENABLED. Ce contrôle passe si tel AssignPublicIP est le casDISABLED.

Une adresse IP publique est une adresse IP accessible depuis Internet. Si vous lancez vos instances Amazon ECS avec une adresse IP publique, elles sont accessibles depuis Internet. Les services Amazon ECS ne doivent pas être accessibles au public, car cela peut permettre un accès involontaire à vos serveurs d'applications de conteneurs.

Correction

Pour désactiver l'attribution automatique d'adresses IP publiques, consultez la section Pour configurer les paramètres des VPC et des groupes de sécurité pour votre service dans le manuel Amazon Elastic Container Service Developer Guide.

[ECS.3] Les définitions de tâches ECS ne doivent pas partager l'espace de noms de processus de l'hôte

Exigences connexes : NIST.800-53.R5 CA-9 (1), NIST.800-53.R5 CM-2

Catégorie : Identifier > Configuration des ressources

Gravité : Élevée

Type de ressource : AWS::ECS::TaskDefinition

AWS Configrègle : ecs-task-definition-pid-mode-check

Type de calendrier : changement déclenché

Paramètres : Aucun

Ce contrôle vérifie si les définitions de tâches Amazon ECS sont configurées pour partager l'espace de noms de processus d'un hôte avec ses conteneurs. Le contrôle échoue si la définition de tâche partage l'espace de noms de processus de l'hôte avec les conteneurs qui y sont exécutés. Ce contrôle évalue uniquement la dernière révision active d'une définition de tâche Amazon ECS.

Un espace de noms d'ID de processus (PID) permet de séparer les processus. Il empêche les processus du système d'être visibles et permet de réutiliser les PID, y compris le PID 1. Si l'espace de noms PID de l'hôte est partagé avec des conteneurs, cela permettra aux conteneurs de voir tous les processus du système hôte. Cela réduit l'avantage de l'isolation au niveau du processus entre l'hôte et les conteneurs. Ces circonstances peuvent entraîner un accès non autorisé aux processus sur l'hôte lui-même, y compris la capacité de les manipuler et d'y mettre fin. Les clients ne doivent pas partager l'espace de noms de processus de l'hôte avec les conteneurs qui s'exécutent sur celui-ci.

Correction

Pour configurer la définition pidMode d'une tâche, consultez la section Paramètres de définition de tâche dans le guide du développeur Amazon Elastic Container Service.

[ECS.4] Les conteneurs ECS doivent fonctionner comme des conteneurs non privilégiés

Exigences connexes : NIST.800-53.R5 AC-2 (1), NIST.800-53.R5 AC-3, NIST.800-53.R5 AC-3 (15), NIST.800-53.R5 AC-3 (7), NIST.800-53.R5 AC-5, NIST.800-53.R5 AC-6

Catégorie : Protection > Gestion des accès sécurisés > Restrictions d'accès des utilisateurs root

Gravité : Élevée

Type de ressource : AWS::ECS::TaskDefinition

Règle AWS Config : ecs-containers-nonprivileged

Type de calendrier : changement déclenché

Paramètres : Aucun

Ce contrôle vérifie si le privileged paramètre de la définition du conteneur des définitions de tâches Amazon ECS est défini surtrue. Le contrôle échoue si ce paramètre est égal àtrue. Ce contrôle évalue uniquement la dernière révision active d'une définition de tâche Amazon ECS.

Nous vous recommandons de supprimer les privilèges élevés de vos définitions de tâches ECS. Lorsque le paramètre de privilège est définitrue, le conteneur reçoit des privilèges élevés sur l'instance du conteneur hôte (comme l'utilisateur root).

Correction

Pour configurer le privileged paramètre sur une définition de tâche, consultez la section Paramètres avancés de définition de conteneur dans le manuel Amazon Elastic Container Service Developer Guide.

[ECS.5] Les conteneurs ECS devraient être limités à l'accès en lecture seule aux systèmes de fichiers racine

Exigences connexes : NIST.800-53.R5 AC-2 (1), NIST.800-53.R5 AC-3, NIST.800-53.R5 AC-3 (15), NIST.800-53.R5 AC-3 (7), NIST.800-53.R5 AC-5, NIST.800-53.R5 AC-6

Catégorie : Protéger - Gestion de l'accès sécurisé

Gravité : Élevée

Type de ressource : AWS::ECS::TaskDefinition

Règle AWS Config : ecs-containers-readonly-access

Type de calendrier : changement déclenché

Paramètres : Aucun

Ce contrôle vérifie si les conteneurs Amazon ECS sont limités à l'accès en lecture seule aux systèmes de fichiers racines montés. Le contrôle échoue si le readonlyRootFilesystem paramètre est défini sur false ou s'il n'existe pas dans la définition du conteneur au sein de la définition de tâche. Ce contrôle évalue uniquement la dernière révision active d'une définition de tâche Amazon ECS.

L'activation de cette option réduit les vecteurs d'attaques de sécurité, car le système de fichiers de l'instance de conteneur ne peut pas être altéré ni écrit à moins qu'il ne dispose d'autorisations de lecture-écriture explicites sur le dossier et les répertoires de son système de fichiers. Ce contrôle respecte également le principe du moindre privilège.

Correction

Limiter les définitions de conteneurs à l'accès en lecture seule aux systèmes de fichiers racine
  1. Ouvrez la console Amazon ECS Classic à l'adresse https://console.aws.amazon.com/ecs/.

  2. Dans le volet de navigation de gauche, sélectionnez Définitions de tâches.

  3. Sélectionnez une définition de tâche dont les définitions de conteneur doivent être mises à jour. Pour chacune d'entre elles, procédez comme suit :

    • Dans le menu déroulant, choisissez Créer une nouvelle révision avec JSON.

    • Ajoutez le readonlyRootFilesystem paramètre et définissez-le sur true dans la définition du conteneur au sein de la définition de tâche.

    • Sélectionnez Create (Créer).

[ECS.8] Les secrets ne doivent pas être transmis en tant que variables d'environnement de conteneur

Exigences connexes : NIST.800-53.R5 CA-9 (1), NIST.800-53.R5 CM-2

Catégorie : Protéger > Développement sécurisé > Informations d'identification non codées en dur

Gravité : Élevée

Type de ressource : AWS::ECS::TaskDefinition

Règle AWS Config : ecs-no-environment-secrets

Type de calendrier : changement déclenché

Paramètres :

  • Clés secrètes =AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY ECS_ENGINE_AUTH_DATA

Ce contrôle vérifie si la valeur clé de l'une des variables du environment paramètre des définitions de conteneur inclut AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, ouECS_ENGINE_AUTH_DATA. Ce contrôle échoue si une seule variable d'environnement dans une définition de conteneur est égale à AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, ouECS_ENGINE_AUTH_DATA. Ce contrôle ne couvre pas les variables environnementales transmises depuis d'autres sites tels qu'Amazon S3. Ce contrôle évalue uniquement la dernière révision active d'une définition de tâche Amazon ECS.

AWS Systems ManagerParameter Store peut vous aider à améliorer le niveau de sécurité de votre organisation. Nous vous recommandons d'utiliser le Parameter Store pour stocker les secrets et les informations d'identification au lieu de les transmettre directement à vos instances de conteneur ou de les coder en dur dans votre code.

Correction

Pour créer des paramètres à l'aide de SSM, reportez-vous à la section Création de paramètres de Systems Manager dans le guide de AWS Systems Manager l'utilisateur. Pour plus d'informations sur la création d'une définition de tâche spécifiant un secret, consultez la section Spécification de données sensibles à l'aide de Secrets Manager dans le manuel Amazon Elastic Container Service Developer Guide.

[ECS.9] Les définitions de tâches ECS doivent avoir une configuration de journalisation

Exigences connexes : NIST.800-53.R5 AC-4 (26), NIST.800-53.R5 AU-10, NIST.800-53.R5 AU-12, NIST.800-53.R5 AU-2, Nist.800-53.R5 AU-3, NIST.800-53.R5 AU-6 (3), NIST.800-53.R5 AU-6 (4), NIST.800-53.R5 CA-7, NiST.800-53.R5 .800-53.R5 SC-7 (9), NIST.800-53.R5 SI-7 (8)

Catégorie : Identifier - Journalisation

Gravité : Élevée

Type de ressource : AWS::ECS::TaskDefinition

AWS Configrègle : ecs-task-definition-log -configuration

Type de calendrier : changement déclenché

Paramètres : Aucun

Ce contrôle vérifie si une configuration de journalisation est spécifiée pour la dernière définition de tâche Amazon ECS active. Le contrôle échoue si la logConfiguration propriété de la définition de tâche n'est pas définie ou si la valeur de logDriver est nulle dans au moins une définition de conteneur.

La journalisation vous aide à maintenir la fiabilité, la disponibilité et les performances d'Amazon ECS. La collecte de données à partir des définitions de tâches apporte de la visibilité, ce qui peut vous aider à déboguer les processus et à identifier la cause première des erreurs. Si vous utilisez une solution de journalisation qui n'a pas besoin d'être définie dans la définition des tâches ECS (telle qu'une solution de journalisation tierce), vous pouvez désactiver ce contrôle après vous être assuré que vos journaux sont correctement capturés et transmis.

Correction

Pour définir une configuration de journal pour vos définitions de tâches Amazon ECS, consultez Spécifier une configuration de journal dans votre définition de tâche dans le guide du développeur Amazon Elastic Container Service.

[ECS.10] Les services ECS Fargate doivent fonctionner sur la dernière version de la plateforme Fargate

Exigences connexes : NIST.800-53.R5 SI-2, NIST.800-53.R5 SI-2 (2), NIST.800-53.R5 SI-2 (4), NIST.800-53.R5 SI-2 (5)

Catégorie : Identifier > Gestion des vulnérabilités, des correctifs et des versions

Gravité : Moyenne

Type de ressource : AWS::ECS::Service

Règle AWS Config : ecs-fargate-latest-platform-version

Type de calendrier : changement déclenché

Paramètres :

  • latestLinuxVersion: 1.4.0

  • latestWindowsVersion: 1.0.0

Ce contrôle vérifie si les services Amazon ECS Fargate exécutent la dernière version de la plateforme Fargate. Ce contrôle échoue si la version de la plateforme n'est pas la plus récente.

AWS Fargateles versions de plate-forme font référence à un environnement d'exécution spécifique pour l'infrastructure de tâches Fargate, qui est une combinaison de versions d'exécution du noyau et du conteneur. De nouvelles versions de plate-forme sont publiées au fur et à mesure de l'évolution de l'environnement d'exécution. Par exemple, une nouvelle version peut être publiée pour les mises à jour du noyau ou du système d'exploitation, les nouvelles fonctionnalités, les corrections de bogues ou les mises à jour de sécurité. Des mises à jour de sécurité et des correctifs sont déployés automatiquement pour vos tâches Fargate. Si un problème de sécurité affectant une version de la plateforme est détecté, AWS corrige cette version de la plateforme.

Correction

Pour mettre à jour un service existant, y compris sa version de plateforme, consultez la section Mise à jour d'un service dans le manuel Amazon Elastic Container Service Developer Guide.

[ECS.12] Les clusters ECS doivent utiliser Container Insights

Exigences connexes : NIST.800-53.R5 AU-6 (3), NIST.800-53.R5 AU-6 (4), NIST.800-53.R5 CA-7, NIST.800-53.R5 SI-2

Catégorie : Identifier - Journalisation

Gravité : Moyenne

Type de ressource : AWS::ECS::Cluster

Règle AWS Config : ecs-container-insights-enabled

Type de calendrier : changement déclenché

Paramètres : Aucun

Ce contrôle vérifie si les clusters ECS utilisent Container Insights. Ce contrôle échoue si Container Insights n'est pas configuré pour un cluster.

La surveillance joue un rôle important dans le maintien de la fiabilité, de la disponibilité et des performances des clusters Amazon ECS. Utilisez CloudWatch Container Insights pour collecter, agréger et résumer les métriques et les journaux de vos applications conteneurisées et de vos microservices. CloudWatch collecte automatiquement des métriques pour de nombreuses ressources, telles que le processeur, la mémoire, le disque et le réseau. Conteneur Insights fournit également des informations de diagnostic (par exemple sur les échecs de redémarrage des conteneurs) pour vous aider à isoler les problèmes et à les résoudre rapidement. Vous pouvez également définir des CloudWatch alarmes sur les métriques collectées par Container Insights.

Correction

Pour utiliser Container Insights, consultez la section Mettre à jour un service dans le guide de CloudWatch l'utilisateur Amazon.