Supervisar análisis de objetos de S3 con Amazon EventBridge - Amazon GuardDuty

Supervisar análisis de objetos de S3 con Amazon EventBridge

Amazon EventBridge: es un bus de eventos sin servidor que facilita la conexión de sus aplicaciones con datos de varios orígenes. EventBridge proporciona un flujo de datos en tiempo real desde sus propias aplicaciones, aplicaciones de software como servicio (SaaS) y servicios de AWS y, luego, dirige dichos datos a destinos como Lambda. Esto le permite monitorear los eventos que ocurren en los servicios y crear arquitecturas basadas en eventos. Para más información, consulte la Guía del usuario de Amazon EventBridge.

Como la cuenta propietaria de un bucket de S3 protegido con protección contra malware para S3, GuardDuty publica notificaciones de EventBridge en el bus de eventos predeterminado en las siguientes situaciones:

  • Cambios en el estado de los recursos del plan de protección contra malware para cualquiera de los buckets protegidos. Para obtener información sobre los diversos estados, consulte Estado del recurso del plan de protección contra malware.

    Para configurar una regla de Amazon EventBridge (EventBridge) para el estado de los recursos, consulte Estado del recurso del plan de protección contra malware.

  • El producto del análisis de objetos de S3 se publica en el bus de eventos predeterminado de EventBridge.

    El campo s3Throttled indica si hubo o no un retraso en la carga o recuperación de almacenamiento desde Amazon S3. El valor true indica que hubo un retraso, y false indica que no hubo retraso.

    Si s3Throttled es true para el producto del análisis, Amazon S3 recomienda configurar los prefijos de manera que ayuden a reducir las transacciones por segundo (TPS) para cada prefijo. Para obtener más información, consulte Patrones de diseño de prácticas recomendadas: optimización del rendimiento de Amazon S3 en la Guía del usuario de Amazon S3.

    Para configurar una regla de Amazon EventBridge (EventBridge) para los productos del análisis de objetos de S3, consulte Producto del análisis del objeto S3.

  • Se produce un evento de error en la etiqueta posterior al análisis debido a las siguientes razones:

    • El rol de IAM no tiene los permisos necesarios para etiquetar el objeto.

      La plantilla Agregar permisos de política de IAM incluye el permiso para que GuardDuty etiquete un objeto.

    • El recurso del bucket o el objeto especificado en el rol de IAM ya no existe.

    • El objeto de S3 asociado ya ha alcanzado el límite máximo de etiquetas. Para obtener más información sobre el límite de etiquetas, consulte Categorizar el almacenamiento mediante etiquetas en la Guía del usuario de Amazon S3.

    Para configurar una regla de Amazon EventBridge (EventBridge) para los eventos de error en la etiqueta posterior al análisis, consulte Eventos de error de etiqueta posteriores al análisis.

Configurar las reglas de EventBridge

Puede configurar reglas de EventBridge en la cuenta para enviar el estado de los recursos, los eventos de error en la etiqueta posterior al análisis o el producto del análisis de objetos de S3 a otro Servicio de AWS. Como cuenta de administrador delegado de GuardDuty, recibirá la notificación del estado de los recursos del plan de protección contra malware cuando haya un cambio en el estado.

Se aplicará la tarifa estándar de EventBridge. Para obtener más información, consulte Precios de Amazon EventBridge.

Todos los valores que aparecen en rojo son marcadores de posición para el ejemplo. Estos valores cambiarán según los valores de la cuenta y según se detecte o no malware.

Estado del recurso del plan de protección contra malware

Puede crear un patrón de eventos de EventBridge basado en las siguientes situaciones:

Valores potenciales de detail-type
  • "GuardDuty Malware Protection Resource Status Active"

  • "GuardDuty Malware Protection Resource Status Warning"

  • "GuardDuty Malware Protection Resource Status Error"

Patrón del evento

{ "detail-type": ["potential detail-type"], "source": ["aws.guardduty"] }

Ejemplo de esquema de notificaciones para GuardDuty Malware Protection Resource Status Active:

{ "version": "0", "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", "detail-type": "GuardDuty Malware Protection Resource Status Active", "source": "aws.guardduty", "account": "111122223333", "time": "2017-12-22T18:43:48Z", "region": "us-east-1", "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"], "detail": { "schemaVersion": "1.0", "eventTime": "2024-02-28T01:01:01Z", "s3BucketDetails": { "bucketName": "amzn-s3-demo-bucket" }, "resourceStatus": "ACTIVE" } }

