Supervise ElastiCache los clústeres de Amazon para comprobar el cifrado en reposo - 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.

Supervise ElastiCache los clústeres de Amazon para comprobar el cifrado en reposo

Abhishek Agawane, Amazon Web Services

Resumen

Amazon ElastiCache es un servicio de Amazon Web Services (AWS) que proporciona una solución de almacenamiento en caché rentable, escalable y de alto rendimiento para distribuir un almacén de datos en memoria o un entorno de caché en la nube. Recupera datos de almacenes de datos en memoria de alto rendimiento y baja latencia. Esta funcionalidad lo convierte en una opción popular para casos de uso en tiempo real, como el almacenamiento en caché, los almacenes de sesiones, los juegos, los servicios geoespaciales, los análisis en tiempo real y las colas. ElastiCache ofrece los almacenes de datos de Redis y Memcached, los cuales ofrecen tiempos de respuesta inferiores a un milisegundo.

El cifrado de datos ayuda a evitar que usuarios no autorizados lean datos confidenciales disponibles en sus clústeres Redis y sus sistemas de almacenamiento en caché asociados. Esto incluye los datos guardados en medios persistentes, conocidos como datos en reposo y datos que pueden ser interceptados cuando recorren la red entre los clientes y los servidores de caché, conocidos como datos en tránsito.

Puede habilitar el cifrado en reposo para ElastiCache (Redis OSS) al crear un grupo de replicación configurando el parámetro en. AtRestEncryptionEnabled true Cuando este parámetro está habilitado, cifra el disco durante las operaciones de sincronización, copia de seguridad e intercambio, y cifra las copias de seguridad almacenadas en Amazon Simple Storage Service (Amazon S3). No puede habilitar el cifrado en reposo en un grupo de reproducción existente. Cuando cree un grupo de replicación, puede activar la encriptación en reposo de estas dos formas:

  • Al seleccionar la opción Predeterminado, que utiliza el cifrado administrado por el servicio en reposo.

  • Mediante una clave gestionada por el cliente y proporcionando el ID de clave o el nombre de recurso de Amazon (ARN) de AWS Key Management Service (AWS KMS).

Este patrón proporciona un control de seguridad que supervisa las llamadas a la API y genera un evento de Amazon EventBridge Events en la CreateReplicationGroup operación. Este evento llama a una AWS Lambda función que ejecuta un script de Python. La función obtiene el ID del grupo de replicación de la entrada JSON del evento y realiza las siguientes comprobaciones para determinar si hay un clúster sin cifrar:

  • Comprueba si la AtRestEncryptionEnabled clave existe.

  • Si AtRestEncryptionEnabled existe, comprueba el valor para ver si existetrue.

  • Si el AtRestEncryptionEnabled valor está establecido enfalse, establece una variable que rastrea las infracciones y envía un mensaje de infracción a la dirección de correo electrónico que usted proporcione, mediante una notificación de Amazon Simple Notification Service (Amazon SNS).

Requisitos previos y limitaciones

Requisitos previos 

  • Una activa Cuenta de AWS.

  • Un bucket de S3 para cargar el código de Lambda proporcionado.

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

  • ElastiCache registro activado, para acceder a todos los registros de la API.

Limitaciones

  • Este control de detección es regional y debe implementarse en todos los lugares Región de AWS que desee supervisar.

  • El control es compatible con los grupos de replicación que se ejecutan en una nube privada virtual (VPC).

  • El control admite grupos de replicación que ejecutan los siguientes tipos de nodos:

    • R7g, R6gd, R6g, R5, R4 y R3

    • M7g, M6g, M5, M4 y M3

    • T4g, T3, T2

    • C7gn

Versiones de producto

  • Soporta ElastiCache (Redis OSS) la versión 3.2.6 o posterior y Valkey 7.2 o posterior

Arquitectura

Arquitectura de flujo de trabajo

Flujo de trabajo para la supervisión de clústeres. ElastiCache
  1. El usuario lanza un grupo de ElastiCache replicación mediante una llamada a la API Consola de administración de AWS, la AWS Command Line Interface (AWS CLI) o una llamada a la API.

  2. ElastiCache genera EventBridge eventos cuando se llama a la CreateReplicationGroup API.

  3. Una EventBridge regla activa y llama a la función Lambda para comprobar el cumplimiento.

  4. La función Lambda procesa el evento y comprueba si el cifrado en reposo está habilitado en el clúster. ElastiCache

  5. Si se detecta una infracción de cifrado, la función Lambda publica un mensaje de notificación en un tema de SNS.

  6. Amazon SNS envía una notificación por correo electrónico a los administradores sobre la infracción de conformidad con el cifrado.

Automatización y escala

  • Si la está utilizando AWS Organizations, puede utilizarla AWS CloudFormation StackSetspara implementar esta plantilla en varias cuentas que desee supervisar.

Tools (Herramientas)

Servicios de AWS

  • Amazon ElastiCache facilita la configuración, la administración y el escalado de los entornos de caché en memoria distribuidos en. Nube de AWS Proporciona una caché en memoria rentable, redimensionable y de alto rendimiento, a la vez que elimina la complejidad asociada a la implementación y la administración de un entorno de caché distribuida. ElastiCache funciona con los motores Redis y Memcached.

  • AWS CloudFormationle ayuda a modelar y configurar sus AWS recursos, 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 gestionar y aprovisionar pilas en varios Cuentas de AWS y. Regiones de AWS

  • Amazon EventBridge ofrece un flujo casi en tiempo real de los eventos del sistema que describen los cambios en AWS los recursos. EventBridge se percata de los cambios operativos a medida que se producen y toma las medidas correctivas necesarias, enviando mensajes para responder al entorno, activando funciones, realizando cambios y recopilando información de estado.

  • 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. 

  • Amazon SNS coordina y gestiona el envío de mensajes entre editores y clientes, incluidos 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

