Recopilación de datos de orígenes personalizados - Amazon Security Lake

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.

Recopilación de datos de orígenes personalizados

Amazon Security Lake puede recopilar registros y eventos de orígenes de terceros personalizados. Para cada origen personalizado, Security Lake gestiona lo siguiente:

  • Proporciona un prefijo único para el origen de su bucket de Amazon S3.

  • Crea un rol en AWS Identity and Access Management (IAM) que permite a una fuente personalizada escribir datos en el lago de datos. El límite de permisos de este rol lo establece una política AWS administrada denominada AmazonSecurityLakePermissionsBoundary.

  • Crea una AWS Lake Formation tabla para organizar los objetos que la fuente escribe en Security Lake.

  • Configura un AWS Glue rastreador para particionar los datos de origen. El rastreador rellena el campo AWS Glue Data Catalog con la tabla. También descubre automáticamente nuevos datos de origen y extrae las definiciones de los esquemas.

Para agregar un origen personalizado a Security Lake, debe cumplir con los siguientes requisitos:

  1. Destino: la fuente personalizada debe poder escribir datos en Security Lake como un conjunto de objetos S3 con el prefijo asignado al origen. En el caso de los orígenes que contienen varias categorías de datos, debe entregar cada clase de evento única de Open Cybersecurity Schema Framework (OCSF) como un origen independiente. Security Lake crea un rol de IAM que permite al origen personalizado escribir en la ubicación especificada del bucket de S3.

    nota

    Utilice la herramienta de validación de OCSF para comprobar si la fuente personalizada es compatible con. OCSF Schema 1.1

  2. Formato: cada objeto de S3 que se recopile del origen personalizado debe tener el formato de un archivo de Apache Parquet.

  3. Esquema: se debe aplicar la misma clase de evento OCSF a cada registro de un objeto con formato Parquet.

Prácticas recomendadas de ingestión de orígenes personalizados

Para facilitar el procesamiento y las consultas de datos de forma eficiente, recomendamos seguir estas prácticas recomendadas al añadir un origen personalizado a Security Lake:

Particiones

Los objetos deben particionarse por ubicación de origen Región de AWS Cuenta de AWS, fecha y ubicación. La ruta de datos de la partición tiene el formato bucket-name/source-location/region=region/accountId=accountID/eventDay=YYYYMMDD.

Un ejemplo de partición es aws-security-data-lake-us-west-2-lake-uid/source-location/region=us-west-2/accountId=123456789012/eventDay=20230428/.

  • bucket-name: nombre del bucket de Amazon S3 en el que Security Lake almacena los datos de origen personalizados.

  • source-location: prefijo para el origen personalizado de su bucket de S3. Security Lake almacena todos los objetos de S3 de un origen determinado con este prefijo, que es exclusivo de ese origen.

  • region— Región de AWS en el que se escriben los datos.

  • accountId— Cuenta de AWS ID al que pertenecen los registros de la partición de origen.

  • eventDay: fecha en la que ocurrió el evento, formateada como una cadena de ocho caracteres (YYYYMMDD).

Tamaño y velocidad del objeto

Los objetos escritos en Security Lake deberían almacenar los registros en búfer durante 5 minutos. Si el período de almacenamiento incluye demasiados datos para consultarlos de manera eficiente, los orígenes personalizados pueden escribir varios registros en el intervalo de 5 minutos, siempre y cuando el tamaño medio de esos archivos se mantenga por debajo de los 256 MB. Los orígenes personalizados con bajo rendimiento pueden escribir objetos más pequeños cada 5 minutos para mantener una latencia de ingesta de 5 minutos y pueden almacenar registros en búfer durante períodos más largos.

Ajustes de Parquet

Security Lake es compatible con las versiones 1.x y 2.x de Parquet. El tamaño de la página de datos debe limitarse a 1 MB (sin comprimir). El tamaño del grupo de filas no debe ser superior a 256 MB (comprimido). Para la compresión dentro del objeto Parquet, se prefiere el estándar.

Ordenar

Dentro de cada objeto con formato Parquet, los registros deben ordenarse por tiempo para reducir el costo de la consulta de datos.

Requisitos previos para añadir un origen personalizado

Al agregar un origen personalizado, Security Lake crea un rol de IAM que permite al origen escribir datos en la ubicación correcta del lago de datos. El nombre del rol sigue el formatoAmazonSecurityLake-Provider-{name of the custom source}-{region}, que region es el formato Región de AWS en el que se agrega la fuente personalizada. Security Lake adjunta una política al rol que permite el acceso al lago de datos. Si ha cifrado el lago de datos con una AWS KMS clave administrada por el cliente, Security Lake también adjunta una política kms:Decrypt y kms:GenerateDataKey permisos al rol. El límite de permisos de este rol lo establece una política AWS administrada llamada AmazonSecurityLakePermissionsBoundary.