Ejemplo de esquema de notificaciones para GuardDuty Malware Protection Resource Status Warning:

{ "version": "0", "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", "detail-type": "GuardDuty Malware Protection Resource Status warning", "source": "aws.guardduty", "account": "111122223333", "time": "2017-12-22T18:43:48Z", "region": "us-east-1", "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"], "detail": { "schemaVersion": "1.0", "eventTime": "2024-02-28T01:01:01Z", "s3BucketDetails": { "bucketName": "amzn-s3-demo-bucket" }, "resourceStatus": "WARNING", "statusReasons": [ { "code": "INSUFFICIENT_TEST_OBJECT_PERMISSIONS" } ] } }

Ejemplo de esquema de notificaciones para GuardDuty Malware Protection Resource Status Error:

{ "version": "0", "id": "fc7a35b7-83bd-3c1f-ecfa-1b8de9e7f7d2", "detail-type": "GuardDuty Malware Protection Resource Status Error", "source": "aws.guardduty", "account": "111122223333", "time": "2017-12-22T18:43:48Z", "region": "us-east-1", "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"], "detail": { "schemaVersion": "1.0", "eventTime": "2024-02-28T01:01:01Z", "s3BucketDetails": { "bucketName": "amzn-s3-demo-bucket" }, "resourceStatus": "ERROR", "statusReasons": [ { "code": "EVENTBRIDGE_MANAGED_EVENTS_DELIVERY_DISABLED" } ] } }

Según el motivo de resourceStatus ERROR, se completará el valor statusReasons.

Para obtener información sobre los pasos de solución de problemas para las siguientes advertencias y errores, consulte Solución de problemas sobre el estado del plan de protección contra malware.

Producto del análisis del objeto S3

{ "detail-type": ["GuardDuty Malware Protection Object Scan Result"], "source": ["aws.guardduty"] }

Ejemplo de esquema de notificaciones para NO_THREATS_FOUND:

{ "version": "0", "id": "72c7d362-737a-6dce-fc78-9e27a0171419", "detail-type": "GuardDuty Malware Protection Object Scan Result", "source": "aws.guardduty", "account": "111122223333", "time": "2024-02-28T01:01:01Z", "region": "us-east-1", "resources": [arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE], "detail": { "schemaVersion": "1.0", "scanStatus": "COMPLETED", "resourceType": "S3_OBJECT", "s3ObjectDetails": { "bucketName": "amzn-s3-demo-bucket", "objectKey": "APKAEIBAERJR2EXAMPLE", "eTag": "ASIAI44QH8DHBEXAMPLE", "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE", "s3Throttled": false }, "scanResultDetails": { "scanResultStatus": "NO_THREATS_FOUND", "threats": null } } }

Ejemplo de esquema de notificaciones para THREATS_FOUND:

{ "version": "0", "id": "72c7d362-737a-6dce-fc78-9e27a0171419", "detail-type": "GuardDuty Malware Protection Object Scan Result", "source": "aws.guardduty", "account": "111122223333", "time": "2024-02-28T01:01:01Z", "region": "us-east-1", "resources": [arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE], "detail": { "schemaVersion": "1.0", "scanStatus": "COMPLETED", "resourceType": "S3_OBJECT", "s3ObjectDetails": { "bucketName": "amzn-s3-demo-bucket", "objectKey": "APKAEIBAERJR2EXAMPLE", "eTag": "ASIAI44QH8DHBEXAMPLE", "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE", "s3Throttled": false }, "scanResultDetails": { "scanResultStatus": "THREATS_FOUND", "threats": [ { "name": "EICAR-Test-File (not a virus)" } ] } } }
nota

El campo scanResultDetails.Threats contiene solo una amenaza. De forma predeterminada, el análisis de protección contra malware para S3 indica la primera amenaza detectada. Después de esto, el scanStatus se establece en COMPLETED.

Esquema de notificaciones de ejemplo para el estado del producto del análisis UNSUPPORTED (Omitido):

