avatar Artículo

AWS Control Tower Análisis en profundidad

Segundo artículo sobre el enfoque multi-cuenta y específicamente sobre AWS Control Tower donde revisaremos todas las opciones.

AWS Multi-Account

Domina las estrategias multi-cuenta de AWS usando AWS Organizations, Control Tower y mejores prácticas para despliegues a escala empresarial.

2 articles

Complete
AWS Control Tower Análisis en profundidad

1. Introducción

En este artículo, continuaremos agregando nuevas cuentas de AWS a nuestro enfoque multi-cuenta y revisaremos todas las opciones en el servicio AWS Control Tower.

Una vez que se completa la creación de la landing zone por AWS Control Tower, tiene la siguiente estructura organizativa:

organization.png

Ahora, revisaremos todas las opciones disponibles en AWS Control Tower.

2. Single Sign-On

Tenemos más de una cuenta y necesitamos/queremos un lugar central para acceder a todas las cuentas. Afortunadamente, AWS Control Tower nos proporciona una configuración predeterminada de la solución AWS Single Sign-On (IAM Identity Center, anteriormente llamado AWS SSO).

IAM Identity Center amplía las capacidades de AWS Identity and Access Management (IAM) para proporcionar un lugar central que reúne la administración de usuarios y su acceso a cuentas de AWS y aplicaciones en la nube.

La configuración predeterminada utilizada como identity source es Identity Center directory, es decir, un directorio interno donde podemos agregar usuarios directamente para darles acceso a la organización.

2.1. Configuración

Esta es la configuración predeterminada:

identity-center-settings

Puedes actualizar la fuente de identidad de la configuración de IAM Identity Center para usar tu Active Directory o un proveedor de identidad externo.

2.2. Usuarios

Por defecto, solo el correo electrónico utilizado para la cuenta raíz se incluye como usuario, pero necesitas confirmarlo y establecer una nueva contraseña. Este es un nuevo usuario diferente del usuario raíz de la cuenta de administración de AWS.

identity-center-users

Para agregar un nuevo usuario con esta configuración, la siguiente información es obligatoria:

  • Nombre de usuario (requerido para que este usuario inicie sesión en el portal de acceso de AWS. El nombre de usuario no se puede cambiar más tarde.)
  • Dirección de correo electrónico
  • Nombre
  • Apellido
  • Nombre para mostrar (típicamente el nombre completo del usuario de la fuerza laboral, es buscable y aparece en la lista del usuario)

2.3. Grupos

Por defecto, se crean los siguientes grupos:

  • AWSAccountFactory: Acceso de solo lectura a account factory en AWS Service Catalog para usuarios finales
  • AWSSecurityAuditors: Acceso de solo lectura a todas las cuentas para auditorías de seguridad
  • AWSSecurityAuditPowerUsers: Acceso de usuario avanzado a todas las cuentas para auditorías de seguridad
  • AWSServiceCatalogAdmins: Derechos de administrador a account factory en AWS Service Catalog
  • AWSControlTowerAdmins: Derechos de administrador a las cuentas principales y aprovisionadas de AWS Control Tower
  • AWSLogArchiveAdmins: Derechos de administrador a la cuenta de archivo de registros
  • AWSAuditAccountAdmins: Derechos de administrador a la cuenta de auditoría entre cuentas
  • AWSLogArchiveViewers: Acceso de solo lectura a la cuenta de archivo de registros

2.4. Usando SSO

Accederás a través de un enlace similar a este https://xxxxxxxxxxxxx.awsapps.com/start y accederás a este portal:

sso-1

Cuando inicies sesión correctamente, verás lo siguiente:

sso-2

Al hacer clic en el menú de cuenta de AWS (número) se mostrará información sobre estas cuentas:

sso-3

3. Nuevas Unidades Organizativas (OUs)

Crear una nueva Unidad Organizativa (OU) es muy fácil desde AWS Control Tower o AWS Organizations.

  • Desde AWS Control Tower: automáticamente se registrará en el servicio Control Tower new-ou-control-tower-1 new-ou-control-tower-2

  • Desde AWS Organizations: necesitas registrar la OU en Control Tower new-ou-organizations-1 new-ou-organizations-2 new-ou-organizations-3 new-ou-organizations-4 new-ou-organizations-5

Entonces, si estás usando AWS Control Tower, es mejor usarlo en lugar de AWS Organizations para crear nuevas OUs (Unidades Organizativas) o cuentas de AWS.

4. Account Factory

Con account factory puedes aprovisionar nuevas cuentas e inscribir cuentas existentes, y puedes estandarizar tus configuraciones de cuenta y red para crear múltiples cuentas.

Puedes actualizar el servicio AWS Control Tower a la configuración de red para definir cómo se crearán las VPCs. Cuando guardes los cambios, las configuraciones definidas se publicarán en AWS Service Catalog como un producto.

Para desplegar nuevas cuentas de AWS con Account Factory tienes 2 opciones:

  1. Usar el producto en AWS Service Catalog:

    service-catalog-1 service-catalog-2

  2. Usar Create accounts en la función Account Factory de AWS Control Tower

    factory-account-new-account

