Cobertura en tiempo de ejecución y resolución de problemas para clústeres de Amazon EKS - 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 en tiempo de ejecución y resolución de problemas para clústeres de Amazon EKS

Tras activar Runtime Monitoring e instalar el agente de GuardDuty seguridad (complemento) para EKS de forma manual o mediante una configuración automática del agente, podrá empezar a evaluar la cobertura de sus clústeres de EKS.

Revisión de las estadísticas de cobertura

Las estadísticas de cobertura de los clústeres de EKS asociados a sus propias cuentas o a las de sus miembros representan el porcentaje de los clústeres de EKS en buen estado con respecto a todos los clústeres de EKS de la Región de AWS seleccionada. La siguiente ecuación lo representa de la siguiente manera:

(Clústeres en buen estado/Todos los clústeres)*100

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.

  • Seleccione la pestaña Cobertura del tiempo de ejecución de los clústeres de EKS.

  • En la pestaña Cobertura del tiempo de ejecución de los clústeres de EKS, puede ver las estadísticas de cobertura agregadas por el estado de cobertura que está disponible en la tabla Lista de clústeres.

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

      • Cluster name (Nombre del clúster)

      • ID de cuenta

      • Tipo de administración del agente

      • Estado de la cobertura

      • Versión del complemento

  • Si el valor de Estado de la cobertura de alguno de sus clústeres de EKS es En mal estado, en la columna Problema se puede incluir información adicional sobre el motivo del estado En mal estado.

API/CLI
  • Ejecute la ListCoverageAPI con su propio ID de detector, región y punto de conexión de servicio válidos. Puede filtrar y ordenar la lista de clústeres con esta API.

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

      • ACCOUNT_ID

      • CLUSTER_NAME

      • RESOURCE_TYPE

      • COVERAGE_STATUS

      • ADDON_VERSION

      • MANAGEMENT_TYPE

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

      • ACCOUNT_ID

      • CLUSTER_NAME

      • COVERAGE_STATUS

      • ISSUE

      • ADDON_VERSION

      • UPDATED_AT

    • Puedes cambiarlos 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 el ListDetectorsAPI.

    aws guardduty --region us-east-1 list-coverage --detector-id 12abc34d567e8fa901bc2d34e56789f0 --sort-criteria '{"AttributeName": "EKS_CLUSTER_NAME", "OrderBy": "DESC"}' --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"111122223333"}}] }' --max-results 5
  • Ejecute la GetCoverageStatisticsAPI para recuperar 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 EKS 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

        • CLUSTER_NAME

        • RESOURCE_TYPE

        • COVERAGE_STATUS

        • ADDON_VERSION

        • MANAGEMENT_TYPE

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

Si el estado de cobertura de su clúster de EKS es En mal estado, consulte Resolución de problemas de cobertura en tiempo de ejecución de Amazon EKS.

Cambio del estado de la cobertura con EventBridge notificaciones

El estado de cobertura de un clúster de EKS de su cuenta puede aparecer como En mal estado. Para detectar cuándo el estado de cobertura pasa a ser En mal estado, le recomendamos que supervise el estado de cobertura periódicamente y que solucione los problemas si el estado es En mal estado. Como alternativa, puedes crear una EventBridge regla de Amazon que te notifique cuando el estado de la cobertura cambie de Unhealthy a Healthy 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 EKS 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": "EKS", "eksClusterDetails": { "clusterName": "string", "availableNodes": "string", "desiredNodes": "string", "addonVersion": "string" } }, "issue": "string", "lastUpdatedAt": "timestamp" } }

Resolución de problemas de cobertura en tiempo de ejecución de Amazon EKS

Si el estado de cobertura de su clúster EKS esUnhealthy, puede ver el error correspondiente en la columna Problema de la GuardDuty consola o utilizando el tipo de CoverageResourcedatos.

Cuando trabaje con etiquetas de inclusión o exclusión para supervisar los clústeres de EKS de forma selectiva, es posible que las etiquetas tarden algún tiempo en sincronizarse. Esto puede afectar al estado de cobertura del clúster de EKS asociado. Puede intentar eliminar y volver a agregar la etiqueta correspondiente (inclusión o exclusión). Para obtener más información, consulte Etiquetado de los recursos de Amazon EKS en la Guía del usuario de Amazon EKS.

