Couverture du temps d'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 du temps d'exécution et résolution des problèmes pour les clusters Amazon ECS

La couverture d'exécution des clusters Amazon ECS inclut les tâches exécutées sur les instances de conteneur Amazon ECS AWS Fargate et sur celles-ci 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 du temps d'exécution des clusters ECS inclut les tâches Fargate qui ont commencé à s'exécuter une fois que vous avez activé la surveillance du temps d'exécution et la configuration automatisée des agents pour Fargate (ECS uniquement). Par défaut, une tâche Fargate est immuable. GuardDuty ne sera pas en mesure d'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 puis 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és.

Consultation des statistiques de couverture

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

(Clusters sains/Tous les clusters) x 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 conteneur couvertes indique l'état de couverture des instances de conteneur associées à votre cluster Amazon ECS.

    Si votre cluster Amazon ECS contient uniquement des tâches Fargate, le nombre s'affiche sous la forme 0/0.

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

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

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

Console
  • Connectez-vous à la GuardDuty console AWS Management Console et ouvrez-la à 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 liste des clusters selon les colonnes suivantes :

      • ID de compte

      • Nom du cluster

      • Type de gestion des agents

      • État de couverture

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

    Si vos clusters Amazon ECS sont associés à une EC2 instance Amazon, accédez à l'onglet Couverture du EC2 temps d'exécution de l'instance 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 en cas de modification de l'état de couverture correspondant.

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

    • Pour trouver les paramètres detectorId 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 le 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 sur la base destatisticsType.

    • 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

    • Pour trouver les paramètres detectorId 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 le 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 du temps d'exécution d'Amazon ECS-Fargate.

Modification de l'état de couverture avec EventBridge notifications

L'état de couverture de votre cluster Amazon ECS peut apparaître comme étant défectueux. Pour savoir quand l'état de couverture change, nous vous recommandons de le surveiller régulièrement et de résoudre les problèmes s'il devient insalubre. Vous pouvez également créer une EventBridge règle Amazon pour recevoir une notification lorsque le statut de couverture passe de Malsain à Sain ou autre. Par défaut, il le GuardDuty publie dans le EventBridge bus pour votre compte.

Exemple de schéma de notification

Dans une EventBridge règle, vous pouvez utiliser les exemples d'événements et de modèles d'événements prédéfinis pour recevoir une notification de l'état de 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 le statut de couverture de votre cluster Amazon ECS passe de Healthy àUnhealthy, le detail-type doit êtreGuardDuty Runtime Protection Unhealthy. Pour être averti lorsque le statut 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 du temps d'exécution d'Amazon ECS-Fargate

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

Le tableau suivant fournit 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 EC2 instances Amazon, consultez Résolution des problèmes de couverture EC2 d'Amazon Runtime la section relative aux EC2 instances Amazon.

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

L'agent ne fait pas de rapport

L'agent ne présente pas de rapports pour les 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 points de terminaison VPC.

Si votre organisation dispose d'une politique de contrôle des services (SCP), vérifiez que la limite des autorisations ne restreint pas les guardduty:SendSecurityTelemetry autorisations. Pour de plus amples informations, veuillez consulter Validation de la politique de contrôle des services de votre organisation.

VPC_ISSUE; for task in TaskDefinition - 'TASK_DEFINITION'

Consultez les détails du problème du 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 est sorti : Raison CannotPullContainerError : le manifeste de l'image d'extraction a été réessayé...

Le rôle d'exécution des tâches doit disposer des autorisations Amazon Elastic Container Registry (Amazon ECR) suivantes :

... "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", ...

Pour de plus amples informations, veuillez consulter Fournir les autorisations ECR et les détails du sous-réseau.

Après avoir ajouté les autorisations Amazon ECR, vous devez redémarrer la tâche.

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

Échec de la création du point de terminaison VPC

L'activation du DNS privé nécessite à la fois que enableDnsSupport les attributs enableDnsHostnames VPC soient 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 l'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 for task (s) dans TaskDefinition - 'TASK_DEFINITION'

Cette tâche a été invoquée par une personne SERVICE qui n'est pas prise en charge.

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

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

TaskExecutionRoleabsent de TaskDefinition - 'TASK_DEFINITION'

Le rôle d'exécution des tâches ECS est absent. Pour plus d'informations sur la fourniture du rôle d'exécution des tâches et des autorisations requises, consultezFournir les autorisations ECR et les détails du sous-réseau.

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

Des problèmes de configuration réseau peuvent survenir 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 Fournir les autorisations ECR et les détails du sous-réseau.

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

Les tâches démarrées lorsque les clusters étaient dotés d'une balise d'exclusion sont exclues de la surveillance du temps d'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, il ne GuardDuty recevra pas les événements d'exécution pour ce cluster Amazon ECS.

Mettez à jour le tag sur 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 du temps d'exécution. Nom (s) du service concerné : « SERVICE_NAME »

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

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

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

Lorsque le cluster contient une tâche lancée avant d'activer la configuration de l'agent automatisé pour Amazon ECS, il ne GuardDuty sera pas en mesure de la protéger. Relancez la tâche pour qu'elle soit surveillée par. GuardDuty

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

Lorsque les services sont déployés avant d'activer la configuration automatisée 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 corriger/résoudre les problèmes. Reportez-vous à la documentation, Nom (s) du service concerné : « SERVICE_NAME »

Un service démarré avant l'activation de la surveillance du temps d'exécution n'est pas pris en charge.

Vous pouvez soit redémarrer le service, soit le mettre à jour avec l'forceNewDeploymentoption en suivant les étapes décrites dans la section Mettre à jour un service Amazon ECS à l'aide de la console dans le manuel Amazon Elastic Container Service Developer Guide. Vous pouvez également suivre les étapes ci-dessous UpdateServicedans le manuel Amazon Elastic Container Service API Reference.

Les tâches démarrées avant l'activation de la surveillance du temps d'exécution doivent être relancées. 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 ou une AWS Fargate tâche en cours d'exécution, assurez-vous que la surveillance du temps d'exécution est déjà activée, puis redémarrez la tâche GuardDuty pour ajouter le sidecar du conteneur.

Autres

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

Utilisez 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 le 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 du temps d'exécution est déjà activée, puis redémarrez la tâche GuardDuty pour ajouter le sidecar du conteneur.

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

    Dans l'affirmative, vous pouvez redémarrer le service ou le mettre à jour forceNewDeployment en suivant les étapes décrites dans Mettre à jour un service.

    Vous pouvez également utiliser UpdateServiceou AWS CLI.

  • La tâche a-t-elle été lancée après avoir exclu le cluster ECS de la surveillance du temps d'exécution ?

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

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

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

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