Proteja los datos confidenciales de CloudWatch los registros con Amazon Macie - Recomendaciones de AWS

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.

Proteja los datos confidenciales de CloudWatch los registros con Amazon Macie

Anisha Salunkhe, Omar Franco y David Guardiola, Amazon Web Services

Resumen

Este patrón le muestra cómo utilizar Amazon Macie para detectar automáticamente los datos confidenciales en un grupo de CloudWatch registros de Amazon Logs mediante la implementación de un flujo de trabajo integral de supervisión de la seguridad. La solución utiliza Amazon Data Firehose para transmitir las entradas de CloudWatch Logs a Amazon Simple Storage Service (Amazon S3). Macie escanea periódicamente este depósito en busca de información de identificación personal (PII), datos financieros y otro contenido confidencial. La infraestructura se implementa a través de una AWS CloudFormation plantilla que proporciona todas las configuraciones Servicios de AWS y necesidades.

CloudWatch Los registros suelen contener datos de aplicaciones que, de forma inadvertida, pueden incluir información confidencial del usuario. Esto puede generar riesgos de conformidad y seguridad. Los enfoques tradicionales de monitoreo de registros carecen de capacidades automatizadas de detección de datos confidenciales. Esto puede dificultar la identificación y la respuesta a las posibles exposiciones de datos en tiempo real.

Este patrón ayuda a los equipos de seguridad y a los responsables de cumplimiento a mantener la confidencialidad de los datos, ya que permite detectar y alertar de forma automática los datos confidenciales en los sistemas de registro. Esta solución permite una respuesta proactiva a los incidentes mediante las notificaciones del Amazon Simple Notification Service (Amazon SNS) y aísla automáticamente los datos confidenciales en un bucket seguro de Amazon S3. Puede personalizar los patrones de detección e integrar el flujo de trabajo con sus procesos de operaciones de seguridad existentes.

Requisitos previos y limitaciones

Requisitos previos 

Limitaciones

  • Macie está sujeto a cuotas de servicio. Para obtener más información, consulte Cuotas para Macie en la documentación de Macie.

Arquitectura

Arquitectura de destino

El siguiente diagrama muestra el flujo de trabajo para usar Macie para examinar las entradas de registro de CloudWatch Logs en busca de datos confidenciales.

 

El flujo de trabajo muestra los siguientes pasos:

  1. El grupo de CloudWatch registros genera los registros, que están sujetos al filtro de suscripción.

  2. El filtro de suscripción reenvía los registros a Amazon Data Firehose.

  3. Los registros se cifran con una clave AWS Key Management Service (AWS KMS) cuando pasan por el flujo de entrega de Amazon Data Firehose.

  4. La transmisión de entrega entrega los registros al depósito de registros exportados en Amazon S3.

  5. Todos los días, a las 4 de la mañana, Amazon EventBridge inicia una AWS Lambda función que inicia un escaneo de Macie en busca de datos confidenciales en el depósito de registros exportados.

  6. Si Macie identifica datos confidenciales en el depósito, una función Lambda elimina el registro del depósito de registros exportado y lo cifra con un. AWS KMS key

  7. La función Lambda aísla los registros que contienen datos confidenciales en el depósito de aislamiento de datos.

  8. La identificación de datos confidenciales inicia un tema de Amazon SNS.

  9. Amazon SNS envía una notificación por correo electrónico a una dirección de correo electrónico que usted configure con información sobre los registros que contienen datos confidenciales.

Recursos desplegados

La CloudFormation plantilla despliega los siguientes recursos en tu objetivo Cuenta de AWS y Región de AWS:

Tools (Herramientas)

Servicios de AWS

  • AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en todo el mundo Cuentas de AWS . Regiones de AWS

  • Amazon CloudWatch Logs le ayuda a centralizar los registros de todos sus sistemas y aplicaciones Servicios de AWS para que pueda supervisarlos y archivarlos de forma segura.

  • Amazon Data Firehose le ayuda a entregar datos de streaming en tiempo real a otros Servicios de AWS puntos de enlace HTTP personalizados y puntos de enlace HTTP propiedad de proveedores de servicios externos compatibles.

  • Amazon EventBridge es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. Por ejemplo, fuentes como AWS Lambda funciones, puntos finales de invocación HTTP que utilizan destinos de API o buses de eventos, entre otras. Cuentas de AWS

  • AWS Key Management Service (AWS KMS) le ayuda a crear y controlar claves criptográficas para proteger sus datos.

  • AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.

  • Amazon Macie lo ayuda a descubrir datos confidenciales, proporciona visibilidad de los riesgos de seguridad de los datos y permite la protección automática contra esos riesgos.

  • Amazon Simple Notification Service (Amazon SNS) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

