Cobertura y solución de problemas en tiempo de ejecución para clústeres de Amazon ECS - Amazon GuardDuty

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cobertura y solución de problemas en tiempo de ejecución para clústeres de Amazon ECS

La cobertura de tiempo de ejecución de los clústeres de Amazon ECS incluye las tareas que se ejecutan en AWS Fargate las instancias de contenedores de Amazon ECS 1.

Si se trata de un clúster de Amazon ECS que se ejecuta en Fargate, la cobertura en tiempo de ejecución se evalúa a nivel de tarea. La cobertura en tiempo de ejecución de los clústeres de ECS incluye las tareas de Fargate que se han comenzado a ejecutar después de habilitar la Supervisión en tiempo de ejecución y la configuración automatizada del agente para Fargate (solo ECS). De forma predeterminada, las tareas de Fargate son inmutables. GuardDuty no podrá instalar el agente de seguridad para supervisar los contenedores en las tareas que ya estén en ejecución. Para incluir una tarea de Fargate de este tipo, debe detener e iniciar de nuevo la tarea. Asegúrese de verificar si el servicio asociado es compatible.

Para obtener información sobre el contenedor de Amazon ECS, consulte Creación de capacidad.

Revisión de las estadísticas de cobertura

Las estadísticas de cobertura correspondientes a los recursos de Amazon ECS asociados a la cuenta propia o a las cuentas de miembro representan el porcentaje de los clústeres de Amazon ECS en buen estado sobre todos los clústeres de Amazon ECS en la Región de AWS seleccionada. Esto incluye la cobertura de los clústeres de Amazon ECS asociados a las instancias de Fargate y Amazon EC2 . La siguiente ecuación lo representa de la siguiente manera:

( clusters/All Clústeres en buen estado) *100

Consideraciones

  • Las estadísticas de cobertura correspondientes al clúster de ECS incluyen el estado de cobertura de las tareas de Fargate o las instancias de contenedor de ECS asociadas a ese clúster de ECS. El estado de cobertura de las tareas de Fargate incluye tareas que están en estado de ejecución o que han terminado de ejecutarse recientemente.

  • En la pestaña Cobertura en tiempo de ejecución de clústeres de ECS, el campo Instancias de contenedor cubiertas indica el estado de cobertura de las instancias de contenedor asociadas al clúster de Amazon ECS.

    Si el clúster de Amazon ECS solo contiene tareas de Fargate, el recuento aparece como 0/0.

  • Si su clúster de Amazon ECS está asociado a una EC2 instancia de Amazon que no tiene un agente de seguridad, el clúster de Amazon ECS también tendrá un estado de cobertura en mal estado.

    Para identificar y solucionar el problema de cobertura de la EC2 instancia de Amazon asociada, consulta Solución de problemas de cobertura en EC2 tiempo de ejecución de Amazon para EC2 instancias de Amazon.

Elija uno de los métodos de acceso para revisar las estadísticas de cobertura de sus cuentas.

Console
  • Inicie sesión en AWS Management Console y abra la GuardDuty consola en https://console.aws.amazon.com/guardduty/.

  • En el panel de navegación, elija Supervisión en tiempo de ejecución.

  • Elija la pestaña Cobertura en tiempo de ejecución.

  • En la pestaña Cobertura en tiempo de ejecución de clústeres de ECS, puede ver las estadísticas de cobertura agregadas por el estado de cobertura de cada clúster de Amazon ECS que esté disponible en la tabla Lista de clústeres.

    • Puede filtrar la tabla Lista de clústeres por las siguientes columnas:

      • ID de cuenta

      • Nombre del clúster

      • Tipo de administración del agente

      • Estado de la cobertura

  • Si la cobertura de alguno de los clústeres de Amazon ECS está en mal estado, la columna Problema incluye información adicional sobre el motivo del mal estado.

    Si sus clústeres de Amazon ECS están asociados a una EC2 instancia de Amazon, vaya a la pestaña de cobertura del tiempo de ejecución de la EC2 instancia y filtre por el campo Nombre del clúster para ver el problema asociado.

