avatar Artículo

Primeros pasos con el enfoque multi-cuenta de AWS

Este es el primer artículo relacionado con el enfoque multi-cuenta, y lo primero que hay que revisar es saber cuándo y por qué necesito una solución multi-cuenta.

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

In progress
Primeros pasos con el enfoque multi-cuenta de AWS

1. Introducción

Este es el primer artículo relacionado con el enfoque multi-cuenta, y lo primero que hay que revisar es saber cuándo y por qué necesitas una solución multi-cuenta.

1.1. ¿CUÁNDO necesitas una solución multi-cuenta

Si estás usando AWS para tus proyectos personales y tienes una solución simple sin muchos recursos, no vale la pena. O tal vez tu solución no es tan simple pero no quieres preocuparte por la sobrecarga operativa adicional para gestionarla. Este fue exactamente mi caso, pero en este artículo quiero mostrarte cuándo, por qué y cómo desplegar una solución multi-cuenta.

Sin embargo, en soluciones empresariales, deberías tener una solución multi-cuenta, sin duda, así que necesitas saber sobre ello.

Entonces, para mí, es muy simple:

  • Cuenta personal con solución simple - no es necesaria una solución multi-cuenta
  • Cuenta personal con solución no simple o muchas cargas de trabajo - depende de ti
  • Solución empresarial pequeña - depende de ti, pero incluso si tu empresa es pequeña es una buena idea aprovechar el enfoque multi-cuenta
  • Solución empresarial mediana/grande - obligatorio

¿Qué dice AWS?

Si bien puedes comenzar tu viaje en AWS con una sola cuenta, AWS recomienda que “configures múltiples cuentas, a medida que tus cargas de trabajo crecen en tamaño y complejidad”. Extraído de aquí

Además, “Si tienes una sola cuenta hoy y tienes cargas de trabajo de producción implementadas o estás considerando desplegar cargas de trabajo de producción, recomendamos que hagas la transición al uso de múltiples cuentas para que puedas obtener los beneficios de usar múltiples cuentas de AWS.” Extraído de aquí

1.2. ¿POR QUÉ necesitas una solución multi-cuenta

La razón principal para hacerlo es el aislamiento. Una cuenta de AWS sirve como contenedor de recursos y la forma más fácil de aislar recursos es usando diferentes cuentas.

Hay muchas razones para usar aislamiento:

  • Aislamiento de entornos (pruebas/producción): Aplicar controles de seguridad distintos por entorno
  • Aislamiento de unidades de negocio/cargas de trabajo/aplicaciones/productos: Agrupar cargas de trabajo según el propósito comercial y la propiedad
  • Aislamiento de equipos funcionales
  • Aislamiento de datos: Restringir el acceso a datos sensibles. Esta categoría incluye almacenes de datos, que pueden ser necesarios debido a restricciones legales

Algunas otras ventajas de una solución multi-cuenta son:

  • gestionar la seguridad mediante el uso de controles basados en políticas
  • simplificar la facturación - Puedes usar una estrategia de etiquetado y etiquetas de asignación de costos para rastrear tus costos de AWS a un nivel detallado en la misma cuenta, pero es mucho mejor usar múltiples cuentas para hacer lo mismo.
  • Promover la innovación y la agilidad

1.3. La desventaja de una solución multi-cuenta

La principal desventaja si quieres una solución multi-cuenta es la gestión de todas las cuentas (hacerlo de la misma manera, crear nuevas cuentas, duplicar esfuerzos,… esto es, mala gestión).

2. Enfoque multi-cuenta: AWS Organizations

AWS proporciona un recurso para ayudarte a gestionar y gobernar centralmente tu entorno: AWS Organizations

2.1. Conceptos básicos

  • Organization: una entidad para administrar cuentas como una sola unidad
  • Account: cuenta estándar de AWS que contiene tus recursos de AWS
  • Organizational Units (OUs): un contenedor que te ayuda a organizar tus cuentas en una jerarquía y facilita la aplicación de controles de gestión
  • Secure Control Policies (SCPs): políticas que se utilizan para limitar lo que los principales en las cuentas miembro pueden hacer