Repositorio de código

El código de este patrón está disponible en el repositorio GitHub sample-macie-for-securing-cloudwatch-logs.

Prácticas recomendadas

Siga las prácticas CloudFormation recomendadas de la documentación. CloudFormation

Epics

TareaDescripciónHabilidades requeridas

Clone el repositorio de código.

Introduzca el siguiente comando para clonar el repositorio en la estación de trabajo local:

git clone https://github.com/aws-samples/sample-macie-for-securing-cloudwatch-logs
Desarrollador de aplicaciones

(Opcional) Edite la CloudFormation plantilla.

  1. Abre el archivo main.yaml.

  2. Personalice la plantilla mediante una de las siguientes acciones:

    • Puede cambiar el nombre de los recursos.

    • En la parameter sección, puede modificar los valores predeterminados.

    • Puede cambiar el patrón de filtro de suscripciones. Para obtener más información, consulte los filtros de suscripción a nivel de grupo de registros en la documentación de CloudWatch registros.

  3. Guarda y cierra el archivo main.yaml.

Desarrollador de aplicaciones

Opción 1: realizar la implementación mediante un script con parámetros de línea de comandos.

Introduzca el siguiente comando para implementar la solución mediante parámetros de línea de comandos, donde el valor de enable-macie es true solo si Amazon Macie aún no está habilitado:

./scripts/test-macie-solution.sh --deploy-stack \ --stack-name <stack name> \ --email <email address> \ --enable-macie <true or false> \ --region <region> \ --resource-name <prefix for all resources> \ --bucket-name <bucket name>
AWS general

Opción 2: Implemente mediante un script con variables de entorno.

  1. Introduzca los siguientes comandos para definir las variables de entorno, donde el valor de ENABLE_MACIE es true solo si Amazon Macie aún no está activado:

    export STACK_NAME=<stack name> export SNS_EMAIL=<email address> export ENABLE_MACIE=<true or false> export REGION=<region> export RESOURCE_NAME=<prefix for all resources> export BUCKET_NAME=<bucket name>
  2. Introduzca el siguiente comando para validar los parámetros antes de la implementación:

    ./scripts/test-macie-solution.sh \ --validate-params \ --email <email address> \ --region <region>
  3. Introduzca el siguiente comando para implementar la solución:

    ./scripts/test-macie-solution.sh --deploy-stack
AWS general

Opción 3: Implemente mediante AWS CLI.

Introduzca el siguiente comando para implementar la solución mediante AWS CLI, donde el valor de EnableMacie es true solo si Amazon Macie aún no está habilitado:

aws cloudformation create-stack \ --region us-east-1 \ --stack-name macie-for-securing-cloudwatch-logs \ --template-body file://app/main.yml \ --capabilities CAPABILITY_IAM \ --parameters \ ParameterKey=ResourceName,ParameterValue=<prefix for all resources> \ ParameterKey=BucketName,ParameterValue=<bucket name> \ ParameterKey=LogGroupName,ParameterValue=<path for log group> \ ParameterKey=SNSTopicEndpointEmail,ParameterValue=<email address> \ ParameterKey=EnableMacie,ParameterValue=<true or false>

Opción 4: Implementar mediante. Consola de administración de AWS

  1. Abra la consola de AWS CloudFormation.

  2. En la barra de navegación de la parte superior de la pantalla, selecciona la en la Región de AWS que quieres crear la pila.

  3. En la página Pilas, elija Crear pila en la parte superior derecha y, a continuación, elija Con recursos nuevos (estándar).

  4. En la página Crear pila, en Requisito previo: Preparar plantilla, elija Elegir una plantilla existente.

  5. En Especificar plantilla, selecciona Cargar un archivo de plantilla y, a continuación, carga la plantilla main.yaml desde tu repositorio clonado.

  6. Elija Siguiente.

  7. En la página Especificar los detalles de la pila, en el cuadro Nombre de la pila, introduce un nombre de pila.

  8. En la sección Parámetros, especifique los valores para los siguientes parámetros de la plantilla.

    • ResourceName: prefijo para todos los recursos

    • BucketName: nombre exclusivo del bucket de Amazon S3

    • LogGroupName: nombre del grupo de CloudWatch registros para Logs

    • SNSTopicEndpointEmail: Dirección de correo electrónico para las notificaciones

    • EnableMacie: Se establece en true si Macie aún no está activado

    • (Opcional)Region: el Región de AWS lugar en el que quieres desplegar la pila.

    • (Opcional)TemplatePath: ruta a la CloudFormation plantilla

  9. Elija Siguiente.

  10. En Capacidades, seleccione Acepto que esta plantilla puede crear recursos de IAM para especificar que desea utilizar los recursos de IAM en la plantilla.

  11. Elija Siguiente.

  12. En la página Revisar y crear, revise los detalles de la pila.

  13. Seleccione Enviar para lanzar su stack.