API/CLI
  • Ejecute la ListCoverageAPI con su propio ID de detector válido, la región actual y el punto de enlace del servicio. Puede filtrar y ordenar la lista de instancias a través de esta API.

    • Puede cambiar el ejemplo de filter-criteria con una de las siguientes opciones para CriterionKey:

      • ACCOUNT_ID

      • ECS_CLUSTER_NAME

      • COVERAGE_STATUS

      • MANAGEMENT_TYPE

    • Puede cambiar el ejemplo de AttributeName en sort-criteria con las siguientes opciones:

      • ACCOUNT_ID

      • COVERAGE_STATUS

      • ISSUE

      • ECS_CLUSTER_NAME

      • UPDATED_AT

        El campo se actualiza únicamente cuando se crea una nueva tarea en el clúster de Amazon ECS asociado o se produce un cambio en el estado de cobertura correspondiente.

    • Puede cambiar el max-results (hasta 50).

    • Para encontrar la detectorId correspondiente a tu cuenta y región actual, consulta la página de configuración de la https://console.aws.amazon.com/guardduty/consola o ejecuta la 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
  • Ejecute la GetCoverageStatisticsAPI para recuperar las estadísticas agregadas de cobertura basadas enstatisticsType.

    • Puede cambiar el ejemplo de statisticsType a una de las siguientes opciones:

      • COUNT_BY_COVERAGE_STATUS: representa las estadísticas de cobertura de los clústeres de ECS agregadas por estado de cobertura.

      • COUNT_BY_RESOURCE_TYPE— Estadísticas de cobertura agregadas en función del tipo de AWS recurso de la lista.

      • Puede cambiar el ejemplo de filter-criteria en el comando. Puede usar las siguientes opciones para CriterionKey:

        • ACCOUNT_ID

        • ECS_CLUSTER_NAME

        • COVERAGE_STATUS

        • MANAGEMENT_TYPE

        • INSTANCE_ID

    • Para encontrar las detectorId correspondientes a tu cuenta y región actual, consulta la página de configuración de la https://console.aws.amazon.com/guardduty/consola o ejecuta la 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"}}] }'

Para obtener más información sobre los problemas de cobertura, consulte Resolución de problemas de cobertura en tiempo de ejecución de Amazon ECS-Fargate.

El estado de la cobertura cambia con EventBridge notificaciones

Es posible que el estado de cobertura del clúster de Amazon ECS aparezca como En mal estado. Para mantenerse informado sobre los cambios en el estado de la cobertura, recomendamos supervisar periódicamente su estado y solucionar cualquier problema si esta se encuentra en mal estado. Como alternativa, puedes crear una EventBridge regla de Amazon para recibir una notificación cuando el estado de la cobertura cambie de Insalubre a Saludable o no. De forma predeterminada, la GuardDuty publica en el EventBridge bus de tu cuenta.

Ejemplo de esquema de notificaciones

Como EventBridge regla general, puede utilizar los ejemplos de eventos y patrones de eventos predefinidos para recibir la notificación del estado de la cobertura. Para obtener más información sobre cómo crear una EventBridge regla, consulta Crear regla en la Guía del EventBridge usuario de Amazon.

Además, puede crear un patrón de eventos personalizado mediante el siguiente ejemplo de esquema de notificaciones. Asegúrese de sustituir los valores de su cuenta. Para recibir una notificación cuando el estado de cobertura de su clúster de Amazon ECS cambie de Healthy aUnhealthy, detail-type debería ser asíGuardDuty Runtime Protection Unhealthy. Para recibir una notificación cuando el estado de la cobertura cambie de Unhealthy aHealthy, sustituya el valor detail-type de porGuardDuty Runtime Protection Healthy.

{ "version": "0", "id": "event ID", "detail-type": "GuardDuty Runtime Protection Unhealthy", "source": "aws.guardduty", "account": "Cuenta de AWS ID", "time": "event timestamp (string)", "region": "Región de 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" } }

Resolución de problemas de cobertura en tiempo de ejecución de Amazon ECS-Fargate

Si la cobertura del clúster de Amazon ECS está en mal estado, puede ver el motivo en la columna Problema.

En la siguiente tabla se indican los pasos recomendados para solucionar los problemas relacionados con Fargate (solo Amazon ECS). Para obtener información sobre los problemas de cobertura de las EC2 instancias de Amazon, consulta Solución de problemas de cobertura en EC2 tiempo de ejecución de Amazon las EC2 instancias de Amazon.