En ambos casos, los campos obligatorios son:

  • Correo electrónico de la cuenta
  • Nombre para mostrar
  • Correo electrónico del usuario de Identity Center
  • Nombre de usuario de IAM Identity Center
  • Unidad organizativa

Además, en ambos casos, el Service Catalog se utiliza detrás de escena.

Más información:

5. Guardrails (Controles)

AWS Control Tower aplica reglas de alto nivel, llamadas guardrails, que ayudan a hacer cumplir tus políticas usando service control policies (SCPs), y detectar violaciones de políticas usando reglas de AWS Config.

07 Mayo 2023: AWS Control Tower ha actualizado recientemente los controles.

AWS Control Tower ahora tiene 358 controles (reglas de gobernanza para tu entorno de AWS) en 3 categorías diferentes de guidance.

  • Mandatory: siempre aplicado
    • 20 guardrails preventivos para hacer cumplir políticas
    • 3 detectivos para detectar violaciones de configuración
  • Strongly recommended: diseñado para hacer cumplir algunas mejores prácticas comunes para entornos multi-cuenta bien arquitectados.
    • Ejemplo: Detectar si se permite el acceso de escritura público a buckets de Amazon S3
  • Elective: te permite rastrear o bloquear acciones que comúnmente están restringidas en un entorno empresarial de AWS.

Ahora, también es importante distinguir los controles por behaviour:

  • Proactive
    • Estos controles solo están disponibles si despliegas plantillas de CloudFormation en las cuentas y regiones donde se ha activado el control.
    • Se implementa a través de hooks de AWS CloudFormation y reglas de guard, y se aplica mediante el despliegue de una plantilla de CloudFormation. Una regla de guard es una regla de política como código que expresa los requisitos de cumplimiento para un recurso de AWS. Los hooks inspeccionan proactivamente estas configuraciones de recursos comparando los recursos de AWS con la regla de guard, antes de que se aprovisionen los recursos.
  • Detective
    • Estos controles son propiedad de AWS Security Hub o AWS Control Tower y se implementan usando reglas de AWS Config
    • Los controles propiedad de AWS Security Hub no se agregan en el estado de cumplimiento de cuentas y OUs en AWS Control Tower
  • Preventive
    • Estos controles se implementan con Service control policy (SCP).
    • Cuando se activan, los controles preventivos se aplican a nivel de OU.

Recomiendo habilitar estos controles en todas las OUs: Todos: Denegar acciones como usuario raíz

  • Objetivo de control: Aplicar el menor privilegio
  • Orientación: Muy recomendado
  • Comportamiento: Preventivo

Todos: Denegar la creación de claves de acceso para el usuario raíz

  • Objetivo de control: Aplicar el menor privilegio
  • Orientación: Muy recomendado
  • Comportamiento: Preventivo

Si es posible: Denegar acceso a AWS según la región de AWS solicitada

  • Objetivo de control: Proteger configuraciones
  • Orientación: Electivo
  • Comportamiento: Preventivo

Entonces, hay 23 guardrails obligatorios, pero hay muchos otros que puedes habilitar. Para habilitar uno de ellos, seleccionas, haces clic en Enable control on OU y luego seleccionas uno de ellos.

controls-enable

controls-status

controls-dashboard

6. Infraestructura como Código (IaC)

Hay al menos 2 soluciones para definir usando Infrastructure as Code (IaC) tus recursos de AWS o SCPs y desplegarlo en cada cuenta (nueva o existente).

  • Customizations for Control Tower (CfCT): usa CloudFormation
  • Usar el módulo de Terraform de Control Tower Account Factory for Terraform

6.1. Customizations for Control Tower (CfCT)

Aquí está la documentación oficial sobre CfCT y aquí está la plantilla pública que necesitas instalar en el servicio CloudFormation.

Customizations for AWS Control Tower (CfCT) te ayuda a personalizar tu landing zone de AWS Control Tower y mantenerte alineado con las mejores prácticas de AWS. Las personalizaciones se implementan con plantillas de AWS CloudFormation y service control policies (SCPs).

Desplegar CfCT construye el siguiente entorno en AWS Cloud:

cfct-architecture-diagram

CfCT despliega dos flujos de trabajo:

  • un flujo de trabajo de AWS CodePipeline (ejecutado cuando aparecen cambios)
  • un flujo de trabajo de eventos del ciclo de vida de AWS Control Tower (ejecutado cuando se lanza una nueva cuenta)

La customizations-for-aws-control-tower.template despliega lo siguiente:

  • Un proyecto de AWS CodeBuild
  • Un proyecto de AWS CodePipeline
  • Una regla de Amazon EventBridge
  • Funciones de AWS Lambda
  • Una cola de Amazon Simple Queue Service
  • Un bucket de Amazon Simple Storage Service con un paquete de configuración de muestra
  • AWS Step Functions

Para desplegar CfCT:

  • Paso 1: Lanzar el stack en CloudFormation aquí. Puedes elegir S3 o CodeCommit como fuente
  • Paso 2: conectarse a la fuente y realizar algunos cambios (CodePipeline se desplegará automáticamente cuando subas los nuevos cambios)
    • cfct-1
    • cfct-2
    • cfct-3

