¿Cómo elimino información confidencial de los registros de CloudFront?

4 minutos de lectura
0

De forma predeterminada, los registros estándar de Amazon CloudFront capturan información confidencial para algunos de sus campos. Por cuestiones de privacidad, quiero eliminar esta parte de los registros.

Descripción breve

Nota: En este artículo se utiliza el ejemplo del campo Client-IP (c-ip).

Los registros de CloudFront capturan c-ip como uno de sus campos de forma predeterminada. Hay tres formas de eliminar c-ip de sus registros.

  • Activar una función de AWS Lambda que elimine el campo en la entrega del registro en Amazon Simple Storage Service (Amazon S3).
  • Utilizar un proceso de Amazon Elastic Compute Cloud (Amazon EC2) que se ejecute a intervalos determinados para eliminar el campo.
  • Utilizar registros en tiempo real de CloudFront y eliminar el campo confidencial antes de enviar los datos de registro a Amazon S3.

Resolución

Activación de una función de Lambda

Una forma de eliminar el campo c-ip es utilizar los eventos de notificación de Amazon S3. Cuando CloudFront entregue el archivo de registro en el bucket de Amazon S3, configure su bucket para activar una función de Lambda.

Crear una función de Lambda

1.    Abra la consola de AWS Lambda.

2.    EnFunctions (Funciones), cree una nueva función de Lambda que tenga las siguientes configuraciones:

  • Usa el nombre del objeto del evento Amazon S3.
  • Obtiene el objeto del bucket de S3.

3.    Elimine la columna c-ip o sustituya los valores por datos anónimos.

Nota: Sustituya los valores para mantener el mismo formato en caso de que otras aplicaciones sigan procesando los registros.

4.    Guarde y vuelva a cargar el registro en Amazon S3.

Crear un nuevo evento

1.    En el bucket de destino de los registros, vaya a Properties (Propiedades).

2.    En Notificaciones de eventos, cree un nuevo evento.

3.    Seleccione el tipo de evento Put y la función de Lambda de destino.

4.    Seleccione la función de Lambda creada en el paso 1 y, a continuación, seleccioneSave (Guardar).

Importante: Para evitar una invocación recursiva (bucle infinito) con la función de Lambda, realice las siguientes acciones:

  • Haga que sus registros de CloudFront se entreguen a un prefijo de preparación inicial. Por ejemplo, “original”.
  • Haga que el evento de Amazon S3 se active solo en ese prefijo.
  • Haga que la función de Lambda entregue los registros en un prefijo diferente. Por ejemplo, “procesado”.

Si entrega los registros en el mismo prefijo, la función de Lambda se activa de nuevo y crea una invocación recursiva. Para obtener más información, consulte Avoiding recursive invocation with Amazon S3 and AWS Lambda (Cómo evitar la invocación recursiva con Amazon S3 y AWS Lambda).

Nota: Para mantener bajos los costos de Amazon S3, configure una política de ciclo de vida de Amazon S3 que haga que los registros originales caduquen después de un periodo de tiempo determinado.

Utilización de un proceso de Amazon EC2

Utilice Amazon EventBridge para crear una regla programada (cron) que lance una instancia EC2 y procese los archivos de registro en una recurrencia programada. Por ejemplo, una vez al día. Una vez finalizado el proceso, detenga la instancia EC2 hasta la próxima repetición para ahorrar costos.

1.    Configure EventBridge y Lambda para iniciar una instancia EC2 a una hora determinada. Para obtener más información, consulte ¿Cómo detengo e inicio instancias de Amazon EC2 a intervalos regulares con Lambda?

2.    En la instancia EC2, despliegue un código que descargue los registros durante un periodo de tiempo determinado. Por ejemplo, un día completo. Elimine la columna c-ip para procesar los registros o sustituya los valores de la columna por datos anónimos. Vuelva a cargar los registros procesados en el bucket de S3.

Opcional: fusione todos los registros procesados en un único archivo para ahorrar en costos de transiciones del ciclo de vida de Amazon S3. Este proceso es útil si pretende almacenar los registros durante largos periodos de tiempo.

Uso de Kinesis Data Firehose

Utilice los registros en tiempo real de CloudFront para seleccionar los campos que desea guardar. Posteriormente, haga que Amazon Kinesis Data Firehose envíe los datos de registro a Amazon S3.

Al configurar los registros en tiempo real de CloudFront, está disponible una lista de campos que se incluyen en cada registro de registro en tiempo real. Cada registro contiene hasta 40 campos. Tiene la opción de recibir todos los campos disponibles o solo los campos cuyo rendimiento debe supervisar y analizar. Desactive el campo c-ip para excluirlo de sus registros.

Nota: Debido al uso de Amazon Kinesis Data Streams, esta opción puede resultar bastante costosa. Considere las otras dos opciones ( Activar una función de Lambda o Utilizar un proceso de Amazon EC2) para una solución más rentable.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año