Recopila registros de AWS CloudTrail

Versión del analizador: 30.0

Compatible con:

En este documento, se describe cómo recopilar registros de AWS CloudTrail configurando un feed de Google Security Operations y cómo los campos de registro se asignan a los campos del Modelo de datos unificado (UDM) de Google SecOps.

Para obtener más información, consulta Transferencia de datos a Google SecOps.

Una implementación típica consta de AWS CloudTrail y el feed de Google SecOps configurados para enviar registros a Google SecOps. Tu implementación puede ser diferente de la implementación típica que se describe en este documento. La implementación contiene los siguientes componentes:

  • AWS CloudTrail: Es la plataforma que recopila registros.

  • AWS S3: Es la plataforma que almacena los registros.

  • Feed de Google SecOps: Es el feed de Google SecOps que recupera registros de AWS S3 y los escribe en Google SecOps.

  • Google SecOps: Es la plataforma que conserva y analiza los registros de AWS CloudTrail.

Una etiqueta de transferencia identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado. La información de este documento se aplica al analizador con la etiqueta de transferencia AWS_CLOUDTRAIL.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Cuenta de AWS
  • Se cumplen los requisitos previos para usar AWS CloudTrail. Para obtener más información, consulta Configuración de AWS CloudTrail.
  • Todos los sistemas de la arquitectura de implementación usan la zona horaria UTC.

Pasos básicos para transferir registros de S3 con SQS

En esta sección, se describen los pasos básicos para transferir registros de AWS CloudTrail a tu instancia de Google SecOps. En los pasos, se describe cómo hacerlo con Amazon S3 y Amazon SQS como el tipo de fuente del feed.

Configura AWS CloudTrail y S3

En este procedimiento, configurarás los registros de AWS CloudTrail para que se escriban en un bucket de S3.

  1. En la consola de AWS, busca CloudTrail.
  2. Haz clic en Crear ruta.
  3. Proporciona un Nombre del registro de auditoría.
  4. Selecciona Crear un bucket de S3 nuevo. También puedes usar un bucket de S3 existente.
  5. Proporciona un nombre para el alias de AWS KMS o elige una clave de AWS KMS existente.
  6. Puedes dejar los demás parámetros de configuración con sus valores predeterminados y hacer clic en Siguiente.
  7. Elige Tipo de evento, agrega Eventos de datos según sea necesario y haz clic en Siguiente.
  8. Revisa la configuración en Revisar y crear y haz clic en Crear registro de seguimiento.
  9. En la consola de AWS, busca Amazon S3 Buckets.
  10. Haz clic en el bucket de registros que acabas de crear y selecciona la carpeta AWSLogs. Luego, haz clic en Copy S3 URI y guárdalo para usarlo en los siguientes pasos.

Configura una cola de SQS estándar y SNS

Si usas una cola de SQS, debe ser una cola estándar, no una cola FIFO.

  1. Habilita AWS CloudTrail y configúralo para que entregue registros a un bucket de S3 con un seguimiento nuevo o existente.
  2. Abre la consola de AWS SNS y crea un tema estándar nuevo. Asigna un nombre, p.ej., CloudTrail-Notification-Topic.
  3. Crea una cola de SQS con la consola de AWS SQS, p.ej., CloudTrail-Notification-Queue, y actualiza su política de acceso para permitir que el ARN del tema de SNS envíe mensajes. Para obtener detalles sobre cómo crear colas de SQS, consulta Cómo comenzar a usar Amazon SQS.

    Ejemplo de fragmento de política de SQS:

    {
       "Version": "2012-10-17",
       "Id": `PolicyForSNS`,
       "Statement": [
          {
             "Sid": "AllowSNS",
             "Effect": "Allow",
             "Principal": { "Service": "sns.amazonaws.com" },
             "Action": "SQS:SendMessage",
             "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:CloudTrail-Notification-Queue",
             "Condition": {
             "ArnEquals": { "aws:SourceArn": "arn:aws:sns:REGION:ACCOUNT_ID:CloudTrail-Notification-Topic"}
             }
          }
       ]
    }
    
  4. Ve al tema de SNS → Suscripciones → Crear suscripción, configura el protocolo como SQS y el extremo como el ARN de la cola de SQS.

  5. CloudTrail no envía registros nuevos a SNS de forma nativa. Para habilitar las notificaciones, puedes usar un selector de eventos de CloudTrail para eventos de administración o la integración de CloudTrail con CloudWatch Logs y, luego, crear una regla de eventos de CloudWatch que active las notificaciones estableciendo un tema de SNS como destino. Para obtener más información, consulta cómo configurar notificaciones en tu bucket de S3.

    Ejemplo de patrón de evento:

    {
       "source": ["aws.s3"],
       "detail-type": ["AWS API Call via CloudTrail"],
       "detail": {
          "eventName": ["PutObject"],
          "requestParameters": {
             "bucketName": [`CloudTrail-Notification-Topic`]
          }
       }
    }
    
  6. Asegúrate de que los roles o las políticas de IAM permitan que CloudWatch Events publique en SNS y que SNS pueda enviar mensajes a SQS.

