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.
Implemente y gestione los controles AWS de la Torre de Control mediante Terraform
Creada por Iker Reina Fuente (AWS) e Ivan Girardi () AWS
Repositorio de código: Implemente y gestione los controles de la Torre de AWS Control mediante Terraform | Entorno: producción | Tecnologías: seguridad, identidad, cumplimiento CloudNative; infraestructura; gestión y gobierno |
Carga de trabajo: código abierto | AWSservicios: AWS Control Tower; AWS Organizations |
Resumen
Este patrón describe cómo usar los controles de la Torre de AWS Control, HashiCorp Terraform y la infraestructura como código (IaC) para implementar y administrar controles de seguridad preventivos, de detección y proactivos. Un control (también conocido como barandilla) es una regla de alto nivel que proporciona una gobernanza continua para el entorno general de la Torre de AWS Control. Por ejemplo, puede usar controles para exigir el registro de sus AWS cuentas y, a continuación, configurar las notificaciones automáticas si se producen eventos específicos relacionados con la seguridad.
AWSControl Tower lo ayuda a implementar controles preventivos, de detección y proactivos que rigen sus AWS recursos y supervisan el cumplimiento en varias AWS cuentas. Cada control aplica una única regla. En este patrón, debe utilizar la plantilla de IaC proporcionada para especificar qué controles desea implementar en su entorno.
AWSLos controles de la Torre de Control se aplican a toda una unidad organizativa (OU) y afectan a todas las AWS cuentas de la OU. Por lo tanto, cuando los usuarios realicen cualquier acción en cualquier cuenta de su zona de aterrizaje, la acción queda sujeta a los controles que rigen la OU.
La implementación AWS de los controles de la Torre de Control ayuda a establecer una base de seguridad sólida para tu AWS landing zone. Al usar este patrón para implementar los controles como IaC a través de Terraform, puede estandarizar los controles en su zona de aterrizaje e implementarlos y administrarlos de manera más eficiente.
Para implementar los controles de la Torre de AWS Control como iAC, también puedes usar AWS Cloud Development Kit (AWSCDK) en lugar de Terraform. Para obtener más información, consulte Implementar y administrar los controles de la Torre de AWS Control mediante AWS CDK y AWS CloudFormation.
Público objetivo
Este patrón se recomienda para los usuarios que tengan experiencia con AWS Control Tower, Terraform y AWS Organizations.
Requisitos previos y limitaciones
Requisitos previos
AWSCuentas activas gestionadas como una organización en AWS Organizations y en una zona de landing zone de AWS Control Tower. Para obtener instrucciones, consulte Crear una estructura de cuentas (AWSWell-Architected
Labs). AWSInterfaz de línea de comandos (AWSCLI), instalada y configurada.
Un rol de AWS Identity and Access Management (IAM) en la cuenta de administración que tiene permisos para implementar este patrón. Para obtener más información sobre los permisos necesarios y un ejemplo de política, consulte Permisos con privilegios mínimos para el IAM rol en la sección Información adicional de este patrón.
Permisos para asumir el IAM rol en la cuenta de administración.
Aplique el control basado en la política de control de servicios (SCP) con el identificador CT. CLOUDFORMATION.PR.1. Esto SCP debe activarse para implementar controles proactivos. Para obtener instrucciones, consulte No permitir la administración de tipos de recursos, módulos y enlaces dentro del AWS CloudFormation registro.
TerraformCLI, instalado (documentación
de Terraform). Terraform AWS Provider, configurado
(documentación de Terraform). Backend de Terraform, configurado
(documentación de Terraform).
Versiones de producto
AWSControl Tower versión 3.0 o posterior
Terraform versión 1.5 o posterior
Terraform AWS Provider versión 4.67 o posterior
Arquitectura
Arquitectura de destino
En esta sección se ofrece información general sobre esta solución y la arquitectura establecida en el código de ejemplo. El siguiente diagrama muestra los controles implementados en las distintas cuentas de la OU.
AWSLos controles de la Torre de Control se clasifican según su comportamiento y su orientación.
Existen tres tipos principales de comportamientos de control:
Los controles preventivos están diseñados para evitar que se produzcan acciones. Se implementan con políticas de control de servicios (SCPs) en AWS Organizations. El estado de una medida de seguridad preventiva es uno de los siguientes: aplicado o no habilitado. Los controles preventivos son compatibles en todas AWS las regiones.
Los controles de Detective están diseñados para detectar eventos específicos cuando se producen y registrar la acción CloudTrail. Se implementan con las reglas de AWS Config. El estado de una medida de seguridad de detección es uno de los siguientes: limpio, infraccióno no habilitado. Los controles de Detective solo se aplican en las AWS regiones compatibles con la Torre AWS de Control.
Los controles proactivos analizan los recursos que aprovisionaría AWS CloudFormation y comprueban si cumplen con las políticas y los objetivos de su empresa. Los recursos que no sean conformes no se aprovisionarán. Estos se implementan mediante AWS CloudFormation ganchos. El estado de un control proactivo es PASSFAIL, o SKIP.
La guía de control es la práctica recomendada sobre cómo aplicar cada control a suOUs. AWSControl Tower ofrece tres categorías de orientación: obligatoria, muy recomendable y optativa. La directriz de un control es independiente de su comportamiento. Para obtener más información, consulte Directrices y comportamiento de control.
Herramientas
AWSservicios
AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y administrarlos durante todo su ciclo de vida en todas las AWS cuentas y regiones.
AWSConfig proporciona una vista detallada de los recursos de tu AWS cuenta y de cómo están configurados. Le ayuda a identificar cómo se relacionan los recursos entre sí y cómo han cambiado sus configuraciones a lo largo del tiempo.
AWSControl Tower le ayuda a configurar y administrar un entorno de AWS múltiples cuentas, siguiendo las mejores prácticas prescriptivas.
AWSOrganizations es un servicio de administración de cuentas que le ayuda a consolidar varias AWS cuentas en una organización que usted crea y administra de forma centralizada.
Otras herramientas
HashiCorp Terraform
es una herramienta de código abierto de infraestructura como código (IaC) que le ayuda a usar el código para aprovisionar y administrar la infraestructura y los recursos de la nube.
Repositorio de código
El código de este patrón está disponible en el repositorio de Terraform para GitHub implementar y administrar los controles de la Torre de AWS Control
Prácticas recomendadas
La IAM función utilizada para implementar esta solución debe cumplir con el principio del mínimo privilegio (documentación). IAM
Siga las prácticas recomendadas para los administradores AWS de la Torre de AWS Control (documentación de la Torre de Control).
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Clonar el repositorio. | En un shell de bash, ingrese el siguiente comando: Esto clona los controles de Implementación y administración AWS de la Torre de Control mediante el repositorio Terraform
| DevOps ingeniero |
Edite el archivo de configuración del backend de Terraform. |
| DevOps ingeniero, Terraform |
Edite el archivo de configuración del proveedor de Terraform. |
| DevOps ingeniero, Terraform |
Edite el archivo de configuración. |
| DevOps ingeniero, generalAWS, Terraform |
Asume el IAM rol en la cuenta de administración. | En la cuenta de administración, asuma el IAM rol que tiene permisos para implementar el archivo de configuración de Terraform. Para obtener más información sobre los permisos necesarios y un ejemplo de política, consulte Permisos con privilegios mínimos para el IAM rol en la sección de información adicional. Para obtener más información sobre cómo asumir un IAM rol en el AWSCLI, consulte Usar un IAM rol en el AWS CLI. | DevOps ingeniero, general AWS |
Implementación del archivo de configuración |
| DevOps ingeniero, generalAWS, Terraform |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Ejecute el comando de destrucción. | Ingrese el comando siguiente para eliminar los recursos implementados por este patrón.
| DevOps ingeniero, general AWS de Terraform |
Resolución de problemas
Problema | Solución |
---|---|
Error de | El control que intenta activar ya está activado en la unidad organizativa de destino. Este error puede producirse si un usuario habilitó el control manualmente a través de la Consola de AWS Administración, AWS Control Tower o AWS Organizations. Para implementar el archivo de configuración de Terraform, puede usar cualquiera de las siguientes opciones. Opción 1: actualizar el archivo de estado actual de Terraform Puede importar el recurso al archivo de estado actual de Terraform. Al volver a ejecutar el comando
Opción 2: deshabilitar el control Si trabaja en un entorno que no es de producción, puede deshabilitar el control en la consola. Vuelva a habilitarlo al repetir los pasos de Implementar la configuración en la sección Epics.. Este enfoque no se recomienda para entornos de producción porque hay un período de tiempo en el que el control estará deshabilitado. Si desea utilizar esta opción en un entorno de producción, puede implementar controles temporales, como aplicar temporalmente un SCP in AWS Organizations. |
Recursos relacionados
AWSdocumentación
Acerca de los controles (documentación AWS de la Torre de Control)
Biblioteca de controles (documentación AWS de la Torre de Control)
Implemente y gestione los controles de la Torre de AWS Control mediante AWS CDK y AWS CloudFormation (Guía AWS prescriptiva)
Otros recursos
Información adicional
Ejemplo de archivo variables.tfvars
A continuación se muestra un ejemplo de un archivo variables.tfvars actualizado.
controls = [ { control_names = [ "AWS-GR_ENCRYPTED_VOLUMES", ... ], organizational_unit_ids = ["ou-1111-11111111", "ou-2222-22222222"...], }, { control_names = [ "AWS-GR_SUBNET_AUTO_ASSIGN_PUBLIC_IP_DISABLED", ... ], organizational_unit_ids = ["ou-1111-11111111"...], }, ]
Permisos con privilegios mínimos para el rol IAM
Este APG patrón requiere que asuma un IAM rol en la cuenta de administración. La práctica recomendada es asumir un rol con permisos temporales y limitar los permisos según el principio del privilegio mínimo. El siguiente ejemplo de política permite realizar las acciones mínimas necesarias para activar o desactivar los controles de la Torre de AWS Control.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "controltower:EnableControl", "controltower:DisableControl", "controltower:GetControlOperation", "controltower:ListEnabledControls", "organizations:AttachPolicy", "organizations:CreatePolicy", "organizations:DeletePolicy", "organizations:DescribeOrganization", "organizations:DetachPolicy", "organizations:ListAccounts", "organizations:ListAWSServiceAccessForOrganization", "organizations:ListChildren", "organizations:ListOrganizationalUnitsForParent", "organizations:ListParents", "organizations:ListPoliciesForTarget", "organizations:ListRoots", "organizations:UpdatePolicy" ], "Resource": "*" } ] }