View a markdown version of this page

Couverture de l'exécution et résolution des problèmes pour les clusters Amazon ECS - Amazon GuardDuty

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.

Couverture de l'exécution et résolution des problèmes pour les clusters Amazon ECS

La couverture d'exécution pour les clusters Amazon ECS inclut les tâches exécutées sur AWS Fargate et les instances de conteneurs Amazon ECS 1.

Pour un cluster Amazon ECS qui s'exécute sur Fargate, la couverture d'exécution est évaluée au niveau de la tâche. La couverture d'exécution des clusters ECS inclut les tâches Fargate qui ont commencé à s'exécuter après que vous ayez activé la surveillance de l'exécution et la configuration automatisée des agents pour Fargate (ECS uniquement). Par défaut, une tâche Fargate est immuable. GuardDuty ne pourra pas installer l'agent de sécurité pour surveiller les conteneurs sur les tâches déjà en cours d'exécution. Pour inclure une telle tâche Fargate, vous devez arrêter et recommencer la tâche. Assurez-vous de vérifier si le service associé est pris en charge.

Pour plus d'informations sur le conteneur Amazon ECS, consultez la section Création de capacité.

Consultation des statistiques de couverture

Les statistiques de couverture pour les ressources Amazon ECS associées à votre propre compte ou à vos comptes membres correspondent au pourcentage de clusters Amazon ECS sains par rapport à l'ensemble des clusters Amazon ECS de la zone sélectionnée Région AWS. Cela inclut la couverture des clusters Amazon ECS associés à la fois aux instances Fargate et Amazon EC2. L'équation suivante représente cela comme suit :

( clusters/All Clusters sains) *100

Considérations

  • Les statistiques de couverture du cluster ECS incluent l'état de couverture des tâches Fargate ou des instances de conteneur ECS associées à ce cluster ECS. L'état de couverture des tâches Fargate inclut les tâches en cours d'exécution ou récemment terminées.

  • Dans l'onglet Couverture d'exécution des clusters ECS, le champ Instances de conteneurs couvertes indique l'état de couverture des instances de conteneur Amazon EC2 associées à votre cluster Amazon ECS.

    Si votre cluster Amazon ECS exécute uniquement le type de lancement Fargate, ce champ affiche un tiret (-) pour indiquer que le décompte n'est pas applicable. Un Fargate-only cluster n'a aucune instance de conteneur Amazon EC2 à couvrir.

  • Si votre cluster Amazon ECS est associé à une instance Amazon EC2 qui ne possède pas d'agent de sécurité, le cluster Amazon ECS aura également un statut de couverture défectueux.

    Pour identifier et résoudre le problème de couverture de l'instance Amazon EC2 associée, consultez la section relative Résolution des problèmes de couverture d'exécution d'Amazon EC2 aux instances Amazon EC2.

Choisissez l'une des méthodes d'accès pour consulter les statistiques de couverture de vos comptes.

Console
  • Connectez-vous à Console de gestion AWS et ouvrez la GuardDuty console à l'adresse https://console.aws.amazon.com/guardduty/.

  • Dans le volet de navigation, choisissez Runtime Monitoring.

  • Choisissez l'onglet Runtime coverage.

  • Dans l'onglet Couverture d'exécution des clusters ECS, vous pouvez consulter les statistiques de couverture agrégées en fonction de l'état de couverture de chaque cluster Amazon ECS disponible dans le tableau de liste des clusters.

    • Vous pouvez filtrer le tableau de la liste des clusters à l'aide des colonnes suivantes :

      • ID de compte

      • Nom du cluster

      • Type de gestion des agents

      • État de couverture

  • Si le statut de couverture de l'un de vos clusters Amazon ECS est insalubre, la colonne Problème inclut des informations supplémentaires sur la raison de ce statut.

    Si vos clusters Amazon ECS sont associés à une instance Amazon EC2, accédez à l'onglet Couverture de l'exécution de l'instance EC2 et filtrez par le champ Nom du cluster pour afficher le problème associé.

API/CLI
  • Exécutez l'ListCoverageAPI avec votre propre identifiant de détecteur valide, votre région actuelle et votre point de terminaison de service. Vous pouvez filtrer et trier la liste des instances à l'aide de cette API.

    • Vous pouvez modifier l'exemple de filter-criteria à l'aide de l'une des options suivantes pour CriterionKey :

      • ACCOUNT_ID

      • ECS_CLUSTER_NAME

      • COVERAGE_STATUS

      • MANAGEMENT_TYPE

    • Vous pouvez modifier l'exemple de AttributeName dans sort-criteria à l'aide des options suivantes :

      • ACCOUNT_ID

      • COVERAGE_STATUS

      • ISSUE

      • ECS_CLUSTER_NAME

      • UPDATED_AT

        Le champ est mis à jour uniquement lorsqu'une nouvelle tâche est créée dans le cluster Amazon ECS associé ou lorsque l'état de couverture correspondant est modifié.

    • Vous pouvez modifier la max-results valeur (jusqu'à 50).

    • detectorIdPour trouver les paramètres correspondant à votre compte et à votre région actuelle, consultez la page Paramètres de la https://console.aws.amazon.com/guardduty/ console ou exécutez l'ListDetectorsAPI.

    aws guardduty --region us-east-1 list-coverage --detector-id 12abc34d567e8fa901bc2d34e56789f0 --sort-criteria '{"AttributeName": "ECS_CLUSTER_NAME", "OrderBy": "DESC"}' --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"111122223333"}}] }' --max-results 5
  • Exécutez l'GetCoverageStatisticsAPI pour récupérer les statistiques agrégées de couverture en fonction dustatisticsType.

    • Vous pouvez modifier l'exemple de statisticsType sur l'une des options suivantes :

      • COUNT_BY_COVERAGE_STATUS— Représente les statistiques de couverture pour les clusters ECS agrégées par état de couverture.

      • COUNT_BY_RESOURCE_TYPE— Statistiques de couverture agrégées en fonction du type de AWS ressource figurant dans la liste.

      • Vous pouvez modifier l'exemple de filter-criteria dans la commande. Vous pouvez utiliser les options suivantes pour CriterionKey :

        • ACCOUNT_ID

        • ECS_CLUSTER_NAME

        • COVERAGE_STATUS

        • MANAGEMENT_TYPE

        • INSTANCE_ID

    • detectorIdPour trouver les paramètres correspondant à votre compte et à votre région actuelle, consultez la page Paramètres de la https://console.aws.amazon.com/guardduty/ console ou exécutez l'ListDetectorsAPI.

    aws guardduty --region us-east-1 get-coverage-statistics --detector-id 12abc34d567e8fa901bc2d34e56789f0 --statistics-type COUNT_BY_COVERAGE_STATUS --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"123456789012"}}] }'

Pour plus d'informations sur les problèmes de couverture, consultezRésolution des problèmes de couverture ECS-Fargate d'Amazon Runtime.

Modification de l'état de couverture avec EventBridge notifications

L'état de couverture de votre cluster Amazon ECS peut apparaître comme Non sain. Pour savoir à quel moment l'état de la couverture change, nous vous recommandons de surveiller régulièrement l'état de la couverture et de résoudre les problèmes si le statut devient Insalubre. Vous pouvez également créer une EventBridge règle Amazon pour recevoir une notification lorsque l'état de la couverture passe de Malsain à Healthy ou non. Par défaut, le GuardDuty publie dans le EventBridge bus de votre compte.

Exemple de schéma de notification

Dans une EventBridge règle, vous pouvez utiliser les exemples d'événements et les modèles d'événements prédéfinis pour recevoir une notification sur l'état de la couverture. Pour plus d'informations sur la création d'une EventBridge règle, consultez la section Créer une règle dans le Guide de EventBridge l'utilisateur Amazon.