AWS general

Supervise el estado del despliegue y confirme el despliegue.

  1. Introduzca el siguiente comando para supervisar el estado de la implementación:

    ./scripts/test-macie-solution.sh \ --deployment-status \ --stack-name <stack name>
    nota

    También puedes supervisar el progreso y el estado de la creación de la pila en la pestaña Eventos de la nueva pila. Para obtener más información, consulta Supervisar el progreso de la pila.

  2. Cuando el estado cambie a CREATE_COMPLETE, revise los resultados de la pila para ver la información sobre los recursos.

AWS general

Confirme la suscripción a Amazon SNS.

Siga las instrucciones de Confirme su suscripción a Amazon SNS en la documentación de Amazon SNS para confirmar su suscripción a Amazon SNS.

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Opción 1: Realice la prueba con informes automatizados.

Si utilizó el nombre de pila predeterminado, introduzca el siguiente comando para probar la solución:

./scripts/test-macie-solution.sh \ --full-test

Si utilizó un nombre de pila personalizado, introduzca el siguiente comando para probar la solución:

./scripts/test-macie-solution.sh \ --full-test \ --stack-name <stack name>

Si ha utilizado un nombre de pila y parámetros personalizados, introduzca el siguiente comando para probar la solución:

./scripts/test-macie-solution.sh --full-test \ --stack-name <stack name> \ --region <region> \ --log-group <log group path>
AWS general

Opción 2: realizar la prueba con una validación específica.

  1. Introduzca el siguiente comando para generar datos de prueba con información confidencial:

    ./scripts/test-macie-solution.sh \ --generate-test-data \ --stack-name <stack name>

    Este comando hace lo siguiente:

    • Crea entradas de CloudWatch registro que contienen patrones de datos confidenciales realistas, como números de empleados IDs, patentes IDs, tarjetas de crédito, números de seguro social y direcciones de correo electrónico

    • Genera entradas de registro confidenciales y no confidenciales para realizar pruebas exhaustivas

    • Proporciona un registro detallado del proceso de generación de datos de prueba

  2. Introduzca el siguiente comando para verificar el flujo de la canalización de datos:

    ./scripts/test-macie-solution.sh \ --verify-pipeline \ --stack-name <stack name>

    Este comando hace lo siguiente:

    • Confirma que las entradas de CloudWatch los registros se transmiten a Amazon Data Firehose

    • Valida que los datos de registro se entregaron al bucket de Amazon S3 con el cifrado adecuado

    • Comprueba que el almacenamiento de objetos de Amazon S3 tenga la estructura de prefijos correcta

    • Verifica el estado de cifrado de los objetos almacenados

    • Supervisa el tiempo del flujo de datos y proporciona períodos de espera para el procesamiento

  3. Introduzca el siguiente comando para iniciar el trabajo de clasificación de Macie:

    ./scripts/test-macie-solution.sh \ --trigger-macie-job \ --stack-name <stack name>

    Este comando hace lo siguiente:

    • Activa manualmente el trabajo de clasificación de Macie mediante una función Lambda

    • Supervisa el estado de ejecución del trabajo y proporciona comentarios

    • Valida la disponibilidad del servicio de Macie antes de la ejecución

    • Gestiona los casos en los que Macie no está habilitada en la cuenta

    • Proporciona resultados detallados de la ejecución del trabajo

  4. Introduzca el siguiente comando para validar las alertas y el aislamiento de los datos:

    ./scripts/test-macie-solution.sh \ --verify-alerts \ --stack-name <stack name>

    Este comando hace lo siguiente:

    • Confirma que EventBridge las reglas estén correctamente configuradas y activas

    • Valida la configuración del tema Amazon SNS y el estado de la suscripción

    • Comprueba la configuración y los permisos del depósito de aislamiento de datos

    • Supervisa el movimiento de datos confidenciales al depósito de aislamiento

    • Verifica la funcionalidad completa del flujo de trabajo de alertas

AWS general
TareaDescripciónHabilidades requeridas

Opción 1: realizar una limpieza automática.

Si ha utilizado el nombre de pila predeterminado, introduzca el siguiente comando para eliminar la pila:

./scripts/cleanup-macie-solution.sh \ --full-cleanup