Configura el usuario de IAM de AWS

Configura un usuario de IAM de AWS que Google SecOps usará para acceder a la cola de SQS (si se usa) y al bucket de S3.

  1. En la consola de AWS, busca IAM.
  2. Haz clic en Usuarios y, luego, en la siguiente pantalla, haz clic en Crear usuarios.
  3. Proporciona un nombre para el usuario, por ejemplo, chronicle-feed-user, y selecciona Provide user access to the AWS Management Console.
  4. Selecciona Adjuntar las políticas existentes de forma directa y, luego, AmazonS3ReadOnlyAccess o AmazonS3FullAccess, según sea necesario. AmazonS3FullAccess se usaría si Google SecOps debe borrar los buckets de S3 después de leer los registros para optimizar los costos de almacenamiento de AWS S3.
  5. Como alternativa recomendada al paso anterior, puedes restringir aún más el acceso solo al bucket de S3 especificado creando una política personalizada. Haz clic en Crear política y sigue la documentación de AWS para crear una política personalizada.
  6. Cuando apliques una política, asegúrate de haber incluido sqs:DeleteMessage. Google SecOps no puede borrar mensajes si el permiso sqs:DeleteMessage no está asociado a la cola de SQS. Todos los mensajes se acumulan en el lado de AWS, lo que provoca una demora, ya que Google SecOps intenta transferir los mismos archivos de forma reiterada.
  7. Haz clic en Siguiente:Etiquetas.
  8. Agrega las etiquetas que sean necesarias y haz clic en Siguiente:Revisar.
  9. Revisa la configuración y haz clic en Crear usuario.
  10. Una vez que se cree el usuario, ve a la pestaña Credenciales de seguridad y haz clic en Crear clave de acceso.
  11. Elige CLI y haz clic en Siguiente:Etiquetas.
  12. Agrega las etiquetas que sean necesarias y, luego, haz clic en Crear clave de acceso: Revisar.
  13. Copia el ID de clave de acceso y la clave de acceso secreta del usuario creado para usarlos en el siguiente paso.

    Para encontrar el SubjectID, sigue estos pasos:

    1. Inicia el proceso de configuración del feed de AWS CloudTrail en Google SecOps.
    2. Navega al bucket de Amazon S3 designado y revisa los registros de AWS CloudTrail para ver las entradas relacionadas con el intento de configuración del feed.
    3. Abre la entrada de registro pertinente y busca la sección userIdentity dentro de los datos JSON sin procesar.
    4. Dentro de esa sección, busca el campo principalId o userName. El valor numérico que se indica aquí es tu SubjectID único.
    5. Copia este SubjectID y agrégalo a la política de confianza de tu rol de IAM de AWS para otorgar los permisos de acceso necesarios.

Configura los permisos de la clave de KMS

Se requiere una clave de KMS para desencriptar los registros de CloudTrail, que se encriptan del lado del servidor. AWS KMS proporciona mayor encriptación y seguridad para los datos sensibles almacenados en Amazon S3.

  1. En la consola de AWS, busca servicio de administración de claves (KMS).
  2. Haz clic en Crear clave:Siguiente.
  3. Agrega un alias para la clave. De manera opcional, agrega una Descripción y Etiquetas si es necesario. Haz clic en Siguiente: Revisar.
  4. Después de revisar la configuración, haz clic en Siguiente.
  5. Selecciona los usuarios clave que deben tener acceso a esta clave y, luego, haz clic en Finalizar.

Configura feeds

Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:

  • Configuración de SIEM > Feeds > Agregar nuevo
  • Centro de contenido > Paquetes de contenido > Comenzar

Cómo configurar el feed de AWS CloudTrail

  1. Haz clic en el paquete Amazon Cloud Platform.
  2. En el tipo de registro AWS CloudTrail, especifica los siguientes valores:
  3. Especifica valores para los siguientes campos:

    • Tipo de fuente: Amazon SQS V2
    • Nombre de la cola: Es el nombre de la cola de SQS de la que se leerá.
    • URI de S3: Es el URI del bucket.
      • s3://your-log-bucket-name/
        • Reemplaza your-log-bucket-name por el nombre real de tu bucket de S3.
    • Opciones de eliminación de la fuente: Selecciona la opción de eliminación según tus preferencias de transferencia.

    • Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días especificada. El valor predeterminado es de 180 días.

    • ID de clave de acceso a la cola de SQS: Es una clave de acceso a la cuenta que es una cadena alfanumérica de 20 caracteres.

    • Clave de acceso secreta de la cola de SQS: Es una clave de acceso a la cuenta que consiste en una cadena alfanumérica de 40 caracteres.

    Opciones avanzadas

    • Nombre del feed: Es un valor prepropagado que identifica el feed.
    • Espacio de nombres del recurso: Es el espacio de nombres asociado con el feed.
    • Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.
  4. Haz clic en Crear feed.

Para obtener más información sobre cómo configurar varios feeds para diferentes tipos de registros dentro de esta familia de productos, consulta Configura feeds por producto.

Tipos de registros de AWS CloudTrail admitidos

El analizador de AWS CloudTrail admite los siguientes servicios:

  • apigateway.amazonaws.com
  • appconfig.amazonaws.com
  • autoscaling.amazonaws.com
  • cloud9.amazonaws.com
  • cloudsearch.amazonaws.com
  • cloudshell.amazonaws.com
  • cloudtrail.amazonaws.com
  • config.amazonaws.com
  • devicefarm.amazonaws.com
  • ds.amazonaws.com
  • dynamodb.amazonaws.com
  • ec2-instance-connect.amazonaws.com
  • ec2.amazonaws.com
  • ecr-public.amazonaws.com
  • ecr.amazonaws.com
  • ecs.amazonaws.com
  • eks.amazonaws.com
  • elasticache.amazonaws.com
  • elasticloadbalancing.amazonaws.com
  • firehose.amazonaws.com
  • guardduty.amazonaws.com
  • health.amazonaws.com
  • iam.amazonaws.com
  • imagebuilder.amazonaws.com
  • kinesis.amazonaws.com
  • kinesisanalytics.amazonaws.com
  • kinesisvideo.amazonaws.com
  • kms.amazonaws.com
  • lambda.amazonaws.com
  • logs.amazonaws.com
  • macie2.amazonaws.com
  • monitoring.amazonaws.com
  • network-firewall.amazonaws.com
  • organizations.amazonaws.com
  • quicksight.amazonaws.com
  • ram.amazonaws.com
  • rds.amazonaws.com
  • resource-explorer-2.amazonaws.com
  • resource-groups.amazonaws.com
  • route53-recovery-readiness.amazonaws.com
  • route53.amazonaws.com
  • route53domains.amazonaws.com
  • route53resolver.amazonaws.com
  • s3-outposts.amazonaws.com
  • s3.amazonaws.com
  • s3express.amazonaws.com
  • secretsmanager.amazonaws.com
  • securityhub.amazonaws.com
  • ses.amazonaws.com
  • signin.amazonaws.com
  • ssm.amazonaws.com
  • sts.amazonaws.com
  • waf-regional.amazonaws.com
  • waf.amazonaws.com
  • wafv2.amazonaws.com

Formatos de registro de AWS CloudTrail compatibles

El analizador de AWS CloudTrail admite registros en formato JSON.

Registros de muestra de AWS CloudTrail admitidos

  • JSON:

    {
      "Records": [{
          "eventVersion": "1.08",
          "userIdentity": {
              "type": "AssumedRole",
              "principalId": "AROAXELJRGZMPHEYTK4Q4:redlock",
              "arn": "arn:aws:sts::111111111111:assumed-role/PrismaCloudReadOnlyRole/redlock",
              "accountId": "111111111111",
              "accessKeyId": "ASIAXELJRGZMNUCV3DC4",
              "sessionContext": {
                  "sessionIssuer": {
                      "type": "Role",
                      "principalId": "AROAXELJRGZMPHEYTK4Q4",
                      "arn": "arn:aws:iam::111111111111:role/PrismaCloudReadOnlyRole",
                      "accountId": "111111111111",
                      "userName": "PrismaCloudReadOnlyRole"
                  },
                  "webIdFederationData": {},
                  "attributes": {
                      "creationDate": "2021-07-01T03:20:01Z",
                      "mfaAuthenticated": "false"
                  }
              }
          },
          "eventTime": "2021-07-01T03:35:42Z",
          "eventSource": "kms.amazonaws.com",
          "eventName": "DescribeKey",
          "awsRegion": "eu-west-1",
          "sourceIPAddress": "198.51.100.0",
          "userAgent": "aws-sdk-java/1.11.1025Linux/4.14.232-176.381.amzn2.x86_64OpenJDK_64-Bit_Server_VM/11.0.10+9java/11.0.10groovy/2.5.12vendor/AdoptOpenJDKcfg/retry-mode/legacy",
          "requestParameters": {
              "keyId": "11a011a1-1010-11a1-a0aa-c4e1a9367642"
          },
          "responseElements": null,
          "requestID": "11a011a1-1010-11a1-a0aa-604ac86fc50e",
          "eventID": "11a011a1-1010-11a1-a0aa-17ef2bdeb889",
          "readOnly": true,
          "resources": [{
              "accountId": "111111111111",
              "type": "AWS::KMS::Key",
              "ARN": "arn:aws:kms:eu-west-1:111111111111:key/11a011a1-1010-11a1-a0aa-c4e1a9367642"
          }],
          "eventType": "AwsApiCall",
          "managementEvent": true,
          "recipientAccountId": "111111111111",
          "eventCategory": "Management"
      }]
    }
    

Para obtener más información sobre la asignación de campos y la asignación de UDM, consulta Asignación de campos de AWS CloudTrail.

Registro de cambios

Consulta el registro de cambios de este analizador

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.