Supervisar los clústeres de Amazon EMR para comprobar el cifrado en tránsito en el momento del lanzamiento - 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.

Supervisar los clústeres de Amazon EMR para comprobar el cifrado en tránsito en el momento del lanzamiento

Creado por Susanne Kangnoh (AWS)

Entorno: producción

Tecnologías: análisis; macrodatos CloudNative; seguridad, identidad y conformidad

Carga de trabajo: código abierto

Servicios de AWS: Amazon EMR; Amazon SNS; AWS; CloudTrail Amazon CloudWatch

Resumen

Este patrón proporciona un control de seguridad que supervisa los clústeres de Amazon EMR en el momento del lanzamiento y envía una alerta si no se ha habilitado el cifrado en tránsito. 

Amazon EMR es un servicio web que le facilita la ejecución de los marcos de trabajo de macrodatos, tales como Apache Hadoop, para procesar y analizar datos. Amazon EMR le permite procesar grandes cantidades de datos de forma rentable al ejecutar el mapeo y reducir los pasos en paralelo.

El cifrado de datos evita que usuarios no autorizados accedan o lean los datos en reposo o los datos en tránsito. Los datos en reposo se refieren a los datos que se almacenan en medios como un sistema de archivos local en cada nodo, el Sistema de archivos distribuido de Hadoop (HDFS) o el Sistema de archivos EMR (EMRFS) a través de Amazon Simple Storage Service (Amazon S3). Los datos en tránsito se refieren a los datos que viajan por la red y están en movimiento entre un trabajo y otro. El cifrado en tránsito admite características de cifrado de código abierto para Apache Spark, Apache TEZ, Apache Hadoop, Apache HBase y Presto. Para habilitar el cifrado, debe crear una configuración de seguridad desde la interfaz de la línea de comandos de AWS (AWS CLI), la consola o los SDK de AWS y especificando la configuración de cifrado de datos. Puede proporcionar los artefactos de cifrado para el cifrado en tránsito de estas dos maneras:

  • Cargando un archivo comprimido de certificados en Amazon S3.

  • Haciendo referencia a una clase Java personalizada que proporciona artefactos de cifrado.

El control de seguridad que se incluye en este patrón supervisa las llamadas a la API y genera un evento de Amazon CloudWatch Events en la RunJobFlowacción. El evento llama a una función de Lambda de AWS que ejecuta un script de Python. La función obtiene el ID del clúster de EMR de la entrada JSON del evento y realiza las siguientes comprobaciones para determinar si hay una infracción de seguridad:

  • Comprueba si el clúster de EMR tiene una configuración de seguridad específica de Amazon EMR.

  • Si el clúster tiene una configuración de seguridad, comprueba si el cifrado en tránsito está habilitado.

  • Si el clúster no tiene una configuración de seguridad, envía una alerta a la dirección de correo electrónico que usted proporcione mediante Amazon Simple Notification Service (Amazon SNS). La notificación especifica el nombre del clúster de EMR, los detalles de la infracción, la información de la región y la cuenta de AWS y el ARN (nombre de recurso de Amazon) de AWS Lambda del que proviene la notificación.

Requisitos previos y limitaciones

Requisitos previos

  • Una cuenta de AWS activa.

  • Un bucket de S3 para cargar el código de Lambda que se proporciona con este patrón.

  • Una dirección de correo electrónico en la que desee recibir las notificaciones de infracciones.

  • El registro de Amazon EMR está habilitado para acceder a todos los registros de la API.

Limitaciones

  • Este control de detección es regional y debe implementarse en cada región de AWS que desee supervisar.

Versiones de producto

  • Amazon EMR versión 4.8.1 o posterior.

Arquitectura

Arquitectura de flujo de trabajo

Arquitectura que monitorea las llamadas a la API y genera un evento en la RunJobFlow acción.

Automatizar y escalar

  • Si utiliza AWS Organizations, puede utilizar AWS Cloudformation StackSets para implementar la plantilla en varias cuentas que desee supervisar.

Herramientas