Tipo de problema Información adicional Pasos recomendados de solución de problemas

El agente no genera informes

El agente no genera informes para las tareas en TaskDefinition - 'TASK_DEFINITION'

Valide que el punto de conexión de VPC para la tarea del clúster de Amazon ECS esté configurado correctamente. Para obtener más información, consulte Validar la configuración del punto de conexión de VPC.

Si la organización cuenta con una política de control de servicio (SCP), valide que el límite de permisos no restringe el permiso guardduty:SendSecurityTelemetry. Para obtener más información, consulte Validar la política de control de servicios de su organización en un entorno de múltiples cuentas.

VPC_ISSUE; for task in TaskDefinition - 'TASK_DEFINITION'

Consulte los detalles del problema de la VPC en la información adicional.

El agente salió

ExitCode: EXIT_CODE para tareas en TaskDefinition - 'TASK_DEFINITION'

Consulte los detalles del problema en la información adicional.

Motivo: REASON para tareas en TaskDefinition - 'TASK_DEFINITION'

ExitCode: EXIT_CODE con el motivo: 'EXIT_CODE' para tareas en TaskDefinition - 'TASK_DEFINITION'

El agente salió: Motivo: CannotPullContainerError: se ha vuelto a intentar extraer el manifiesto de imagen…

En este escenario, GuardDuty es posible que no pueda ver la imagen del contenedor del sidecar. La tarea seguirá ejecutándose, pero no GuardDuty podrá detectar posibles amenazas. Realice los siguientes pasos de solución de problemas uno por uno para comprobar si esto ayuda a resolver el problema de cobertura:

Estos tres componentes (permisos, conectividad de red y configuración del grupo de seguridad) son independientes, pero todos son necesarios para descargar correctamente la imagen del GuardDuty contenedor de Amazon ECR.

Si el problema persiste, consulte Mi AWS Step Functions flujo de trabajo está fallando inesperadamente.

Se produjo un error al crear el punto de conexión de VPC

Para habilitar el DNS privado es necesario establecer ambos enableDnsSupport atributos de enableDnsHostnames VPC en true for vpcId (Service: EC2, Status Code: 400, Request ID:). a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Asegúrese de que los siguientes atributos de VPC estén establecidos en true - enableDnsSupport y enableDnsHostnames. Para obtener más información, consulte Atributos DNS para la VPC.

Si utiliza Amazon VPC Console https://console.aws.amazon.com/vpc/para crear la Amazon VPC, asegúrese de seleccionar Enable DNS hostnames y Enable DNS resolution. Para obtener más información, consulte Opciones de configuración de la VPC.

Agente no aprovisionado

Invocación no admitida por parte del SERVICE para tareas en TaskDefinition - 'TASK_DEFINITION'

Esta tarea fue invocada por un SERVICE que no se admite.

La arquitectura de CPU 'TYPE' no es compatible para las tareas de TaskDefinition - 'TASK_DEFINITION'

Esta tarea se ejecuta en una arquitectura de CPU no admitida. Para obtener información acerca de las arquitecturas de CPU compatibles, consulte Validación de los requisitos de arquitectura.

TaskExecutionRole falta en TaskDefinition - 'TASK_DEFINITION'

Falta el rol de ejecución de tareas de ECS. Para obtener información sobre cómo proporcionar el rol de ejecución de tareas y los permisos necesarios, consulte Requisitos previos para el acceso a las imágenes del contenedor.

Falta la configuración de red “CONFIGURATION_DETAILS” para las tareas en TaskDefinition - 'TASK_DEFINITION'

Los problemas de configuración de red pueden surgir debido a la falta de configuración de la VPC, o a la falta de subredes o subredes vacías.

Compruebe que la configuración de la red es correcta. Para obtener más información, consulte Requisitos previos para el acceso a las imágenes del contenedor.

Para obtener más información, consulte Parámetros de definición de tareas de Amazon ECS en la Guía para desarrolladores de Amazon Elastic Container Service.

Las tareas que se iniciaron cuando los clústeres tenían una etiqueta de exclusión se excluyen de Runtime Monitoring. ID de tarea afectada (s): 'TASK_ID