aws-organizations-summary

2.2. Características / Ventajas

  • Gratis de usar
  • Gestión centralizada de tus cuentas de AWS
  • Agrupación jerárquica de tus cuentas (en Unidades Organizativas - OUs)
  • Control de acceso (IAM Identity Center, sucesor de AWS Single Sign-On)
  • Gestión de permisos (aplicar Service Control Policies - SCPs)
  • Facturación consolidada para todas las cuentas miembro
  • Configurar servicios de AWS compatibles para realizar acciones en tu organización.

2.3. Integración de servicios de AWS

Esta es la lista completa de integración de servicios compatibles con el servicio AWS Organizations. He incluido todos los servicios porque es importante saber que AWS Organizations puede ayudar con muchas integraciones y automatización en las nuevas cuentas.

  • Amazon Detective (facilita el análisis, la investigación y la identificación rápida de la causa raíz de posibles problemas de seguridad o actividades sospechosas)
  • Amazon DevOps Guru (analiza datos operativos e identifica comportamientos que se desvían de los patrones operativos normales)
  • Amazon GuardDuty (ayuda a identificar actividad inesperada y potencialmente no autorizada o maliciosa en tu entorno de AWS)
  • Amazon Inspector (servicio de gestión de vulnerabilidades automatizado que escanea continuamente Amazon EC2 y cargas de trabajo de contenedores en busca de vulnerabilidades de software y exposición de red no intencional)
  • Amazon Macie (descubre, clasifica y te ayuda a proteger tus datos sensibles en Amazon S3)
  • Amazon VPC IP Address Manager (facilita la planificación, el seguimiento y el monitoreo de direcciones IP para tus cargas de trabajo de AWS)
  • Artifact (proporciona descargas bajo demanda de informes de seguridad de AWS)
  • AWS Account Management (te permite modificar programáticamente la información y los metadatos de tu cuenta)
  • AWS Audit Manager (te ayuda a auditar continuamente tu uso de AWS)
  • AWS Backup (establece políticas para aplicar copias de seguridad automáticas)
  • AWS Control Tower (forma sencilla de configurar y gobernar un entorno multi-cuenta de AWS, siguiendo las mejores prácticas prescriptivas)
  • AWS Health (visibilidad del rendimiento de tus recursos y la disponibilidad de tus servicios y cuentas de AWS)
  • AWS Marketplace - License Management
  • AWS Network Manager (gestiona centralmente tu red principal de AWS Cloud WAN y tu red de AWS Transit Gateway)
  • AWS Trusted Advisor (inspecciona tu entorno de AWS y hace recomendaciones)
  • CloudFormation StackSets (te permite crear, actualizar o eliminar stacks en múltiples cuentas y regiones con una sola operación)
  • CloudTrail (habilita la gobernanza, el cumplimiento y la auditoría operativa y de riesgos de tu cuenta de AWS)
  • Compute Optimizer (recomienda recursos de computación óptimos de AWS basándose en un análisis de las métricas de utilización históricas de tus recursos)
  • Config (te permite evaluar, auditar y evaluar las configuraciones de tus recursos de AWS)
  • Directory Service (comparte tus directorios de AWS Managed Microsoft AD entre otras cuentas de AWS de confianza en tu organización)
  • Firewall Manager (simplifica la administración y el mantenimiento de AWS WAF)
  • IAM Access Analyzer (te ayuda a establecer, verificar y refinar permisos para otorgar los permisos detallados correctos)
  • License Manager (lleva las licencias de proveedores de software a la nube)
  • RAM (comparte recursos de AWS)
  • S3 Storage Lens (agrega tus métricas de uso y actividad y muestra la información en un panel interactivo en la consola de Amazon S3)
  • Security Hub (te proporciona una vista completa del estado de seguridad de tus recursos de AWS)
  • Service Catalog (te permite crear y gestionar catálogos de servicios de TI que están aprobados para su uso en AWS)
  • Service Quotas (te permite ver y gestionar tus cuotas desde una ubicación central)
  • Single Sign-On (proporciona y gestiona centralmente el acceso de inicio de sesión único a todas tus cuentas de AWS)
  • Systems Manager (habilita la visibilidad y el control de tus recursos de AWS)
  • Tag policies (te ayudan a estandarizar etiquetas en todos los recursos)