Si ha utilizado un nombre de pila personalizado, introduzca el siguiente comando para eliminar la pila:

./scripts/cleanup-macie-solution.sh \ --full-cleanup \ --stack-name <stack name>

Si ha utilizado un nombre de pila y parámetros personalizados, introduzca el siguiente comando para eliminar la pila:

./scripts/cleanup-macie-solution.sh \ --full-cleanup \ --stack-name <stack name> \ --region <region> \ --disable-macie <true or false>
AWS general

Opción 2: Realizar la step-by-step limpieza.

  1. Introduzca el siguiente comando para detener los procesos activos:

    ./scripts/cleanup-macie-solution.sh \ --stop-processes \ --stack-name <stack name>

    Este comando hace lo siguiente:

    • Desactiva EventBridge las reglas para impedir la ejecución de nuevos trabajos

    • Detiene cualquier trabajo de clasificación de Macie que se esté ejecutando actualmente

    • Cancela las ejecuciones de trabajos pendientes de Macie

    • Borra todos los mensajes pendientes de Amazon SNS de la cola

    • Proporciona actualizaciones de estado para cada proceso detenido

  2. Introduzca el siguiente comando para vaciar los depósitos de Amazon S3:

    ./scripts/cleanup-macie-solution.sh \ --empty-buckets \ --stack-name <stack name>

    Este comando hace lo siguiente:

    • Elimina todos los objetos del depósito para Logs CloudWatch

    • Elimina todos los objetos del bucket de aislamiento de datos de Amazon S3

    • Elimina cualquier carga multiparte incompleta

    • Gestiona los objetos versionados si el control de versiones de Amazon S3 está activado

    • Proporciona actualizaciones sobre el recuento de objetos y el progreso de la eliminación

  3. Introduzca el siguiente comando para eliminar la CloudFormation pila:

    ./scripts/cleanup-macie-solution.sh \ --delete-stack \ --stack-name <stack name>

    Este comando hace lo siguiente:

    • Inicia el proceso de eliminación de la CloudFormation pila

    • Supervisa el progreso de la eliminación con actualizaciones de estado en tiempo real

    • Gestiona los errores de eliminación con informes de errores detallados

    • Espera a que se elimine por completo la pila antes de continuar

    • Proporciona el historial de eventos de la pila para la resolución de problemas

  4. Introduzca el siguiente comando para limpiar los recursos de Macie:

    ./scripts/cleanup-macie-solution.sh \ --cleanup-macie \ --stack-name <stack name>

    Esta pila hace lo siguiente:

    • Elimina los identificadores de datos personalizados creados por la solución

    • Limpia cualquier resto de artefactos y hallazgos relacionados con el trabajo de Macie

    • Desactiva la sesión de Macie si la ha activado la pila

    • Maneja los casos en los que los recursos de Macie se comparten con otras aplicaciones

    • Proporciona el estado de limpieza detallado de cada componente de Macie

AWS general

Verifique la limpieza.

  1. Ingresa el siguiente comando para comprobar que la pila se ha eliminado:

    aws cloudformation describe-stacks \ --stack-name <stack name> \ --region <region>
  2. Introduzca el siguiente comando para comprobar que se han eliminado los buckets de Amazon S3:

    aws s3 ls | grep macie
  3. Introduzca el siguiente comando para comprobar que se han eliminado los identificadores de datos personalizados de Macie:

    aws macie2 list-custom-data-identifiers \ --region <region>
  4. Introduzca el siguiente comando para comprobar si hay recursos restantes:

    ./scripts/cleanup-macie-solution.sh \ --verify-cleanup \ --stack-name <stack name>
AWS general

Resolución de problemas

ProblemaSolución

CloudFormation el estado de la pila muestra CREATE_FAILED.

La CloudFormation plantilla está configurada para publicar registros en Logs. CloudWatch Puedes ver los registros en el Consola de administración de AWS para no tener que conectarte a tu EC2 instancia de Amazon. Para obtener más información, consulta Ver CloudFormation los registros en la consola (AWS entrada del blog).

CloudFormation delete-stackel comando falla.

Algunos recursos deben estar vacíos para poder eliminarlos. Por ejemplo, debe eliminar todos los objetos de un bucket de Amazon S3 o eliminar todas las instancias de un grupo de EC2 seguridad de Amazon antes de poder eliminar el bucket o el grupo de seguridad. Para obtener más información, consulte Fallos al eliminar la pila en la documentación de Amazon S3.

Error al analizar un parámetro.

Cuando utilice la consola AWS CLI o la CloudFormation consola para introducir un valor, añada las comillas.

Recursos relacionados