La estructura de un problema de cobertura es Issue type:Extra information. Por lo general, los problemas tienen información adicional opcional que puede incluir una excepción específica del cliente o una descripción del problema. Con base en la Información adicional, las siguientes tablas indican los pasos recomendados para solucionar los problemas de cobertura de los clústeres de EKS.

Tipo de problema (prefijo)

Información adicional

Pasos recomendados de solución de problemas

Se produjo un error al crear el complemento

El complemento no aws-guardduty-agent es compatible con la versión actual del clústerClusterName. No se admite el complemento especificado.

Asegúrese de utilizar una de esas versiones de Kubernetes que admiten la implementación del complemento de EKS aws-guardduty-agent. Para obtener más información, consulte Versiones de Kubernetes compatibles con el agente de seguridad GuardDuty . Para obtener información sobre cómo actualizar su versión de Kubernetes, consulte Actualización de una versión de Kubernetes de clúster de Amazon EKS.

Se produjo un error al crear el complemento

Se produjo un error al actualizar el complemento

El complemento está en mal estado

Problema con el complemento de EKS: AddonIssueCode: AddonIssueMessage

Para obtener información sobre los pasos recomendados para un código de problema de complemento específico, consulte Troubleshooting steps for Addon creation/updatation error with Addon issue code.

Para obtener una lista de los códigos de problemas relacionados con los complementos que podrían producirse en este problema, consulte. AddonIssue

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

La creación de puntos de conexión de VPC no es compatible con la VPC compartida vpcId

La Supervisión en tiempo de ejecución ahora admite el uso de una VPC compartida dentro de una organización. Asegúrese de que las cuentas cumplen todos los requisitos previos. Para obtener más información, consulte Requisitos previos para utilizar una VPC compartida.

Solo cuando se utiliza una VPC compartida con una configuración automatizada del agente

El ID de cuenta propietario 111122223333 de la VPC compartida vpcId no tiene habilitada la supervisión del tiempo de ejecución, la configuración automática de agentes o ambas.

La cuenta de propietario de la VPC compartida debe habilitar la Supervisión en tiempo de ejecución y la configuración automatizada del agente para al menos un tipo de recurso (Amazon EKS o Amazon ECS [AWS Fargate]). Para obtener más información, consulte Requisitos previos específicos de la supervisión del GuardDuty tiempo de ejecución.

La habilitación del DNS privado requiere que ambos enableDnsSupport atributos de enableDnsHostnames VPC estén configurados en true for vpcId (servicio: Ec2, código de estado: 400, ID de solicitud:). 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.

Se produjo un error al eliminar el punto de conexión de la VPC compartida

No se permite eliminar el punto final de la VPC compartida para el ID de cuenta111122223333, la VPC vpcId compartida o el ID de cuenta del propietario. 555555555555

Medidas posibles:
  • Al desactivar el estado de la Supervisión en tiempo de ejecución de la cuenta de participante de la VPC compartida, no se afecta a la política de punto de conexión de VPC compartida ni al grupo de seguridad que existe en la cuenta de propietario.

    Para eliminar el punto de conexión de VPC compartida y el grupo de seguridad, debe desactivar la Supervisión en tiempo de ejecución o el estado de la configuración automatizada del agente en la cuenta de propietario de la VPC compartida.

  • La cuenta participante de la VPC compartida no puede eliminar el punto de conexión de la VPC compartida ni el grupo de seguridad alojados en la cuenta propietaria de la VPC compartida.

Clústeres de EKS locales

Los complementos de EKS no se admiten en los clústeres de Outposts locales.

No se puede procesar.

Para obtener más información, consulte Amazon EKS on AWS outposts.

No se ha concedido el permiso de habilitación de la supervisión en tiempo de ejecución de EKS

(puede o no mostrar información adicional)

  1. Si hay información adicional disponible sobre este problema, corrija la causa raíz y avance al siguiente paso.

  2. Desactive la supervisión en tiempo de ejecución de EKS y vuelva a activarla. Asegúrese de que el GuardDuty agente también se despliegue, ya sea de forma automática GuardDuty o manual.