{ "version": "0", "id": "72c7d362-737a-6dce-fc78-9e27a0EXAMPLE", "detail-type": "GuardDuty Malware Protection Object Scan Result", "source": "aws.guardduty", "account": "111122223333", "time": "2024-02-28T01:01:01Z", "region": "us-east-1", "resources": [arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE], "detail": { "schemaVersion": "1.0", "scanStatus": "SKIPPED", "resourceType": "S3_OBJECT", "s3ObjectDetails": { "bucketName": "amzn-s3-demo-bucket", "objectKey": "APKAEIBAERJR2EXAMPLE", "eTag": "ASIAI44QH8DHBEXAMPLE", "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE", "s3Throttled": false }, "scanResultDetails": { "scanResultStatus": "UNSUPPORTED", "threats": null } } }

Esquema de notificaciones de ejemplo para el estado del producto del análisis ACCESS_DENIED (Omitido):

{ "version": "0", "id": "72c7d362-737a-6dce-fc78-9e27a0EXAMPLE", "detail-type": "GuardDuty Malware Protection Object Scan Result", "source": "aws.guardduty", "account": "111122223333", "time": "2024-02-28T01:01:01Z", "region": "us-east-1", "resources": [arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE], "detail": { "schemaVersion": "1.0", "scanStatus": "SKIPPED", "resourceType": "S3_OBJECT", "s3ObjectDetails": { "bucketName": "amzn-s3-demo-bucket", "objectKey": "APKAEIBAERJR2EXAMPLE", "eTag": "ASIAI44QH8DHBEXAMPLE", "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE", "s3Throttled": false }, "scanResultDetails": { "scanResultStatus": "ACCESS_DENIED", "threats": null } } }

Esquema de notificaciones de ejemplo para el estado del producto del análisis FAILED:

{ "version": "0", "id": "72c7d362-737a-6dce-fc78-9e27a0EXAMPLE", "detail-type": "GuardDuty Malware Protection Object Scan Result", "source": "aws.guardduty", "account": "111122223333", "time": "2024-02-28T01:01:01Z", "region": "us-east-1", "resources": [arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE], "detail": { "schemaVersion": "1.0", "scanStatus": "FAILED", "resourceType": "S3_OBJECT", "s3ObjectDetails": { "bucketName": "amzn-s3-demo-bucket", "objectKey": "APKAEIBAERJR2EXAMPLE", "eTag": "ASIAI44QH8DHBEXAMPLE", "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE", "s3Throttled": false }, "scanResultDetails": { "scanResultStatus": "FAILED", "threats": null } } }

Eventos de error de etiqueta posteriores al análisis

Patrón del evento:

{ "detail-type": "GuardDuty Malware Protection Post Scan Action Failed", "source": "aws.guardduty" }

Ejemplo de esquema de notificaciones para ACCESS_DENIED:

{ "version": "0", "id": "746acd83-d75c-5b84-91d2-dad5f13ba0d7", "detail-type": "GuardDuty Malware Protection Post Scan Action Failed", "source": "aws.guardduty", "account": "111122223333", "time": "2024-06-10T16:16:08Z", "region": "us-east-1", "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"], "detail": { "schemaVersion": "1.0", "eventTime": "2024-06-10T16:16:08Z", "s3ObjectDetails": { "bucketName": "amzn-s3-demo-bucket", "objectKey": "2024-03-10-16-16-00-7D723DE8DBE9Y2E0", "eTag": "0e9eeec810ad8b61d69112c15c2a5hb6", "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE", "s3Throttled": false }, "postScanActions": [{ "actionType": "TAGGING", "failureReason": "ACCESS_DENIED" }] } }

Ejemplo de esquema de notificaciones para MAX_TAG_LIMIT_EXCEEDED:

{ "version": "0", "id": "746acd83-d75c-5b84-91d2-dad5f13ba0d7", "detail-type": "GuardDuty Malware Protection Post Scan Action Failed", "source": "aws.guardduty", "account": "111122223333", "time": "2024-06-10T16:16:08Z", "region": "us-east-1", "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"], "detail": { "schemaVersion": "1.0", "eventTime": "2024-06-10T16:16:08Z", "s3ObjectDetails": { "bucketName": "amzn-s3-demo-bucket", "objectKey": "2024-03-10-16-16-00-7D723DE8DBE9Y2E0", "eTag": "0e9eeec810ad8b61d69112c15c2a5hb6", "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE", "s3Throttled": false }, "postScanActions": [{ "actionType": "TAGGING", "failureReason": "MAX_TAG_LIMIT_EXCEEDED" }] } }

Para solucionar estos motivos de error, consulte Solucionar errores en el etiquetado posterior al análisis de objetos de S3.