Al cambiar la GuardDuty etiqueta predefinida de GuardDutyManaged - true a GuardDutyManaged -false, no GuardDuty recibirá los eventos de tiempo de ejecución de este clúster de Amazon ECS.

Actualice la etiqueta a GuardDutyManaged - true y, a continuación, vuelva a iniciar la tarea.

Los servicios implementados cuando los clústeres tenían una etiqueta de exclusión se excluyen de Runtime Monitoring. Nombre (s) de los servicios afectados: 'SERVICE_NAME'

Cuando los servicios se desplieguen con la etiqueta de exclusión GuardDutyManaged -false, no GuardDuty recibirán eventos de tiempo de ejecución para este clúster de Amazon ECS.

Actualice la etiqueta a GuardDutyManaged - true y, a continuación, vuelva a implementar el servicio.

No se incluyen las tareas iniciadas antes de habilitar la configuración automática del agente. ID de tarea afectada (s): 'TASK_ID'

Si el clúster contiene una tarea que se lanzó antes de habilitar la configuración del agente automatizado para Amazon ECS, no GuardDuty podrá protegerla. Vuelva a iniciar la tarea para que la supervise GuardDuty.

No se incluyen los servicios implementados antes de habilitar la configuración automática de los agentes. Nombre (s) de los servicios afectados: 'SERVICE_NAME'

Cuando los servicios se implementen antes de habilitar la configuración automática de agentes para Amazon ECS, no GuardDuty recibirán eventos de tiempo de ejecución para los clústeres de ECS.

El servicio 'SERVICE_NAME' requiere una nueva implementación para corregir o solucionar problemas. Consulte la documentación y los nombres de los servicios afectados: '' SERVICE_NAME

No se admite un servicio que se haya iniciado antes de habilitar Runtime Monitoring.

Puede reiniciar el servicio o actualizarlo con la forceNewDeployment opción siguiendo los pasos que se indican en Actualización de un servicio de Amazon ECS mediante la consola de la Guía para desarrolladores de Amazon Elastic Container Service. Como alternativa, también puedes seguir los pasos que se indican UpdateServiceen la referencia de la API de Amazon Elastic Container Service.

Las tareas iniciadas antes de habilitar Runtime Monitoring requieren un relanzamiento. ID de tarea afectada (s): '' TASK_ID_1

Las tareas son inmutables en Amazon ECS. Para evaluar el comportamiento en tiempo de ejecución de una AWS Fargate tarea en ejecución, asegúrate de que la supervisión del tiempo de ejecución ya esté habilitada y, a continuación, reinicia la tarea GuardDuty para añadir el sidecar del contenedor.

Otros

Problema no identificado, para tareas en TaskDefinition - 'TASK_DEFINITION'

Utilice las siguientes preguntas para identificar la causa raíz del problema:

  • ¿La tarea se inició antes de habilitar la Supervisión en tiempo de ejecución?

    Las tareas son inmutables en Amazon ECS. Para evaluar el comportamiento en tiempo de ejecución de una tarea de Fargate en ejecución, asegúrese de que Runtime Monitoring ya esté habilitada y, a continuación, reinicie la tarea GuardDuty para añadir el sidecar del contenedor.

  • ¿Esta tarea forma parte de una implementación de servicios que se inició antes de habilitar la Supervisión en tiempo de ejecución?

    En tal caso, puede reiniciar el servicio o actualizarlo con forceNewDeployment. Para ello, siga los pasos indicados en Actualizar un servicio.

    También puede usar UpdateServiceo. AWS CLI

  • ¿La tarea se lanzó después de excluir el clúster de ECS de la Supervisión en tiempo de ejecución?

    Si cambias la GuardDuty etiqueta predefinida de GuardDutyManaged - true a GuardDutyManaged -false, no GuardDuty recibirá los eventos de tiempo de ejecución del clúster de ECS.

  • ¿El servicio contiene una tarea que tiene un formato antiguo de taskArn?

    GuardDuty Runtime Monitoring no admite la cobertura de tareas que tienen el formato anterior detaskArn.

    Para obtener información sobre los nombres de recursos de Amazon (ARNs) para los recursos de Amazon ECS, consulte Amazon Resource Names (ARNs) y IDs.