Aprovisionamiento de recursos de habilitación de la supervisión en tiempo de ejecución de EKS en curso.

(puede o no mostrar información adicional)

No se puede procesar.

Después de habilitar la supervisión en tiempo de ejecución de EKS, el estado de cobertura puede seguir siendo Unhealthy hasta que se complete el paso de aprovisionamiento de recursos. El estado de cobertura se supervisa y actualiza periódicamente.

Otros (cualquier otro problema)

Error debido a una falla de autorización

Desactive la supervisión en tiempo de ejecución de EKS y vuelva a activarla. Asegúrese de que el GuardDuty agente también se despliegue, de forma automática GuardDuty o manual.

Pasos para solucionar un error de creación/actualización de un complemento con el código de error del complemento

Error de creación o actualización del complemento

Pasos para la solución de problemas

Problema con el complemento EKS InsufficientNumberOfReplicas: el complemento no está en buen estado porque no tiene la cantidad deseada de réplicas.

  • Con el mensaje del problema, puede identificar y solucionar la causa raíz. Puede comenzar por describir el clúster. Por ejemplo, utilice kubectl describe pods para identificar la causa raíz del fallo de un pod.

    Después de solucionar la causa raíz, vuelva a intentar el paso (creación o actualización del complemento).

  • Si el problema persiste, compruebe que el punto de conexión de VPC para el clúster de Amazon EKS está configurado correctamente. Para obtener más información, consulte Validar la configuración del punto de conexión de VPC.

Problema con el complemento EKSInsufficientNumberOfReplicas: El complemento no está en buen estado porque uno o más pods no están programados. Hay nodos disponibles:. 0/x x Insufficient cpu. preemption: not eligible due to preemptionPolicy=Never

Para resolver este problema, puede seguir uno de estos pasos:

nota

El mensaje se muestra o/x GuardDuty porque solo muestra el primer error encontrado. El número real de pods en ejecución en el GuardDuty daemonset puede ser superior a 0.

Problema con el complemento EKSInsufficientNumberOfReplicas: El complemento no está en buen estado porque uno o más pods no están programados. Hay 0/x nodos disponibles:. x Too many pods. preemption: not eligible due to preemptionPolicy=Never

Problema con el complemento EKSInsufficientNumberOfReplicas: El complemento no está en buen estado porque uno o más pods no están programados. Hay 0/x nodos disponibles:. 1 Insufficient memory. preemption: not eligible due to preemptionPolicy=Never

Problema con el complemento EKSInsufficientNumberOfReplicas: El complemento no está en buen estado porque uno o más pods tienen contenedores en espera CrashLoopBackOff: Completed

Puede ver los registros asociados al pod e identificar el problema. Para obtener información sobre cómo hacerlo, consulta Depurar pods en ejecución en la documentación de Kubernetes.

Usa la siguiente lista de verificación para solucionar este problema con el complemento:

  • Comprueba que la monitorización del tiempo de ejecución esté habilitada.

  • Compruebe que se cumplen las Requisitos previos para la compatibilidad con clústeres de Amazon EKS distribuciones de sistema operativo verificadas y las versiones de Kubernetes compatibles.

  • Cuando administre el agente de seguridad manualmente, confirme que ha creado un punto final de VPC para todos los. VPCs Al habilitar la configuración GuardDuty automatizada, aún debe validar que se haya creado el punto final de la VPC. Por ejemplo, cuando se utiliza una VPC compartida en una configuración automática.

    Para validar esto, consulteValidar la configuración del punto de conexión de VPC.

  • Confirme que el agente GuardDuty de seguridad es capaz de resolver el DNS privado del punto final de la GuardDuty VPC. Para conocer los puntos de conexión, consulte Nombres de DNS privados para los puntos de conexión en. Administrar agentes GuardDuty de seguridad

    Para ello, puede utilizar cualquier nslookup herramienta en Windows o Mac o dig una herramienta en Linux. Al usar nslookup, puede usar el siguiente comando después de reemplazar la región por la us-west-2 suya:

    nslookup guardduty-data.us-west-2.amazonaws.com
  • Valide que su política de puntos finales de GuardDuty VPC o la política de control de servicios no guardduty:SendSecurityTelemetry afecten a la acción.