En outre, vous pouvez créer un modèle d'événement personnalisé à l'aide de l'exemple de schéma de notification suivant. Assurez-vous de remplacer les valeurs de votre compte. Pour être averti lorsque l'état de couverture de votre cluster Amazon ECS passe de Healthy àUnhealthy, detail-type il doit êtreGuardDuty Runtime Protection Unhealthy. Pour être averti lorsque l'état de couverture passe de Unhealthy àHealthy, remplacez la valeur de detail-type parGuardDuty Runtime Protection Healthy.

{ "version": "0", "id": "event ID", "detail-type": "GuardDuty Runtime Protection Unhealthy", "source": "aws.guardduty", "account": "Compte AWS ID", "time": "event timestamp (string)", "region": "Région AWS", "resources": [ ], "detail": { "schemaVersion": "1.0", "resourceAccountId": "string", "currentStatus": "string", "previousStatus": "string", "resourceDetails": { "resourceType": "ECS", "ecsClusterDetails": { "clusterName":"", "fargateDetails":{ "issues":[], "managementType":"" }, "containerInstanceDetails":{ "coveredContainerInstances":int, "compatibleContainerInstances":int } } }, "issue": "string", "lastUpdatedAt": "timestamp" } }

Résolution des problèmes de couverture ECS-Fargate d'Amazon Runtime

Si l'état de couverture de votre cluster Amazon ECS n'est pas satisfaisant, vous pouvez en consulter la raison dans la colonne Problème.

Le tableau suivant présente les étapes de dépannage recommandées pour les problèmes liés à Fargate (Amazon ECS uniquement). Pour plus d'informations sur les problèmes de couverture des instances Amazon EC2, consultez la section relative Résolution des problèmes de couverture d'exécution d'Amazon EC2 aux instances Amazon EC2.

Type de problème Informations supplémentaires Étapes de dépannage recommandées

L'agent ne fait pas de rapport

L'agent ne rend pas compte des tâches dans TaskDefinition - 'TASK_DEFINITION'

Vérifiez que le point de terminaison VPC pour la tâche de votre cluster Amazon ECS est correctement configuré. Pour de plus amples informations, veuillez consulter Validation de la configuration des terminaux VPC.

Si votre organisation dispose d'une politique de contrôle des services (SCP), vérifiez que la limite des autorisations ne restreint pas l'guardduty:SendSecurityTelemetryautorisation. Pour de plus amples informations, veuillez consulter Validation de la politique de contrôle des services de votre organisation dans un environnement multi-comptes.

VPC_ISSUE; for task in TaskDefinition - 'TASK_DEFINITION'

Consultez les détails du problème VPC dans les informations supplémentaires.

L'agent est sorti

ExitCode: EXIT_CODE pour les tâches dans TaskDefinition - 'TASK_DEFINITION'

Consultez les détails du problème dans les informations supplémentaires.

Motif : REASON pour les tâches dans TaskDefinition - 'TASK_DEFINITION'

ExitCode: EXIT_CODE avec raison : « EXIT_CODE » pour les tâches dans TaskDefinition - 'TASK_DEFINITION'

L'agent a quitté : Raison CannotPullContainerError : le manifeste pull image a été réessayé...