2.4. Estructura organizativa recomendada (mejores prácticas)

Las siguientes recomendaciones deben adaptarse a cada Organización. Cada caso es diferente y tienes que pensar en cómo agrupar cuentas y cuántas OUs necesitas.

AWS recomienda que comiences con los servicios centrales en mente:

  • Security: Utilizado para herramientas de seguridad centralizadas y recursos de auditoría. Generalmente con al menos 2 cuentas (una para cada uno de los propósitos mencionados)
  • Infrastructure: Puedes usar este nivel para compartir infraestructura con las otras cuentas: es decir, redes y servicios de TI

Una vez que tengas tus Unidades Organizativas fundamentales, es hora de pensar en los entornos y separar SDLC (no producción) de producción porque generalmente tienen diferentes requisitos y quieres que cada uno esté aislado. Aunque puede ser una nueva categorización de OU, es común usarla como una sub-categorización dentro de otro nivel de OU (por ejemplo, Security e Infrastructure tendrían otros 2 niveles: SDLC y Prod).

EDICIÓN: SDLC (Software Development Life Cycle) se usa aquí porque este artículo se basa en las recomendaciones de AWS y ellos lo usan para el nombre de una OU para incluir todos los entornos no productivos, por ejemplo aquí y aquí. Por cierto, “introduzco” el concepto de SDLC cuando explico cómo agregar CI/CD a mi proyecto CDK en este otro artículo. Por favor, si encuentras algún error allí, ¡házmelo saber!

Ahora, tenemos que pensar en todas las OUs adicionales que necesitas. AWS recomienda crear OUs que se relacionen directamente con la construcción o ejecución de tus productos o servicios:

  • Sandbox
  • Workloads
  • Deployments
  • Suspended
  • Transitional
  • Exceptions

recommended-ous

Más información en los enlaces oficiales de AWS:

3. Comenzar con AWS Organizations

AWS Organizations es el servicio que nos ayuda con la gestión central de múltiples cuentas de AWS.

Para comenzar solo necesitas una cuenta de AWS, acceso a AWS Organizations y luego hacer clic en “Create an organization”:

aws-organizations-step1.png

Cuando lo hagas, puedes ver la Estructura Organizativa de tu Organización, y tendrás en la sección izquierda de la pantalla las opciones disponibles: enviar Invitaciones, configurar servicios compatibles, habilitar políticas, la configuración de la Organización y una opción Get started.

aws-organizations-step2.png

La opción Get started es interesante ya que puedes ver los 4 pasos para “Construir tu organización”:

  1. Crear cuentas o invitar cuentas existentes
  2. Organizar las cuentas miembro de tu organización en OUs
  3. Crear políticas
  4. Habilitar servicios de AWS que admiten AWS Organizations

Además, una estructura organizativa recomendada simplificada

recommended-organization-structure

Así que perfecto, ahora sabemos cómo crear una AWS Organization, podemos crear las diferentes OUs que necesitamos, podemos crear nuevas Cuentas y enviarles una invitación para unirse a nuestra organización, y luego configurar los servicios habilitados y aplicar las políticas.

¿Fácil? No realmente… puedes hacerlo todo manualmente si necesitas una personalización pesada, pero parece necesario aplicar automatización para una gobernanza y gestión eficientes, y probablemente necesitemos ayuda para configurar nuestra landing zone.

Una landing zone es un entorno de AWS multi-cuenta bien arquitectado que es un punto de partida desde el cual puedes desplegar cargas de trabajo y aplicaciones.