Servicios de AWS

  • Amazon EMR: Amazon EMR es una plataforma de clúster administrada que simplifica la ejecución de los marcos de trabajo de macrodatos, tales como Apache Hadoop y Apache Spark en AWS para procesar y analizar grandes cantidades de datos. Mediante el uso de estos marcos de trabajo y proyectos de código abierto relacionados, puede procesar datos para fines de análisis y cargas de trabajo de inteligencia empresarial. Además, puede utilizar Amazon EMR para transformar y trasladar grandes cantidades de datos hacia y desde otros almacenes de datos y bases de datos de AWS, tales como Amazon S3 y Amazon DynamoDB.

  • AWS Cloudformation: AWS le CloudFormation ayuda a modelar y configurar sus recursos de AWS, a aprovisionarlos de forma rápida y coherente y a gestionarlos durante todo su ciclo de vida. Facilita poder usar una plantilla para describir los recursos y sus dependencias, y lanzarlos y configurarlos juntos como una pila, en lugar de administrarlos de forma individual. Puede administrar y aprovisionar pilas en varias cuentas y regiones de AWS.

  • AWS Cloudwatch Events: Amazon CloudWatch Events ofrece una transmisión casi en tiempo real de eventos del sistema que describen los cambios en los recursos de AWS. CloudWatch Events se da cuenta de los cambios operativos a medida que se producen y toma las medidas correctivas necesarias, mediante el envío de mensajes en respuesta al entorno, la activación de funciones, la realización de cambios y la recopilación de información sobre el estado.

  • AWS Lambda: AWS Lambda es un servicio de computación que permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo. Solo pagará por el tiempo de computación que consuma, no se aplican cargos cuando el código no se está ejecutando.

  • AWS SNS – Amazon Simple Notification Service (Amazon SNS) coordina y administra el envío de mensajes entre los publicadores y los clientes, incluyendo los servidores web y las direcciones de correo electrónico. Los suscriptores reciben todos los mensajes publicados de los temas a los que están suscritos y todos los suscriptores de un tema reciben los mismos mensajes.

Código

Este patrón incluye un adjunto con dos archivos:

  • EMRInTransitEncryption.zip es un archivo comprimido que incluye el control de seguridad (código de Lambda).

  • EMRInTransitEncryption.ymles una CloudFormation plantilla que despliega el control de seguridad.

Consulte la sección Epics para obtener información sobre cómo usar estos archivos.

Epics

TareaDescripciónHabilidades requeridas

Cargue el código en un bucket de S3.

Cree un bucket de S3 nuevo o utilice un bucket de S3 ya existente para cargar el archivo adjunto EMRInTransitEncryption.zip (código de Lambda). Este depósito debe estar en la misma región de AWS que la CloudFormation plantilla y los recursos que desea evaluar.

Arquitecto de la nube

Implemente la CloudFormation plantilla.

Abra la consola de Cloudformation en la misma región de AWS que el bucket de S3 e implemente el archivo EMRInTransitEncryption.yml que se incluye en el archivo adjunto. En la siguiente Epic, proporcione los valores de los parámetros.

Arquitecto de la nube,
TareaDescripciónHabilidades requeridas

Proporcione el nombre del bucket de S3.

Escriba el nombre del bucket de S3 que ha creado o seleccionado en la primera Epic. Este bucket de S3 contiene el archivo.zip del código Lambda y debe estar en la misma región de AWS que CloudFormation la plantilla y el recurso que se van a evaluar.

Arquitecto de la nube

Proporcione la clave de S3.

Especifique la ubicación del archivo .zip de código de Lambda en su bucket de S3, sin barras diagonales iniciales (por ejemplo, EMRInTransitEncryption.zip o controls/EMRInTransitEncryption.zip).

Arquitecto de la nube

Proporcione una dirección de correo electrónico.

Especifique una dirección de correo electrónico activa en la que desee recibir notificaciones de infracciones.  

Arquitecto de la nube

Especifique un nivel de registro.

Especifique el nivel de registro y la verbosidad de los registros de Lambda. Info designa mensajes informativos detallados sobre el progreso de la aplicación y solo debe usarse para la depuración. Error designa los eventos de error que aún podrían permitir que la aplicación siguiera ejecutándose. Warning designa situaciones potencialmente dañinas.

Arquitecto de la nube
TareaDescripciónHabilidades requeridas

Confirme la suscripción de correo electrónico.

Cuando la CloudFormation plantilla se implementa correctamente, envía un mensaje de correo electrónico de suscripción a la dirección de correo electrónico que proporcionó. Debe confirmar esta suscripción de correo electrónico para recibir notificaciones.                                                      

Arquitecto de la nube

Recursos relacionados

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip