Implementando AWS Landing Zone: Una Guía Práctica para Empresas Multi-cuenta
Introducción
¿No sabes qué es AWS ni para qué sirve una Landing Zone? Aquí te lo explico fácil:
AWS es la nube de Amazon, donde puedes crear servidores, bases de datos y mucho más, sin tener que comprar hardware.
Cuando una empresa crece, suele necesitar varias cuentas para separar proyectos, equipos o entornos (por ejemplo, pruebas y producción). Gestionar todo esto puede ser un lío.
AWS Landing Zone es como un kit de inicio que te ayuda a organizar y proteger todas esas cuentas desde el principio, siguiendo buenas prácticas.
En este artículo, te enseño cómo crear esa base usando Terraform, una herramienta que te permite “dibujar” tu infraestructura en archivos de texto, aunque nunca lo hayas hecho antes.
¿Qué es AWS Landing Zone?
AWS Landing Zone es una solución que ayuda a las empresas a configurar un entorno AWS multi-cuenta seguro y conforme con las normativas. Proporciona una base para:
- Gestión centralizada de cuentas
- Gobierno y cumplimiento
- Seguridad y monitorización
- Networking y conectividad
Implementación con Terraform
# Configuración de AWS Organizations
resource "aws_organizations_organization" "main" {
feature_set = "ALL"
aws_service_access_principals = [
"cloudtrail.amazonaws.com",
"config.amazonaws.com",
]
}
# Cuenta de Seguridad
resource "aws_organizations_account" "security" {
name = "security-account"
email = "security@tuempresa.com"
role_name = "OrganizationAccountAccessRole"
}
# Cuenta de Log Archive
resource "aws_organizations_account" "log_archive" {
name = "log-archive"
email = "logs@tuempresa.com"
role_name = "OrganizationAccountAccessRole"
}
Estructura de Organizational Units (OUs)
resource "aws_organizations_organizational_unit" "workloads" {
name = "workloads"
parent_id = aws_organizations_organization.main.roots[0].id
}
resource "aws_organizations_organizational_unit" "infrastructure" {
name = "infrastructure"
parent_id = aws_organizations_organization.main.roots[0].id
}
Control Tower y Account Factory
Control Tower extiende las capacidades de Landing Zone proporcionando:
- Account Factory: Automatización de la creación de cuentas
- Guardrails: Políticas de gobernanza preventivas y detectivas
- Dashboard: Visibilidad centralizada del cumplimiento
Mejores Prácticas de Seguridad
- IAM Baseline:
resource "aws_iam_account_password_policy" "strict" { minimum_password_length = 14 require_lowercase_characters = true require_numbers = true require_uppercase_characters = true require_symbols = true allow_users_to_change_password = true } - CloudTrail Multi-región: ```hcl resource “aws_cloudtrail” “main” { name = “organization-trail” s3_bucket_name = aws_s3_bucket.cloudtrail.id include_global_service_events = true is_multi_region_trail = true enable_logging = true
depends_on = [ aws_s3_bucket_policy.cloudtrail ] }
## Networking y Conectividad
1. **Transit Gateway**:
```hcl
resource "aws_ec2_transit_gateway" "main" {
description = "Main Transit Gateway"
tags = {
Name = "main-tgw"
}
}
- VPC Baseline: ```hcl module “vpc_baseline” { source = “./modules/vpc”
for_each = local.accounts
account_id = each.key cidr_block = each.value.cidr region = var.region } ```
Monitorización y Logging
Centraliza la monitorización usando:
- AWS SecurityHub
- AWS Config
- CloudWatch Logs
- AWS Systems Manager
Conclusiones
Una Landing Zone bien diseñada es fundamental para el éxito a largo plazo en AWS. Proporciona:
- Base sólida para el crecimiento
- Controles de seguridad robustos
- Cumplimiento normativo
- Escalabilidad empresarial