Problema con el complemento EKSInsufficientNumberOfReplicas: El complemento no está en buen estado porque uno o más módulos tienen contenedores en espera CrashLoopBackOff: Error

Puede ver los registros asociados al pod e identificar el problema. Para obtener información sobre cómo hacerlo, consulta Depurar pods en ejecución en la documentación de Kubernetes.

Una vez que hayas identificado el problema, usa la siguiente lista de verificación para solucionarlo:

Problema con el complemento EKSAdmissionRequestDenied: webhook de admisión "validate.kyverno.svc-fail" denegó la solicitud: política DaemonSet/amazon-guardduty/aws-guardduty-agent de infracción de recursos:::... restrict-image-registries autogen-validate-registries

  1. El clúster de Amazon EKS o el administrador de seguridad deben revisar la política de seguridad que bloquea la actualización del complemento.

  2. Debe desactivar el controlador (webhook) o hacer que el controlador acepte las solicitudes de Amazon EKS.

Problema con el complemento de EKS: ConfigurationConflict: se encontraron conflictos al intentar la aplicación. No continuará debido al modo de resolución de conflictos. Conflicts: DaemonSet.apps aws-guardduty-agent - .spec.template.spec.containers[name="aws-guardduty-agent"].image

Al crear o actualizar el complemento, indique la marca de resolución de conflictos OVERWRITE. Esto sobrescribirá potencialmente cualquier cambio que se haya realizado directamente en los recursos relacionados en Kubernetes a través de la API de Kubernetes.

En primer lugar, puede eliminar un complemento de Amazon EKS de un clúster y, a continuación, volver a instalarlo.

Problema con el complemento de EKS: AccessDenied: priorityclasses.scheduling.k8s.io "aws-guardduty-agent.priorityclass" is forbidden: User "eks:addon-manager" cannot patch resource "priorityclasses" in API group "scheduling.k8s.io" at the cluster scope

Debe agregar el permiso que falta al eks:addon-cluster-admin ClusterRoleBinding manualmente. Agregue el siguiente yaml al eks:addon-cluster-admin:

--- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: eks:addon-cluster-admin subjects: - kind: User name: eks:addon-manager apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io ---

Ahora puede aplicar este yaml al clúster de Amazon EKS mediante el siguiente comando:

kubectl apply -f eks-addon-cluster-admin.yaml

AddonUpdationFailed: EKSAddon Problema - AccessDenied: namespaces\"amazon-guardduty\"isforbidden:User\"eks:addon-manager\"cannotpatchresource\"namespaces\"inAPIgroup\"\"inthenamespace\"amazon-guardduty\"

Problema con el complemento de EKS: AccessDenied: admission webhook "validation.gatekeeper.sh" denied the request: [all-namespace-must-have-label-owner] All namespaces must have an `owner` label

Debe desactivar el controlador o hacer que este acepte las solicitudes del clúster de Amazon EKS.

Antes de crear o actualizar el complemento, también puedes crear un espacio de GuardDuty nombres y etiquetarlo como. owner

Problema con el complemento de EKS: AccessDenied: admission webhook "validation.gatekeeper.sh" denied the request: [all-namespace-must-have-label-owner] All namespaces must have an `owner` label

Debe desactivar el controlador o hacer que este acepte las solicitudes del clúster de Amazon EKS.

Antes de crear o actualizar el complemento, también puedes crear un espacio de GuardDuty nombres y etiquetarlo como. owner

Problema con el complemento de EKS: AccessDenied: admission webhook "validation.gatekeeper.sh" denied the request: [allowed-container-registries] container <aws-guardduty-agent> has an invalid image registry

Añade el registro de imágenes GuardDuty a tu controlador allowed-container-registries de admisión. Para obtener más información, consulte el repositorio ECR para EKS v1.8.1-eks-build.2 en. Agente de alojamiento GuardDuty de repositorios Amazon ECR