Dans ce scénario, GuardDuty est potentiellement incapable d'extraire l'image du conteneur du sidecar. Votre tâche continuera à s'exécuter mais ne GuardDuty pourra pas détecter les menaces potentielles. Effectuez les étapes de dépannage suivantes une par une pour vérifier si cela permet de résoudre le problème de couverture :

  • Autorisations : assurez-vous que votre rôle d'exécution des tâches dispose des autorisations ECR requises répertoriées dansConditions d’autorisation.

  • Connectivité réseau : vérifiez que vos tâches Fargate peuvent atteindre ECR via un accès Internet public ou via des points de terminaison VPC correctement configurés, comme décrit dans. Exigences en matière de connectivité réseau

  • Configuration du groupe de sécurité : vérifiez que votre groupe de sécurité autorise l'accès sortant à la liste des préfixes gérés S3 sur le port 443, comme expliqué dans. Configuration du groupe de sécurité

  • Exécutez le AWSSupport-TroubleshootECSTaskFailedToStart runbook dans la région de votre cluster pour identifier les problèmes spécifiques.

  • Consultez les journaux des tâches pour détecter les messages d'erreur. Pour plus d'informations sur la procédure à suivre, consultez la section Affichage des journaux des agents de conteneurs Amazon ECS dans le manuel Amazon Elastic Container Service Developer Guide.

    Pour connaître les erreurs courantes et résoudre les problèmes, consultez la section Résolution des problèmes liés à Amazon ECS dans le guide du développeur Amazon Elastic Container Service.

Ces trois composants (autorisations, connectivité réseau et configuration du groupe de sécurité) sont indépendants mais tous nécessaires pour télécharger correctement l'image du GuardDuty conteneur depuis Amazon ECR.

Si le problème persiste, consultezMon AWS Step Functions flux de travail échoue de façon inattendue.

La création du point de terminaison VPC a échoué

L'activation du DNS privé nécessite les deux enableDnsSupport et les attributs enableDnsHostnames VPC définis sur true for vpcId (Service : EC2, Status Code:400, Request ID :a1b2c3d4-5678-90ab-cdef-EXAMPLE11111).

Assurez-vous que les attributs de VPC suivants sont définis sur true : enableDnsSupport et enableDnsHostnames. Pour plus d'informations, veuillez consulter la rubrique Attributs DNS dans votre VPC.

Si vous utilisez la console Amazon VPC https://console.aws.amazon.com/vpc/ pour créer Amazon VPC, assurez-vous de sélectionner à la fois Activer les noms d'hôte DNS et Activer la résolution DNS. Pour plus d'informations, veuillez consulter Options de configuration de VPC.

Agent non provisionné

Invocation non prise en charge par SERVICE pour une ou plusieurs tâches dans TaskDefinition - 'TASK_DEFINITION'

Cette tâche a été invoquée par un SERVICE qui n'est pas pris en charge.

Architecture de processeur « TYPE » non prise en charge pour les tâches dans TaskDefinition - 'TASK_DEFINITION'

Cette tâche s'exécute sur une architecture de processeur non prise en charge. Pour plus d'informations sur les architectures de processeurs prises en charge, consultezValidation des exigences architecturales.

TaskExecutionRoleabsent de TaskDefinition - 'TASK_DEFINITION'

Le rôle d'exécution des tâches ECS est manquant. Pour plus d'informations sur la fourniture du rôle d'exécution des tâches et des autorisations requises, consultezConditions requises pour accéder à l'image du conteneur.

Configuration réseau « CONFIGURATION_DETAILS » manquante pour les tâches dans TaskDefinition - 'TASK_DEFINITION'

Des problèmes de configuration réseau peuvent apparaître en raison d'une configuration VPC manquante ou de sous-réseaux manquants ou vides.

Vérifiez que la configuration de votre réseau est correcte. Pour de plus amples informations, veuillez consulter Conditions requises pour accéder à l'image du conteneur.

Pour plus d'informations, consultez les paramètres de définition des tâches Amazon ECS dans le guide du développeur Amazon Elastic Container Service.

Les tâches démarrées lorsque les clusters étaient dotés d'une balise d'exclusion sont exclues de la surveillance de l'exécution. Identifiant (s) de tâche concerné (s) : 'TASK_ID

Lorsque vous modifiez la GuardDuty balise prédéfinie de GuardDutyManaged - true à GuardDutyManaged -false, les événements d'exécution pour ce cluster Amazon ECS ne GuardDuty seront pas reçus.

Mettez à jour la balise en GuardDutyManaged -, true puis relancez la tâche.

