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.
Registro centralizado y barrera de protección para varias cuentas
Creado por Ankush Verma (AWS) y Tracy (Pierce) Hickey (AWS)
Entorno: producción | Tecnologías: seguridad, identidad, cumplimiento; administración y gobierno | Servicios de AWS: AWS CloudFormation; AWS Config; Amazon CloudWatch; AWS CodePipeline GuardDuty; Amazon Lambda; Amazon Macie; AWS Security Hub; Amazon S3 |
Resumen
El enfoque que se incluye en este patrón es adecuado para los clientes que tienen varias cuentas de Amazon Web Services (AWS) en AWS Organizations y que ahora se enfrentan a dificultades a la hora de utilizar los servicios de AWS Control Tower, una zona de aterrizaje o máquinas expendedoras de cuentas para configurar barrera de protección básicas en sus cuentas.
Este patrón demuestra el uso de una arquitectura optimizada de varias cuentas para configurar el registro centralizado y los controles de seguridad estandarizados de una manera bien estructurada. Con la ayuda de CloudFormation plantillas de AWS CodePipeline, AWS y scripts de automatización, esta configuración se implementa en todas las cuentas que pertenecen a una organización.
La arquitectura de cuentas múltiples incluye las siguientes cuentas:
Cuenta de registro centralizada: la cuenta en la que se almacenan todos los registros de flujos de la nube privada virtual (VPC), CloudTrail los registros de AWS, el registro de AWS Config y todos los CloudWatch registros de Amazon Logs (mediante suscripciones) de todas las demás cuentas.
Cuenta de seguridad principal: la cuenta que servirá como cuenta principal para los siguientes servicios de seguridad que se administran en varias cuentas.
Amazon GuardDuty
AWS Security Hub
Amazon Macie
Amazon Detective
Cuentas secundarias: las demás cuentas de la organización. Estas cuentas almacenan todos los registros útiles en la cuenta de registro centralizada. Las cuentas secundarias se unen a la cuenta de seguridad principal como miembros de los servicios de seguridad.
Tras lanzar la CloudFormation plantilla (adjunta), aprovisiona tres depósitos de Amazon Simple Storage Service (Amazon S3) en la cuenta de registro centralizada. Se utiliza un depósito para almacenar todos los registros relacionados con AWS (como los registros de VPC Flow Logs y AWS Config) de todas las cuentas. CloudTrail El segundo depósito sirve para almacenar las CloudFormation plantillas de todas las cuentas. El tercer bucket de Amazon S3 donde se almacenan los registros de acceso.
Una CloudFormation plantilla independiente crea la canalización que usa AWS CodeCommit. Una vez que el código actualizado se envía al CodeCommit repositorio, se encarga de lanzar los recursos y configurar los servicios de seguridad en todas las cuentas. Para obtener más información sobre la estructura de los archivos que se subirán al CodeCommit repositorio, consulta el archivo README.md (adjunto).
Requisitos previos y limitaciones
Requisitos previos
Un ID de organización de AWS Organizations, con todas las cuentas unidas a la misma organización.
Una dirección de correo electrónico activa para recibir notificaciones de Amazon Simple Notification Service (Amazon SNS).
Cuotas confirmadas para los buckets de Amazon Simple Storage Service (Amazon S3) en cada una de sus cuentas. De forma predeterminada, cada cuenta tiene 100 buckets de S3. Si necesita buckets adicionales, solicite un aumento de cuota antes de implementar esta solución.
Limitaciones
Todas las cuentas deben formar parte de la misma organización. Si no utiliza AWS Organizations, debe modificar determinadas políticas, como la política de bucket de S3, para permitir el acceso desde los roles de AWS Identity and Access Management (IAM) de cada cuenta.
Nota: Mientras se implementa la solución, debe confirmar la suscripción a Amazon SNS. El mensaje de confirmación se envía a la dirección de correo electrónico que proporcionó durante el proceso de implementación. De este modo, se enviarán algunos mensajes de alerta por correo electrónico a esta dirección de correo electrónico, ya que estas alarmas se activan cada vez que se crean o modifican políticas de roles de IAM en la cuenta. Durante el proceso de implementación, puede ignorar estos mensajes de alerta.
Arquitectura
Pila de tecnología de destino
CloudWatch Alarmas y registros de Amazon
CodeCommit Repositorio de AWS
AWS CodePipeline
AWS Config
Amazon Detective
Amazon GuardDuty
Roles y permisos de IAM
Amazon Macie
Buckets de S3
AWS Security Hub
Amazon SNS
Arquitectura de destino
Otras cuentas registradas como cuentas secundarias de la cuenta de seguridad principal de los servicios de seguridad
Resultados de seguridad de todas las cuentas secundarias, incluida la cuenta principal
Recursos
Los siguientes recursos se aprovisionan automáticamente cuando el código actualizado se envía al CodeCommit repositorio de cada cuenta y región de AWS.
CloudFormation pila 1: registro de la pila principal
- Pila anidada 1: roles y políticas estándar de IAM
- Pila anidada 2: configuración de AWS Config en la cuenta
- Pila anidada 3: alarmas CloudWatch
- SecurityGroupChangesAlarm
- UnauthorizedAttemptAlarm
- RootActivityAlarm
- NetworkAclChangesAlarm
- YO SOY UserManagementAlarm
- LO SOY PolicyChangesAlarm
- CloudTrailChangeAlarm
- LO SOY CreateAccessKeyAlarm
- Filtros métricos para crear métricas a partir de CloudTrail registros y usarlas para alarmas
- Tema de SNS
CloudFormation pila 2: pila de barandillas principal
- Pila anidada 1: función de Lambda de AWS para configurar la política de contraseñas de la cuenta
- Pila anidada 2: reglas básicas de AWS Config
- CIS- SecurityGroupsMustRestrictSshTraffic
- OpenSecurityGroupRuleCheck junto con la función Lambda para la evaluación de reglas de grupos de seguridad
- check-ec2- for-required-tag
- check-for-unrestricted-ports
CloudFormation pila 3 — CloudWatch exportación de registros
- Exportación de CloudWatch registros de grupos de registros a Amazon S3 mediante una suscripción a Amazon Kinesis
Herramientas
AWS CloudFormation: AWS CloudFormation utiliza plantillas para modelar y aprovisionar, de forma automatizada y segura, todos los recursos necesarios para sus aplicaciones en todas las regiones y cuentas de AWS.
Amazon CloudWatch: Amazon CloudWatch monitorea los recursos de AWS y las aplicaciones que ejecuta en AWS en tiempo real. Puede utilizarlas CloudWatch para recopilar y realizar un seguimiento de las métricas, que son variables que puede medir para sus recursos y aplicaciones.
AWS CodeCommit: AWS CodeCommit es un servicio de control de versiones hospedado por AWS. Puede utilizarlo CodeCommit para almacenar y gestionar de forma privada activos (como documentos, código fuente y archivos binarios) en la nube.
AWS CodePipeline: AWS CodePipeline es un servicio de entrega continua que puede utilizar para modelar, visualizar y automatizar los pasos necesarios para lanzar su software.
AWS Config: AWS Config brinda una visión detallada de la configuración de los recursos de AWS de su cuenta de AWS. Esto incluye cómo se relacionan los recursos entre sí y cómo se han configurado en el pasado, para que pueda ver cómo las configuraciones y las relaciones cambian a lo largo del tiempo.
Amazon Detective lo ayuda a analizar, investigar e identificar rápidamente la causa raíz de resultados de seguridad o actividades sospechosas. Detective recopila automáticamente los datos de registro de sus recursos de AWS. A continuación, utiliza el machine learning, el análisis estadístico y la teoría de grafos para generar visualizaciones que lo ayuden a realizar investigaciones sobre la seguridad con mayor rapidez y de forma más eficaz.
Amazon GuardDuty: Amazon GuardDuty es un servicio de monitoreo de seguridad continuo que analiza y procesa los registros de flujo, los registros de eventos de CloudTrail administración, CloudTrail los registros de eventos de datos y los registros del Sistema de nombres de dominio (DNS). Utiliza fuentes de información de amenazas, como listas de direcciones IP y dominios maliciosos, y aprendizaje automático para identificar la actividad inesperada y potencialmente no permitida, así como la actividad malintencionada en su entorno de AWS.
AWS Identity and Access Management (IAM) es un servicio web que ayuda a controlar de forma segura el acceso a los recursos de AWS. Utilice IAM para controlar quién está autenticado (ha iniciado sesión) y autorizado (tiene permisos) para utilizar recursos.
Amazon Macie automatiza la detección de información confidencial, como información de identificación personal (PII) y datos financieros, para proporcionarle una mejor comprensión de los datos que almacena su organización en Amazon S3.
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos altamente escalable que se puede utilizar para una amplia gama de soluciones de almacenamiento, incluidos sitios web, aplicaciones móviles, copias de seguridad y lagos de datos.
AWS Security Hub proporciona una visión completa de su estado de seguridad en AWS y lo ayuda a comprobar su entorno con los estándares y las prácticas recomendadas del sector de la seguridad.
Amazon Simple Notification Service (Amazon SNS) es un servicio administrado con el que se ofrece la entrega de mensajes de los publicadores a los suscriptores (también conocido como productores y consumidores).
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Ejecute la plantilla ChildAccount_IAM_Role_All_Accounts.yaml para crear el rol CloudFormation de IAM en la región us-east-1. | Para crear los roles y los permisos de IAM necesarios, debe lanzar manualmente esta plantilla en cada cuenta, una por una (cuenta de registro centralizada, cuenta de seguridad principal y todas las demás cuentas de AWS de la organización) en la región us-east-1. La plantilla | Arquitecto de la nube |
En los parámetros de plantilla, proporcione el nombre del rol de IAM. | Indique la función de IAM que, en la cuenta de seguridad principal, puede asumir en todas las demás cuentas secundarias. CodeBuild El nombre del rol predeterminado es | Arquitecto de la nube |
En los parámetros, proporcione el ID de cuenta de la cuenta de seguridad principal. | La cuenta de seguridad principal es la cuenta en la que se CodeBuild ejecuta. | Arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
En la cuenta de registro centralizada, en us-east-1, ejecute la plantilla S3Buckets-Centralized- .yaml. LoggingAccount CloudFormation | Para crear los buckets de S3 en la cuenta de registro centralizada, inicie | Arquitecto de la nube |
En los parámetros de plantilla, proporcione el nombre del bucket de S3 para el almacenamiento de registros de AWS. | Escriba un nombre para el parámetro | Arquitecto de la nube |
Escriba el nombre del bucket de S3 para los registros de acceso. | Escriba el nombre del bucket de S3 para el parámetro | Arquitecto de la nube |
Escriba el nombre del bucket de S3 para el almacenamiento de las plantillas. | Escriba el nombre del bucket de S3 para el parámetro | Arquitecto de la nube |
Proporcione el ID de organización de. | Para proporcionar acceso a los depósitos de S3 dentro de la organización, introduzca el ID de la organización en el parámetro | Arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Inicie la plantilla security-guard-rails-codepipeline -Centralized- SecurityAccount .yml. CloudFormation | Para implementar la canalización de CI/CD, inicie manualmente la plantilla | Arquitecto de la nube |
Proporcione un nombre para el bucket de S3 que almacenará las plantillas en la cuenta de registro centralizada. | Introduzca el nombre del bucket de S3 que proporcionó para el parámetro | Arquitecto de la nube |
Proporcione el nombre del rol de IAM que se utilizará en las cuentas secundarias. | Introduzca el nombre que proporcionó para el parámetro | Arquitecto de la nube |
Proporcione una dirección de correo electrónico activa para recibir CodePipeline las notificaciones de errores. | Introduzca la dirección de correo electrónico que desee utilizar para recibir las notificaciones de CodePipeline fallos y otras notificaciones CloudWatch relacionadas con las alarmas. | Arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Modifique AccountList.json. | En el archivo | Arquitecto de la nube |
Modificar accounts.csv | En el archivo | Arquitecto de la nube |
Modifique parameters.config. | En el archivo
Para el resto de parámetros, puede mantener los valores predeterminados. Para ver un ejemplo, consulte el archivo | Arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Acceda al CodeCommit repositorio que creó en el paso 3. | En la sección de resultados de la CloudFormation pila de infraestructuras de CI/CD (lanzada en el paso 3), anote el nombre de la URL del CodeCommit repositorio. Cree un acceso al repositorio para que los archivos puedan insertarse en él para que la infraestructura se despliegue en todas las cuentas de destino. Para obtener más información, consulte Configuración de AWS CodeCommit. | Arquitecto de la nube |
Envía los archivos al CodeCommit repositorio. | Instale Git en su equipo local. A continuación, ejecute los comandos de Git para clonar el repositorio vacío, copie los archivos de su portátil a la carpeta del repositorio y envíe los artefactos al repositorio. Compruebe los ejemplos de comandos de Git en el archivo | Arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Confirme el estado de CodePipeline y CodeBuild. | Tras enviar los artefactos al CodeCommit repositorio, confirme que se ha iniciado la CodePipeline canalización que creó en el paso 3. A continuación, comprueba los CodeBuild registros para confirmar el estado o los errores. | Arquitecto de la nube |
Recursos relacionados
Conexiones
Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip