Skip to main content

Command Palette

Search for a command to run...

Guardrails en AWS: Protección organizacional con Service Control Policies (SCP)

Updated
4 min read
Guardrails en AWS: Protección organizacional con Service Control Policies (SCP)

Cuando una organización empieza a crecer en AWS, los mayores riesgos no suelen ser solo ataques externos, sino configuraciones incorrectas, uso indebido de privilegios y explosiones de costos.
Para mitigar esos riesgos, AWS Organizations ofrece una herramienta clave: Service Control Policies (SCPs).

Además, las SCPs juegan un rol fundamental dentro del AWS Cloud Adoption Framework (CAF), específicamente en el dominio de Seguridad, ayudando a implementar gobierno, control preventivo y seguridad por diseño.


¿Qué son las SCP (Service Control Policies)?

Las Service Control Policies permiten definir guardrails obligatorios que determinan qué acciones pueden o no ejecutarse dentro de una cuenta de AWS, sin importar los permisos IAM configurados.

✅ Se aplican a nivel Organización / OU / Cuenta
✅ No otorgan permisos, solo los restringen
✅ Afectan a usuarios, roles y root
✅ Son evaluadas antes que IAM

Concepto clave:

Una SCP define el límite máximo de lo que una cuenta puede hacer.


Relación entre SCPs e IAM

El modelo mental correcto es:

SCP (Organizations)
   ↓
IAM Policies (Account)
   ↓
Permiso final efectivo

Aunque una IAM policy permita una acción, si la SCP la niega, la acción jamás se ejecuta.


SCPs y el AWS Cloud Adoption Framework (CAF)

Dentro del AWS CAF, las SCPs impactan directamente en el pilar de Seguridad, principalmente en:

  • Preventive Controls

  • Identity and Access Management

  • Governance

  • Cost Control (shared responsibility)

Las SCPs permiten aplicar controles preventivos, evitando incidentes antes de que ocurran, en lugar de detectarlos después.

AWS Cloud Adoption Framework (CAF): Security Perspective Explained | by  Rabbiyatabassum | Oct, 2025 | Medium


🧱 SCP #1 — Identity Guardrails

🏷️ Name

identity-guardrails

📝 Description

Prevent IAM users and access keys creation. Enforce IAM Identity Center usage.

🎯 Objetivo

Forzar un modelo moderno y seguro de identidad:

  • ❌ No más usuarios IAM

  • ❌ No más access keys permanentes

  • ✅ Solo IAM Identity Center (SSO) y roles temporales


📄 Policy (JSON)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyIAMUserAndAccessKeyManagement",
      "Effect": "Deny",
      "Action": [
        "iam:CreateUser",
        "iam:DeleteUser",
        "iam:CreateAccessKey",
        "iam:UpdateAccessKey",
        "iam:DeleteAccessKey"
      ],
      "Resource": "*"
    }
  ]
}

✅ Alineación CAF – Seguridad

  • Identity & Access Management

  • Least Privilege

  • Preventive Controls


🧱 SCP #2 — Region Guardrails

🏷️ Name

region-guardrails

📝 Description

Restrict AWS usage to approved regions only.

🎯 Objetivo

Evitar:

  • Recursos creados en regiones no aprobadas

  • Costos inesperados

  • Problemas de compliance

Access denied while creating any resource in Pulumi + AWS Playground -  Playgrounds - KodeKloud - DevOps Learning Community


✅ Solo us-east-1 permitido

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAllRegionsExceptUSEast1",
      "Effect": "Deny",
      "NotAction": [
        "account:*",
        "billing:*",
        "iam:*",
        "organizations:*",
        "support:*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": "us-east-1"
        }
      },
      "Resource": "*"
    }
  ]
}

✅ Alineación CAF – Seguridad

  • Governance

  • Compliance

  • Data residency controls


🧱 SCP #3 — Root Guardrails

🏷️ Name

root-guardrails

📝 Description

Deny root account usage except for billing and support operations.

🎯 Objetivo

Eliminar el uso operativo del usuario root.


📄 Policy (JSON)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyRootAccountUsage",
      "Effect": "Deny",
      "Condition": {
        "StringLike": {
          "aws:PrincipalArn": "arn:aws:iam::*:root"
        }
      },
      "NotAction": [
        "account:*",
        "billing:*",
        "payments:*",
        "support:*",
        "tax:*"
      ],
      "Resource": "*"
    }
  ]
}

✅ Alineación CAF – Seguridad

  • Account Protection

  • Identity Hardening

  • Blast Radius Reduction


🧱 SCP #4 — Cost Explosion Prevention ✅

🏷️ Name

cost-explosion-prevention

📝 Description

Prevent cost explosions by blocking high-cost EC2 instances, uncontrolled Auto Scaling, and Lambda functions without concurrency limits.


📄 Policy (JSON)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyHighCostEC2InstanceTypes",
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Condition": {
        "ForAnyValue:StringLike": {
          "ec2:InstanceType": [
            "p*",
            "g*",
            "inf*",
            "trn*",
            "hpc*"
          ]
        }
      },
      "Resource": "*"
    },
    {
      "Sid": "LimitAutoScalingCapacity",
      "Effect": "Deny",
      "Action": [
        "autoscaling:SetDesiredCapacity",
        "autoscaling:UpdateAutoScalingGroup"
      ],
      "Condition": {
        "NumericGreaterThan": {
          "autoscaling:DesiredCapacity": "5"
        }
      },
      "Resource": "*"
    },
    {
      "Sid": "RequireLambdaConcurrencyLimit",
      "Effect": "Deny",
      "Action": [
        "lambda:CreateFunction",
        "lambda:UpdateFunctionConfiguration"
      ],
      "Condition": {
        "Null": {
          "lambda:ReservedConcurrentExecutions": "true"
        }
      },
      "Resource": "*"
    }
  ]
}

✅ Alineación CAF – Seguridad

  • Financial Governance

  • Preventive Technical Controls

  • Shared Responsibility (Security & Cost)


¿Dónde aplicar estas SCPs?

📸 (ACÁ PONER CAPTURA — Organizational Units con SCPs asociadas)

Ejemplo recomendado:

Root OU
 ├─ Security
 ├─ Shared-Services
 ├─ Production
 └─ Sandbox

Conclusión

Las Service Control Policies no solo refuerzan la seguridad técnica, sino que también:

  • ✅ Alinean la cuenta con el AWS CAF

  • ✅ Implementan controles preventivos reales

  • ✅ Reducen riesgos técnicos y financieros

  • ✅ Profesionalizan el gobierno de AWS

En AWS, la seguridad madura empieza por los guardrails.

More from this blog

B

Blog de CloudAcademy

80 posts