6.2. Gestionar cuentas de AWS usando Control Tower Account Factory for Terraform

Hay una solución de Terraform que facilita la creación y personalización de nuevas cuentas que cumplen con las pautas de seguridad de tu organización.

Aquí está el enlace oficial que explica cómo hacerlo paso a paso.

Hay 5 repositorios, uno con el despliegue del módulo AFT y 4 adicionales requeridos para definir tus especificaciones de cuenta. Solo ejecutarás comandos de Terraform dentro del primer repositorio, y AFT ejecutará la configuración en los repositorios de especificación de cuenta:

  1. Account requests – Este repositorio maneja la colocación o actualización de solicitudes de cuenta.
  2. AFT account provisioning customizations – Este repositorio gestiona personalizaciones que se aplican a todas las cuentas creadas y gestionadas con AFT, antes de comenzar la etapa de personalizaciones globales.
  3. Global customizations – Este repositorio gestiona personalizaciones que se aplican a todas las cuentas creadas y gestionadas con AFT.
  4. Account customizations – Este repositorio gestiona personalizaciones que se aplican solo a cuentas específicas creadas y gestionadas con AFT.

AFT espera que cada uno de estos repositorios siga una estructura de directorios específica.

Esta es la arquitectura de la solución:

aws-control-tower-aft high-level-aft-diagram

Así es como funciona:

  1. Las solicitudes de cuenta se crean y envían al pipeline. Puedes crear y enviar más de una solicitud de cuenta a la vez. Account Factory procesa las solicitudes en orden de llegada. Para más información, consulta Submit multiple account requests.
  2. Cada cuenta se aprovisiona. Esta etapa se ejecuta en la cuenta de administración de AWS Control Tower.
  3. Las personalizaciones globales se ejecutan en los pipelines que se crean para cada cuenta vendida.
  4. Si se especifican personalizaciones en las solicitudes iniciales de aprovisionamiento de cuentas, las personalizaciones se ejecutan solo en cuentas específicas. Si tienes una cuenta que ya está aprovisionada, debes iniciar más personalizaciones manualmente en el pipeline de la cuenta.

Relacionado con el costo, no hay cargos adicionales por AFT. Solo pagas por los recursos desplegados por AFT, los servicios de AWS habilitados por AFT y los recursos que despliegas en tu entorno AFT.

Sin embargo, ten cuidado si quieres usar esta opción para tus cuentas personales. No es una opción gratuita porque la solución usa endpoints de VPC y componentes adicionales por los que tienes que pagar. Empecé a usarlo con fines de prueba y al final del mes tuve que pagar más de $70 (solo por tenerlo desplegado en mi cuenta…)

6.3. Comparativa de Customizations for Control Tower (CfCT) con Control Tower Account Factory for Terraform

Característica / AspectoCustomizations for AWS Control Tower (CfCT)Control Tower Account Factory for Terraform (AFT)
PropósitoPersonalizar la landing zone de AWS Control Tower con políticas y configuraciones adicionales.Automatizar el aprovisionamiento y gestión de cuentas de AWS usando Terraform.
FlexibilidadAlta flexibilidad para personalizaciones específicas de AWS.Alto grado de automatización y repetibilidad con Terraform.
Integración con servicios de AWSEstrechamente integrado con herramientas nativas de AWS.Se integra con AWS, pero depende de Terraform para configuración y setup.
Caso de uso principalIdeal para organizaciones que prefieren herramientas nativas de AWS para gestión en la nube.Adecuado para organizaciones que usan Terraform para gestión de infraestructura.
Mantenimiento y actualizacionesGestionado por AWS, asegurando características y prácticas de seguridad actualizadas.Requiere mantenimiento de configuraciones de Terraform en línea con actualizaciones de AWS.
Facilidad de usoMás sencillo para equipos familiarizados con servicios de AWS.Mejor para equipos experimentados con Terraform.
Requisito de herramientasDepende de herramientas y servicios nativos de AWS.Requiere comprensión y uso de Terraform.
Ideal para organizacionesFuertemente invertidas en el ecosistema de AWS y prefieren herramientas de AWS para gestión.Ya usando Terraform y buscando extender sus capacidades a la gestión de AWS.

7. Top 5 personalizaciones

Estas son las 5 principales personalizaciones en un enfoque multi-cuenta:

  1. Identidad
    1. Proveedores de identidad
    2. Rol y política de IAM
    3. Service Control Policy
  2. Seguridad y Cumplimiento
    1. Herramientas de seguridad
    2. Cifrado
  3. Redes
    1. AWS Transit Gateway
    2. Asignación de IP
    3. Enrutamiento
    4. Grupos de seguridad
  4. Registro
    1. AWS CloudTrail (eventos de datos)
    2. Registros de flujo de VPC
    3. Registros de firewall
    4. Registros de Amazon CloudWatch
  5. Control
    1. Reglas de AWS Config
    2. Política de recursos (Amazon S3, Amazon SNS, AWS KMS)
    3. Conductas preconfiguradas
Este artículo está licenciado bajo CC BY 4.0 por el autor.