Verificar permisos

Antes de añadir un origen personalizado, verifique que tenga los permisos para realizar las siguientes acciones.

Para verificar sus permisos, utilice IAM para revisar las políticas de IAM asociadas a su identidad de IAM. A continuación, debe comparar la información de estas políticas con la siguiente lista de acciones que debe poder añadir como un origen personalizado.

  • glue:CreateCrawler

  • glue:CreateDatabase

  • glue:CreateTable

  • glue:StopCrawlerSchedule

  • iam:GetRole

  • iam:PutRolePolicy

  • iam:DeleteRolePolicy

  • iam:PassRole

  • lakeformation:RegisterResource

  • lakeformation:GrantPermissions

  • s3:ListBucket

  • s3:PutObject

Estas acciones le permiten recopilar registros y eventos de una fuente personalizada, enviarlos a la AWS Glue base de datos y tabla correctas y almacenarlos en Amazon S3.

Si utiliza una AWS KMS clave para cifrar su lago de datos en el servidor, también necesitará permiso para kms:CreateGrantkms:DescribeKey, y. kms:GenerateDataKey

importante

Si piensa utilizar la consola de Security Lake para añadir una fuente personalizada, puede omitir el siguiente paso y continuar con. Adición de un origen personalizado La consola de Security Lake ofrece un proceso simplificado para empezar y crea todas los roles de IAM necesarios o utiliza las funciones existentes en su nombre.

Si planea usar la API de Security Lake o AWS CLI agregar una fuente personalizada, continúe con el siguiente paso: crear un rol de IAM que permita el acceso de escritura a la ubicación del bucket de Security Lake.

Cree una función de IAM para permitir el acceso de escritura a la ubicación del bucket de Security Lake (API y paso único AWS CLI)

Si utiliza la API de Security Lake o AWS CLI quiere añadir una fuente personalizada, añada esta función de IAM para conceder AWS Glue permiso para rastrear los datos de origen personalizados e identificar las particiones de los datos. Estas particiones son necesarias para organizar los datos y crear y actualizar tablas en el catálogo de datos.

Después de crear este rol de IAM, necesitará el nombre de recurso de Amazon (ARN) del rol para añadir un origen personalizado.

Debe adjuntar la política arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole AWS gestionada.

Para conceder los permisos necesarios, también debe crear e integrar la siguiente política en línea en su función para poder leer los archivos de datos de la fuente personalizada y crear o actualizar las tablas del catálogo de datos. Rastreador de AWS Glue AWS Glue

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3WriteRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::{{bucketName}}/*" ] } ] }

Adjunte la siguiente política de confianza para permitir que un Cuenta de AWS usuario pueda asumir la función en función del identificador externo:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Si el bucket de S3 de la región en la que vas a añadir la fuente personalizada está cifrado con un paquete administrado por el cliente AWS KMS key, también debes adjuntar la siguiente política al rol y a tu política de claves de KMS:

{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" "kms:Decrypt" ], "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::{{name of S3 bucket created by Security Lake}" ] } }, "Resource": [ "{{ARN of customer managed key}}" ] }

Adición de un origen personalizado

Tras crear el rol de IAM para invocar el AWS Glue rastreador, sigue estos pasos para añadir una fuente personalizada en Security Lake.

Console
  1. Abra la consola de Security Lake en https://console.aws.amazon.com/securitylake/.

  2. Con el Región de AWS selector situado en la esquina superior derecha de la página, seleccione la región en la que desee crear la fuente personalizada.

  3. Elija Orígenes personalizados en el panel de navegación y, a continuación, elija Crear origen personalizado.

  4. En la sección Detalles del origen personalizado, introduzca un nombre único a nivel mundial para el origen personalizado. A continuación, seleccione una clase de evento de OCSF que describa el tipo de datos que el origen personalizado enviará a Security Lake.

  5. Para Cuenta de AWS con permiso para escribir datos, introduzca el ID de Cuenta de AWS y el ID externo del origen personalizado que escribirá los registros y eventos en el lago de datos.

  6. Para Acceso al servicio, cree y utilice un nuevo rol de servicio o utilice un rol de servicio existente que dé permiso a Security Lake para invocar la AWS Glue.

  7. Seleccione Crear.

API

Para añadir una fuente personalizada mediante programación, utilice el CreateCustomLogSourcefuncionamiento de la API de Security Lake. Utilice la operación en el Región de AWS lugar en el que desee crear la fuente personalizada. Si utilizas AWS Command Line Interface (AWS CLI), ejecuta el comando create-custom-log-source.

En su solicitud, utilice los parámetros compatibles para especificar la configuración del origen personalizado:

  • sourceName— Especifique un nombre para la fuente. El nombre debe ser un valor único a nivel regional.

  • eventClasses— Especifique una o más clases de eventos de OCSF para describir el tipo de datos que la fuente enviará a Security Lake. Para obtener una lista de las clases de eventos de OCSF compatibles como fuente en Security Lake, consulte Open Cybersecurity Schema Framework (OCSF).

  • sourceVersion— Si lo desea, especifique un valor para limitar la recopilación de registros a una versión específica de los datos de origen personalizados.

  • crawlerConfiguration— Especifique el nombre de recurso de Amazon (ARN) del rol de IAM que creó para invocar el rastreador. AWS Glue Para ver los pasos detallados para crear un rol de IAM, consulte Requisitos previos para añadir una fuente personalizada

  • providerIdentity— Especifique la AWS identidad y el ID externo que utilizará la fuente para escribir registros y eventos en el lago de datos.

En el siguiente ejemplo, se agrega una fuente personalizada como fuente de registro en la cuenta del proveedor de registros designado en las regiones designadas. Este ejemplo está formateado para Linux, macOS o Unix y utiliza el carácter de barra invertida (\) de continuación de línea para mejorar la legibilidad.

$ aws securitylake create-custom-log-source \ --source-name EXAMPLE_CUSTOM_SOURCE \ --event-classes '["DNS_ACTIVITY", "NETWORK_ACTIVITY"]' \ --configuration crawlerConfiguration={"roleArn=arn:aws:iam::XXX:role/service-role/RoleName"},providerIdentity={"externalId=ExternalId,principal=principal"} \ --region=[“ap-southeast-2”]

Mantener los datos de origen personalizados actualizados en AWS Glue

Tras añadir una fuente personalizada en Security Lake, Security Lake crea un AWS Glue rastreador. El rastreador se conecta a su origen personalizado, determina las estructuras de datos y rellena el catálogo de datos de AWS Glue con tablas.

Recomendamos ejecutar el rastreador manualmente para mantener actualizado el esquema de origen personalizado y mantener la funcionalidad de consulta en Athena y otros servicios de consultas. En concreto, debe ejecutar el rastreador si se produce alguno de los siguientes cambios en el conjunto de datos de entrada de un origen personalizado:

  • El conjunto de datos tiene una o más columnas nuevas de nivel superior.

  • El conjunto de datos tiene uno o más campos nuevos en una columna con un tipo de datos struct.

Para obtener instrucciones sobre cómo ejecutar un rastreador, consulte Programar un AWS Glue rastreador en la AWS Glue Guía para desarrolladores.

Security Lake no puede eliminar ni actualizar los rastreadores existentes en su cuenta. Si elimina un origen personalizado, te recomendamos eliminar el rastreador asociado si piensa crear un origen personalizado con el mismo nombre en el futuro.

Eliminación de un origen personalizado

Elimine un origen personalizado para dejar de enviar datos desde el origen a Security Lake.

Console
  1. Abra la consola de Security Lake en https://console.aws.amazon.com/securitylake/.

  2. Con el Región de AWS selector situado en la esquina superior derecha de la página, selecciona la región de la que quieres eliminar la fuente personalizada.

  3. En el panel de navegación, elija Orígenes de datos.

  4. Seleccione el origen personalizado que desea eliminar.

  5. Seleccione Anular el registro de un origen personalizado y, a continuación, seleccione Eliminar para confirmar la acción.

API

Para eliminar una fuente personalizada mediante programación, utilice el DeleteCustomLogSourcefuncionamiento de la API de Security Lake. Si usa AWS Command Line Interface (AWS CLI), ejecute el comando delete-custom-log-source. Utilice la operación en la Región de AWS en la que desee eliminar el origen personalizado.

En la solicitud, utilice el parámetro sourceName para especificar el nombre del origen personalizado que se va a eliminar. O bien, especifique el nombre de un origen personalizado y utilice el parámetro sourceVersion para limitar el alcance de la eliminación a solo una versión específica de los datos del origen personalizado.

En el siguiente ejemplo, se elimina una fuente de registro personalizada de Security Lake.

Este ejemplo está formateado para Linux, macOS o Unix y utiliza el carácter de barra invertida (\) de continuación de línea para mejorar la legibilidad.

$ aws securitylake delete-custom-log-source \ --source-name EXAMPLE_CUSTOM_SOURCE