Supervise la actividad del usuario IAM root - 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 la actividad del usuario IAM root

Creado por Mostefa Brougui () AWS

Repositorio de código: -activity-monitor aws-iam-root-user

Entorno: PoC o piloto

Tecnologías: seguridad, identidad, conformidad; administración y gobernanza

Carga de trabajo: todas las demás cargas de trabajo

AWSservicios: Amazon EventBridge; AWS Lambda; AmazonSNS; AWS Identity and Access Management

Resumen

Cada cuenta de Amazon Web Services (AWS) tiene un usuario root. Como práctica recomendada de seguridad para AWS Identity and Access Management (IAM), le recomendamos que utilice el usuario root para completar las tareas que solo el usuario root puede realizar. Para ver la lista completa, consulte las tareas que requieren credenciales de usuario root en la Guía de referencia de administración de AWS cuentas. Como el usuario raíz tiene acceso total a todos sus AWS recursos e información de facturación, le recomendamos que no utilice esta cuenta y que la supervise para detectar cualquier actividad, ya que podría indicar que las credenciales del usuario raíz se han visto comprometidas.

Con este patrón, se configura una arquitectura basada en eventos que monitorea al usuario IAM raíz. Este patrón configura una hub-and-spoke solución que monitorea varias AWS cuentas, las cuentas aisladas, y centraliza la administración y los informes en una sola cuenta, la cuenta central.

Cuando se utilizan las credenciales del usuario IAM raíz, Amazon CloudWatch y Amazon AWS CloudTrail registran la actividad en el registro y en la ruta, respectivamente. En la cuenta radial, una EventBridge regla de Amazon envía el evento al bus de eventos central de la cuenta hub. En la cuenta hub, una EventBridge regla envía el evento a una función AWS Lambda. La función utiliza un tema de Amazon Simple Notification Service (AmazonSNS) que le notifica la actividad del usuario root.

En este patrón, se utiliza una AWS CloudFormation plantilla para implementar los servicios de supervisión y gestión de eventos en las cuentas emitidas. Utiliza una plantilla de HashiCorp Terraform para implementar los servicios de notificación y gestión de eventos en la cuenta central.

Requisitos previos y limitaciones

Requisitos previos 

  1. Permisos para implementar AWS recursos en su entorno. AWS

  2. Permisos para implementar conjuntos de CloudFormation pilas. Para obtener más información, consulte Requisitos previos para las operaciones de conjuntos de pilas (CloudFormation documentación).

  3. Terraform instalado y listo para su uso. Para obtener más información, consulte Get Started AWS (documentación de Terraform).

  4. Un registro de seguimiento existente en cada cuenta spoke. Para obtener más información, consulte Cómo empezar con AWS CloudTrail (CloudTrail documentación).

  5. La ruta está configurada para enviar eventos a CloudWatch los registros. Para obtener más información, consulte Enviar eventos a CloudWatch los registros (CloudTrail documentación).

  6. Organizations debe administrar sus cuentas de hub and AWS spoke.

Arquitectura

En el diagrama siguiente se muestran los componentes básicos de la implementación.

Un evento en una cuenta spoke que crea una notificación por correo electrónico en una cuenta hub
  1. Cuando se utilizan las credenciales del usuario IAM raíz, CloudWatch CloudTrail registre la actividad en el registro y en el registro, respectivamente.

  2. En la cuenta radial, una EventBridge regla envía el evento al bus de eventos central de la cuenta central.

  3. En la cuenta hub, una EventBridge regla envía el evento a una función Lambda.

  4. La función Lambda usa un SNS tema de Amazon que notifica la actividad del usuario root.

Herramientas

AWSservicios

  • AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y administrarlos a lo largo de su ciclo de vida en todas las AWS cuentas y regiones.

  • AWS CloudTraille ayuda a auditar la gobernanza, el cumplimiento y el riesgo operativo de su AWS cuenta.

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

  • 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, funciones AWS Lambda, puntos finales de HTTP invocación que utilizan API destinos o buses de eventos en otras cuentas. AWS

  • AWSIdentity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.

  • AWSLambda es un servicio informático que le ayuda a ejecutar código sin necesidad de aprovisionar o 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 Simple Notification Service (AmazonSNS) le ayuda a coordinar y gestionar el intercambio de mensajes entre editores y clientes, incluidos los servidores web y las direcciones de correo electrónico.

Otras herramientas y servicios

  • Terraform es una CLI aplicación para aprovisionar y administrar la infraestructura y los recursos de la nube mediante el uso de código, en forma de archivos de configuración.

Repositorio de código

El código fuente y las plantillas de este patrón están disponibles en un GitHub repositorio. Este patrón proporciona dos plantillas:

  • Una plantilla de Terraform que contiene los recursos que se despliegan en la cuenta hub

  • Una CloudFormation plantilla que se implementa como una instancia de conjunto de pilas en las cuentas de Spoke

El repositorio tiene la estructura siguiente.

