Recoger registros de AWS CloudTrail
En este documento se describe cómo recoger registros de AWS CloudTrail configurando un feed de Google Security Operations y cómo se asignan los campos de registro a los campos del modelo de datos unificado (UDM) de Google SecOps.
Para obtener más información, consulta [Ingestión de datos en Google SecOps][1].
Una implementación típica consta de AWS CloudTrail y el feed de Google SecOps configurado 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: la plataforma que recoge los registros.
AWS S3: la plataforma que almacena los registros.
Feed de Google SecOps: el feed de Google SecOps que obtiene registros de AWS S3 y escribe registros en Google SecOps.
Google SecOps: la plataforma que conserva y analiza los registros de AWS CloudTrail.
Una etiqueta de ingestión 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 ingestión AWS_CLOUDTRAIL
.
Antes de empezar
Asegúrate de que cumples 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 ingerir registros de S3 con SQS
En esta sección se describen los pasos básicos para ingerir registros de AWS CloudTrail en tu instancia de Google SecOps. En los pasos se describe cómo hacerlo con Amazon S3 y Amazon SQS como tipo de fuente del feed.
Configurar AWS CloudTrail y S3
En este procedimiento, configurará los registros de AWS CloudTrail para que se escriban en un bucket de S3.
- En la consola de AWS, busca CloudTrail.
- Haz clic en Crear ruta.
- Proporciona un nombre de registro.
- Seleccione Crear nuevo segmento de S3. También puedes usar un segmento de S3 que ya tengas.
- Proporciona un nombre para el alias de KMS de AWS o elige una clave de KMS de AWS.
- Puedes dejar el resto de los ajustes como predeterminados y hacer clic en Siguiente.
- Elige Tipo de evento, añade Eventos de datos según sea necesario y haz clic en Siguiente.
- Revisa la configuración en Revisar y crear y haz clic en Crear rastro.
- En la consola de AWS, busca Amazon S3 Buckets.
- Haz clic en el segmento de registro que acabas de crear y selecciona la carpeta AWSLogs. A continuación, haga clic en Copiar URI de S3 y guárdelo para usarlo en los pasos siguientes.
Configurar una cola SQS estándar y SNS
Si usas una cola de SQS, debe ser una cola estándar, no una cola FIFO.
- Habilita AWS CloudTrail y configúralo para que envíe registros a un bucket de S3 mediante un registro nuevo o uno ya creado.
- Abre la consola de AWS SNS y crea un tema estándar. Ponle un nombre, por ejemplo, CloudTrail-Notification-Topic.
Crea una cola de SQS con la consola de AWS SQS. Por ejemplo: CloudTrail-Notification-Queue y actualiza su política de acceso para permitir que el ARN del tema de SNS envíe mensajes. Para obtener información sobre cómo crear colas de SQS, consulta el artículo Empezar 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"} } } ] }
Ve al tema de SNS → Suscripciones → Crear suscripción, define el protocolo como SQS y el endpoint como el ARN de la cola de SQS.
CloudTrail no envía de forma nativa los nuevos registros a SNS. Para habilitar las notificaciones, puedes usar un selector de eventos de CloudTrail para eventos de gestión o la integración de CloudTrail con CloudWatch Logs y, a continuación, crear una regla de eventos de CloudWatch que active las notificaciones configurando un tema de SNS como destino. Para obtener más información, consulta cómo configurar notificaciones en un contenedor 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`] } } }
Asegúrate de que los roles o las políticas de IAM permitan que CloudWatch Events publique en SNS y de que SNS pueda enviar mensajes a SQS.
Configurar un usuario de gestión de identidades y accesos de AWS
Configura un usuario de gestión de identidades y accesos de AWS que Google SecOps utilizará para acceder tanto a la cola de SQS (si se usa) como al bucket de S3.
- En la consola de AWS, busca IAM.
- Haz clic en Usuarios y, en la siguiente pantalla, en Crear usuarios.
- Proporciona un nombre para el usuario (por ejemplo, chronicle-feed-user) y selecciona Provide user access to the AWS Management Console (Proporcionar acceso de usuario a la consola de administración de AWS).
- Selecciona Attach existing policies directly (Asociar políticas ya creadas directamente) y, a continuación, AmazonS3ReadOnlyAccess (Acceso de solo lectura a Amazon S3) o AmazonS3FullAccess (Acceso completo a Amazon S3), según sea necesario. AmazonS3FullAccess se usaría si Google SecOps tuviera que borrar los segmentos de S3 después de leer los registros para optimizar los costes de almacenamiento de AWS S3.
- Como alternativa recomendada al paso anterior, puedes restringir aún más el acceso al bucket de S3 especificado creando una política personalizada. Haz clic en Crear política y sigue las instrucciones de la documentación de AWS para crear una política personalizada.
- Cuando apliques una política, asegúrate de haber incluido
sqs:DeleteMessage
. Google SecOps no puede eliminar mensajes si el permisosqs:DeleteMessage
no está asociado a la cola de SQS. Todos los mensajes se acumulan en el lado de AWS, lo que provoca un retraso, ya que Google SecOps intenta repetidamente transferir los mismos archivos. - Haz clic en Siguiente:Etiquetas.
- Añade las etiquetas que quieras y haz clic en Siguiente:revisar.
- Revisa la configuración y haz clic en Crear usuario.
- Una vez que se haya creado el usuario, ve a la pestaña Credenciales de seguridad y haz clic en Crear clave de acceso.
- Elige CLI y haz clic en Siguiente:etiquetas.
- Añade las etiquetas que necesites y, a continuación, haz clic en Crear clave de acceso: revisar.
- Copia el ID de clave de acceso y la clave de acceso secreta del usuario creado para usarlos en el siguiente paso.
Configurar permisos de claves de KMS
Se necesita una clave de KMS para desencriptar los registros de CloudTrail, que están encriptados del lado del servidor. AWS KMS ofrece cifrado y seguridad mejorados para los datos sensibles almacenados en Amazon S3.
- En la consola de AWS, busca Key Management Service (KMS).
- Haz clic en Crear clave > Siguiente.
- Añade un alias a la clave. Si quieres, añade una Descripción y Etiquetas. Haz clic en Siguiente: Revisar.
- Después de revisar la configuración, haga clic en Siguiente.
- Selecciona los usuarios clave que deberían tener acceso a esta clave y, a continuación, haz clic en Finalizar.
Configurar feeds
Hay dos puntos de entrada diferentes para configurar feeds en la plataforma Google SecOps:
- Configuración de SIEM > Feeds > Añadir nuevo
- Centro de contenido > Paquetes de contenido > Empezar
Cómo configurar el feed de AWS CloudTrail
- Haz clic en el paquete Amazon Cloud Platform.
- En el tipo de registro AWS CloudTrail, especifique los siguientes valores:
Especifique los valores de los siguientes campos:
- Tipo de fuente: Amazon SQS V2
- Nombre de la cola: el nombre de la cola de SQS de la que se va a leer.
- URI de S3: el URI del segmento.
s3://your-log-bucket-name/
- Sustituye
your-log-bucket-name
por el nombre real de tu segmento de S3.
- Sustituye
Opciones de eliminación de la fuente: selecciona la opción de eliminación que prefieras según tus preferencias de ingesta.
Antigüedad máxima del archivo: incluye los archivos modificados en los últimos días. El valor predeterminado es 180 días.
ID de clave de acceso a la cola de SQS: una clave de acceso de cuenta que es una cadena alfanumérica de 20 caracteres.
Clave de acceso secreta de la cola de SQS: una clave de acceso de cuenta que es una cadena alfanumérica de 40 caracteres.
Opciones avanzadas
- Nombre del feed: un valor rellenado automáticamente que identifica el feed.
- Espacio de nombres del recurso: espacio de nombres asociado al feed.
- Etiquetas de ingestión: etiquetas aplicadas a todos los eventos de este feed.
Haga clic en Crear feed.
Para obtener más información sobre cómo configurar varios feeds para diferentes tipos de registros en esta familia de productos, consulta el artículo Configurar 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
Para obtener más información sobre la asignación de campos y la asignación de UDM, consulta el artículo Asignación de campos de AWS CloudTrail.
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.