Les services déployés lorsque les clusters étaient dotés d'une balise d'exclusion sont exclus de la surveillance de l'exécution. Nom (s) des services concernés : « SERVICE_NAME »

Lorsque les services sont déployés avec la balise d'exclusion GuardDutyManaged -false, GuardDuty ne reçoivent pas d'événements d'exécution pour ce cluster Amazon ECS.

Mettez à jour la balise sur GuardDutyManaged -, true puis redéployez le service.

Les tâches démarrées avant l'activation de la configuration automatique des agents ne sont pas couvertes. Identifiant (s) de tâche concerné (s) : « TASK_ID »

Lorsque le cluster contient une tâche qui a été lancée avant l'activation de la configuration automatique des agents pour Amazon ECS, GuardDuty il est impossible de la protéger. Relancez la tâche pour qu'elle soit surveillée GuardDuty.

Les services déployés avant l'activation de la configuration automatisée des agents ne sont pas couverts. Nom (s) des services concernés : « SERVICE_NAME »

Lorsque les services sont déployés avant l'activation de la configuration automatique des agents pour Amazon ECS, GuardDuty aucun événement d'exécution n'est reçu pour les clusters ECS.

Le service SERVICE_NAME « » nécessite un nouveau déploiement pour fix/troubleshoot. Consultez la documentation, Nom (s) des services concernés : « SERVICE_NAME »

Un service qui a démarré avant l'activation de Runtime Monitoring n'est pas pris en charge.

Vous pouvez soit redémarrer le service, soit le mettre à jour avec forceNewDeployment cette option en suivant les étapes décrites dans la section Mettre à jour un service Amazon ECS à l'aide de la console dans le guide du développeur Amazon Elastic Container Service. Vous pouvez également suivre les étapes décrites UpdateService dans le manuel Amazon Elastic Container Service API Reference.

Les tâches démarrées avant l'activation de Runtime Monitoring nécessitent un redémarrage. Identifiant (s) de tâche concerné (s) : « TASK_ID_1 »

Dans Amazon ECS, les tâches sont immuables. Pour évaluer le comportement d'exécution d'une AWS Fargate tâche en cours d'exécution, assurez-vous que la surveillance de l'exécution est déjà activée, puis redémarrez la tâche GuardDuty pour ajouter le side-car du conteneur.

Autres

Problème non identifié, pour les tâches dans TaskDefinition - 'TASK_DEFINITION'

Posez les questions suivantes pour identifier la cause première du problème :

  • La tâche a-t-elle démarré avant que vous n'activiez Runtime Monitoring ?

    Dans Amazon ECS, les tâches sont immuables. Pour évaluer le comportement d'exécution d'une tâche Fargate en cours d'exécution, assurez-vous que la surveillance de l'exécution est déjà activée, puis redémarrez la tâche GuardDuty pour ajouter le side-car du conteneur.

  • Cette tâche fait-elle partie d'un déploiement de service qui a débuté avant que vous n'activiez Runtime Monitoring ?

    Si c'est le cas, vous pouvez soit redémarrer le service, soit le mettre à jour forceNewDeployment en suivant les étapes décrites dans Mettre à jour un service.

    Vous pouvez également utiliser UpdateService ou AWS CLI.

  • La tâche a-t-elle été lancée après avoir exclu le cluster ECS de Runtime Monitoring ?

    Lorsque vous modifiez la GuardDuty balise prédéfinie de GuardDutyManaged - true à GuardDutyManaged -false, GuardDuty les événements d'exécution pour le cluster ECS ne sont pas reçus.

  • Votre service contient-il une tâche dont le format est ancien taskArn ?

    GuardDuty Runtime Monitoring ne prend pas en charge la couverture des tâches dont l'ancien format esttaskArn.

    Pour plus d'informations sur les Amazon Resource Names (ARN) pour les ressources Amazon ECS, consultez la section Amazon Resource Names (ARNs) and IDs.