.  |__README.md  |__spoke-stackset.yaml  |__hub.tf  |__root-activity-monitor-module      |__main.tf  # contains Terraform code to deploy resources in the Hub account      |__iam      # contains IAM policies JSON files          |__ lambda-assume-policy.json          # contains trust policy of the IAM role used by the Lambda function          |__ lambda-policy.json                 # contains the IAM policy attached to the IAM role used by the Lambda function      |__outputs  # contains Lambda function zip code

La sección Epics proporciona step-by-step instrucciones para implementar las plantillas.

Epics

TareaDescripciónHabilidades requeridas

Clone el repositorio de código de muestra.

  1. Abra el repositorio de AWSIAMRoot User Activity Monitor.

  2. En la pestaña Código, situada encima de la lista de archivos, elija Código y, a continuación, copie el HTTPSURL.

  3. En una interfaz de la línea de comandos, cambie el directorio de trabajo a la ubicación en la que desee almacenar los archivos de muestra.

  4. Escriba el siguiente comando:

    git clone <repoURL>
General AWS

Actualice la plantilla de Terraform.

  1. Recupere el ID de su organización. Para obtener instrucciones, consulte Visualización de los detalles de una organización desde la cuenta de administración (documentación de AWS Organizations).

  2. En el repositorio clonado, abra hub.tf.

  3. Actualice lo siguiente con los valores adecuados para su entorno:

    • OrganizationId: Agregue el ID de su organización.

    • SNSTopicName— Añade un nombre para el SNS tema de Amazon.

    • SNSSubscriptions— Añade el correo electrónico al que se deben enviar SNS las notificaciones de Amazon.

    • Region— Añade el código de AWS región en el que vas a desplegar los recursos. Por ejemplo, eu-west-1.

    • Tags: Agregue sus etiquetas. Para obtener más información, consulte Etiquetado de AWS recursos (referencia AWS general).

  4. Guarde y cierre el archivo hub.tf.

General AWS

Despliegue los recursos en la cuenta AWS central.

  1. En la interfaz de la línea de comandos de Terraform, vaya hasta la carpeta raíz del repositorio clonado e ingrese el comando siguiente.

    terraform init && terraform plan
  2. Revise la salida y confirme que desea crear los recursos descritos.

  3. Escriba el siguiente comando.

    terraform apply
  4. Cuando se le solicite, especifique yes para confirmar la implementación.

General AWS
TareaDescripciónHabilidades requeridas

Implemente la CloudFormation plantilla.

  1. Inicie sesión en la consola AWS de administración y abra la CloudFormation consola.

  2. En el panel de navegación, elija StackSets.

  3. En la parte superior de la StackSetspágina, selecciona Crear StackSet.

  4. En Permisos, selecciona Permisos gestionados por el servicio. CloudFormation configura automáticamente los permisos necesarios para realizar la implementación en las cuentas de destino administradas por AWS Organizations.

  5. En Requisito previo - Preparación de la plantilla, seleccione Template is ready (La plantilla está lista).

  6. En Especificar plantilla, seleccione Cargar un archivo de plantilla.

  7. Seleccione Choose file (Elegir archivo) y, a continuación, en el repositorio clonado, seleccione spoke-stackset.yaml.

  8. Elija Next (Siguiente).

  9. En la página Especificar StackSet detalles, introduzca un nombre para el conjunto de pilas.

  10. En Parameters, especifique el ID de cuenta de la cuenta hub y, a continuación, seleccione Next (Siguiente).

  11. En la página Configurar StackSet opciones, en Etiquetas, añada sus etiquetas.

  12. En Execution configuration (Configuración de ejecución), seleccione Inactive y, a continuación, selecciona Next (Siguiente).

  13. En la página Cómo establecer opciones de implementación, especifique las unidades organizativas y las regiones en las que desea implementar el conjunto de pilas y, a continuación, seleccione Siguiente.

  14. En la página de revisión, selecciona Acepto que AWS CloudFormation podría crear IAM recursos y, a continuación, selecciona Enviar. CloudFormation comienza a implementar su conjunto de pilas.

Para obtener más información e instrucciones, consulte Crear un conjunto de pilas (CloudFormation documentación).

General AWS
TareaDescripciónHabilidades requeridas

Utilice las credenciales de usuario raíz.

  1. Inicie sesión en una cuenta spoke o en la cuenta hub con las credenciales de usuario raíz.

  2. Confirma que la cuenta de correo electrónico que especificaste recibe la SNS notificación de Amazon.

General AWS

Recursos relacionados

Información adicional

Amazon GuardDuty es un servicio de supervisión continua de la seguridad que analiza y procesa los registros para identificar actividades inesperadas y potencialmente no autorizadas en su AWS entorno. Como alternativa a esta solución, si la tiene habilitada GuardDuty, puede avisarle cuando se hayan utilizado las credenciales del usuario raíz. El GuardDuty resultado es Policy:IAMUser/RootCredentialUsage que la gravedad predeterminada es baja. Para obtener más información, consulta Cómo gestionar GuardDuty los hallazgos de Amazon.