Afortunadamente, AWS tiene otro servicio para ayudarnos: AWS Control Tower.

4. AWS Control Tower

AWS Control Tower ofrece la forma más fácil de configurar y gobernar un nuevo entorno multi-cuenta de AWS seguro y conforme. Establece una landing zone, que es un entorno multi-cuenta bien arquitectado basado en planos de mejores prácticas, y habilita la gobernanza usando guardrails que puedes elegir. Los guardrails son SCPs y reglas de AWS Config que implementan gobernanza para seguridad, cumplimiento y operaciones.

P: ¿Cuál es la diferencia entre AWS Control Tower y AWS Organizations?

AWS Control Tower ofrece una experiencia abstraída, automatizada y prescriptiva sobre AWS Organizations. Configura automáticamente AWS Organizations como el servicio de AWS subyacente para organizar cuentas e implementa guardrails preventivos usando SCPs. Control Tower y Organizations funcionan bien juntos. Puedes usar Control Tower para configurar tu entorno y establecer guardrails, luego usando AWS Organizations, puedes crear políticas personalizadas adicionales (como etiquetas, copias de seguridad o SCPs) que controlan centralmente el uso de servicios y recursos de AWS en múltiples cuentas de AWS.

Extraído de las FAQS de AWS Organizations

Ahora, vamos a crear nuestra Landing Zone usando AWS Control Tower.

Primero, accede al servicio y haz clic en Set up landing Zone:

aws-control-tower-1

Luego, revisa el primer paso, establece la región de inicio, si deseas denegar el acceso a cualquier región en la que AWS Control Tower no esté disponible y tu región adicional para gobernanza:

aws-control-tower-2 aws-control-tower-3

Ahora establece un nombre para la Unidad Organizativa Fundamental (Security, con 2 cuentas: cuenta de archivo de registros y cuenta de auditoría de seguridad) y la OU Adicional (Sandbox):

aws-control-tower-4

Luego configura las cuentas compartidas (Foundational OU - security), establece un correo electrónico asociado con las nuevas cuentas y un nombre para estas 2 cuentas:

  • Log archive: La cuenta de archivo de registros es un repositorio de registros inmutables de actividades de API y configuraciones de recursos de todas las cuentas.
  • Security audit: La cuenta de auditoría es una cuenta restringida. Permite que tus equipos de seguridad y cumplimiento obtengan acceso a todas las cuentas de la organización.

aws-control-tower-5

El paso 4 es configurar CloudTrail y el cifrado (deshabilitado por defecto) aws-control-tower-6

Finalmente, necesitas revisar toda la información y confirmar. A continuación, se mostrará una nueva pantalla con el progreso de la creación de la landing zone. El tiempo estimado es de 60 minutos.

Este es el resumen de lo que se está configurando:

  • 2 unidades organizativas, una para tus cuentas compartidas y otra para cuentas que serán aprovisionadas por tus usuarios
  • 2 nuevas cuentas, para archivo de registros y auditoría de seguridad
  • Un directorio nativo en la nube con grupos preconfigurados y acceso de inicio de sesión único
  • 20 guardrails preventivos para aplicar políticas
  • 3 guardrails detectivos para detectar violaciones de configuración

aws-control-tower-7

Con un poco de paciencia, recibirás la confirmación de que todo estuvo bien, y la configuración de la landing zone estará completa:

aws-control-tower-8

La nueva estructura creada es muy simple:

aws-control-tower-9

Y se ha configurado una nueva configuración de AWS Identity Center (anteriormente AWS SSO) para ti y ahora puedes acceder a este portal para acceder a todas tus cuentas de AWS:

aws-control-tower-10

Limpieza

Para limpiar AWS Control Tower necesitas desmantelarlo y luego esperar hasta 2 horas para eliminar todos los recursos.

aws-control-tower-11

5. Próximos pasos

Este artículo está licenciado bajo CC BY 4.0 por el autor.