El código de este patrón está disponible en el repositorio de cifrado GitHub Monitor Amazon ElastiCache Clusters for at-rest. Consulta la sección de Epics para obtener información sobre cómo usar los archivos del repositorio.

Prácticas recomendadas

Implementación

  • Asegúrese de registrar las AWS CloudTrail llamadas a la ElastiCache API antes de implementar este control.

  • Se trata de un control regional; despliega el control en cada Región de AWS lugar donde lo utilices ElastiCache.

  • Valide la solución en dev/test los entornos antes de implementarla en producción.

Seguridad

  • Para mejorar el control de las claves de cifrado, utilice las claves KMS administradas por el cliente.

  • Revise los permisos AWS Identity and Access Management (IAM) para garantizar el acceso con privilegios mínimos para la función de ejecución de Lambda.

  • Configure alertas para los mensajes que estén en la cola de mensajes muertos.

Operaciones

  • Establezca una retención de registros adecuada para equilibrar las necesidades de cumplimiento con los costos.

  • Ajuste la simultaneidad reservada de Lambda para ajustarla en función de ElastiCache su frecuencia de creación.

  • Suscriba varias direcciones de correo electrónico a Amazon SNS para recibir notificaciones de equipo.

Supervisión

  • Revisa CloudWatch las alarmas de Amazon para asegurarte de que los umbrales de alarma se ajustan a tus necesidades operativas.

  • Supervise periódicamente la duración de la ejecución de las métricas Lambda y las tasas de error.

  • Audite las infracciones con regularidad para revisar las notificaciones de conformidad con el cifrado.

Epics

TareaDescripciónHabilidades requeridas

Descarga el código de GitHub.

Clona o descarga el repositorio de código desde GitHub. El repositorio contiene los archivos index.py yelasticache_encryption_at_rest.yml.

Arquitecto de la nube

Cree paquetes de despliegue de Lambda.

Cree dos archivos.zip a partir del código de Python:

  • CreaElastiCache-EncryptionAtRest.zip, que contieneindex.py.

  • Utilice el siguiente comando :

    zip ElastiCache-EncryptionAtRest.zip index.py
Arquitecto de la nube

Cargue el código en un bucket de S3.

  1. Cree un nuevo depósito de S3 o utilice un depósito de S3 existente para cargar el código Lambda.

  2. Comprima el código Lambda (index.py) y asígnele un nombre. ElastiCache-EncryptionAtRest.zip

  3. Cargue el archivo.zip en el bucket de S3. Este depósito debe estar en el Región de AWS mismo lugar que los recursos que desea evaluar.

Arquitecto de la nube

Implemente la CloudFormation plantilla.

Abre la CloudFormation consola en el Región de AWS mismo lugar que el bucket de S3 e implementa el elasticache_encryption_at_rest.yml archivo que se proporciona en el repositorio de código. 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 el Región de AWS mismo lugar que la plantilla y CloudFormation el recurso que se van a evaluar. 

Arquitecto de la nube

Proporcione la clave de S3.

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

Arquitecto de la nube

Proporcione una dirección de correo electrónico.

Proporcione 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.

  • Infodesigna mensajes informativos detallados sobre el progreso de la aplicación y solo debe usarse para la depuración.

  • Errordesigna los eventos de error que aún podrían permitir que la aplicación siguiera ejecutándose.

  • Warningdesigna 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 suscripción a la dirección de correo electrónico que has proporcionado. Debe confirmar esta suscripción de correo electrónico para recibir notificaciones.

Arquitecto de la nube

Resolución de problemas

ProblemaSolución

La función Lambda no se ha activado

Síntoma: no se inicia sesión CloudWatch después de crear o modificar ElastiCache los clústeres.

Soluciones:

  • Compruebe el estado de la EventBridge regla: 

    aws events describe-rule --name <rule-name>
  • Confirme que la política de Lambda basada en recursos permite la invocación. EventBridge

  • Confirme que el patrón de EventBridge eventos coincide con las llamadas a la API. ElastiCache

No hay notificaciones por correo electrónico

Síntoma: la función Lambda se ejecuta correctamente, pero no recibe ninguna notificación por correo electrónico.

Soluciones:

  • Confirma tu suscripción a Amazon SNS a través del enlace de confirmación por correo electrónico.

  • Revisa las carpetas de spam o correo basura para ver si hay correos electrónicos de Amazon SNS.

  • Compruebe el nombre del recurso de Amazon (ARN) para el tema Amazon SNS en la variable de entorno Lambda: OUTBOUND_TOPIC_ARN

  • Pruebe Amazon SNS manualmente: 

    aws sns publish --topic-arn <arn> --message "Test"

Problemas con los permisos

Síntoma: errores de acceso denegado en los registros de funciones Lambda. CloudWatch

Soluciones:

  • Compruebe que la función de ejecución de Lambda tenga los permisos de ElastiCache lectura necesarios.

  • Confirme que la política AWS KMS clave incluye la función de ejecución de Lambda.

  • Asegúrese de que la política de temas de Amazon SNS permita a Lambda publicar.

Recursos relacionados