<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Terry Quispe Paniagua</title>
    <description>The latest articles on Forem by Terry Quispe Paniagua (@terry_cloud).</description>
    <link>https://forem.com/terry_cloud</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3614371%2F7804f481-6b8c-44c0-ab00-9e93e561a4bf.jpg</url>
      <title>Forem: Terry Quispe Paniagua</title>
      <link>https://forem.com/terry_cloud</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/terry_cloud"/>
    <language>en</language>
    <item>
      <title>🛡️ Entendiendo las Service Control Policies (SCPs) en AWS Organizations</title>
      <dc:creator>Terry Quispe Paniagua</dc:creator>
      <pubDate>Tue, 02 Dec 2025 03:47:50 +0000</pubDate>
      <link>https://forem.com/terry_cloud/-entendiendo-las-service-control-policies-scps-en-aws-organizations-40li</link>
      <guid>https://forem.com/terry_cloud/-entendiendo-las-service-control-policies-scps-en-aws-organizations-40li</guid>
      <description>&lt;h2&gt;
  
  
  1. Introducción
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ¿Qué problema resuelven las SCPs?
&lt;/h3&gt;

&lt;p&gt;Las SCPs, a diferencia de los permisos de IAM, no otorgan permisos, sino que los restringen. Popularmente llamados "guardrails" o "barandillas", son una herramienta clave para la gobernanza de AWS, así como también para fijar los lineamientos de seguridad y cumplimiento de la empresa.&lt;/p&gt;

&lt;p&gt;Antes de proseguir debemos entender unos conceptos previos:&lt;/p&gt;

&lt;h3&gt;
  
  
  IAM Policy
&lt;/h3&gt;

&lt;p&gt;Es un tipo de política de IAM que permite otorgar permisos a los usuarios y roles de AWS.&lt;/p&gt;

&lt;h3&gt;
  
  
  AWS Organizations
&lt;/h3&gt;

&lt;p&gt;AWS Organizations es un servicio que permite administrar y gestionar de forma centralizada múltiples cuentas de AWS. Con Organizations puedes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crear y gestionar cuentas de AWS (Account Management)&lt;/li&gt;
&lt;li&gt;Centralizar los costos de las cuentas de AWS (Billing)&lt;/li&gt;
&lt;li&gt;Gestionar los permisos de las cuentas de AWS junto a IAM Identity Center (Identity and Access Management)&lt;/li&gt;
&lt;li&gt;Aplicar políticas de seguridad a las cuentas de AWS (SCPs)&lt;/li&gt;
&lt;li&gt;Habilitar servicios multicuentas (Multi-account)&lt;/li&gt;
&lt;li&gt;Agrupar cuentas por Unidades Organizativas (Jerarquía de organización)&lt;/li&gt;
&lt;li&gt;Auditar entorno multicuentas (Audit)&lt;/li&gt;
&lt;li&gt;Compartir recursos en múltiples cuentas (Resource sharing)&lt;/li&gt;
&lt;li&gt;Automatizar aprovisionamiento de múltiples cuentas mediante CloudFormation (Multi-account)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Service Control Policies (SCPs)
&lt;/h2&gt;

&lt;p&gt;Es un tipo de política de AWS Organizations que permite restringir los permisos de las cuentas de AWS que pertenecen a la organización. Esta es una característica de AWS Organizations; existen otras políticas, pero nos centraremos en el tipo de servicio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Estructura de una SCP
&lt;/h3&gt;

&lt;p&gt;La estructura de una SCP es la siguiente:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpigyuysqbv3i1o352f0y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpigyuysqbv3i1o352f0y.png" alt="SCP Syntax" width="512" height="690"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Elementos principales de una SCP:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Elemento&lt;/th&gt;
&lt;th&gt;¿Qué hace?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Statement&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Es el contenedor principal de una política. Puedes tener varios statements en una SCP (cuidado: hay un límite de caracteres).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Effect&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Define si el statement permite (&lt;code&gt;Allow&lt;/code&gt;) o bloquea (&lt;code&gt;Deny&lt;/code&gt;) acciones. &lt;strong&gt;Nota:&lt;/strong&gt; &lt;code&gt;Allow&lt;/code&gt; no permite condicionales.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Action&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Especifica qué acciones de AWS se permiten o bloquean (ej: &lt;code&gt;s3:PutObject&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Resource&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Indica a qué recursos de AWS aplica la política (ej: un bucket específico).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Condition&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;(Opcional) Agrega condiciones para que el statement aplique solo en ciertos casos.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NotAction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lo opuesto a &lt;code&gt;Action&lt;/code&gt;: especifica acciones que quedan exentas de la SCP.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NotResource&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lo opuesto a &lt;code&gt;Resource&lt;/code&gt;: especifica recursos que quedan exentos de la SCP.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sid&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;(Opcional) Un nombre amigable para identificar el statement.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Version&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Define la versión del lenguaje de políticas (siempre usa &lt;code&gt;"2012-10-17"&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Comportamiento de una SCP
&lt;/h3&gt;

&lt;p&gt;Para entender mejor cómo funcionan las SCPs, podemos agrupar sus comportamientos en cuatro categorías clave:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Principios Básicos&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Naturaleza:&lt;/strong&gt; No otorgan permisos, solo los restringen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evaluación:&lt;/strong&gt; Un permiso solo se ejecuta si existe una política IAM que lo permita y una SCP que lo permita o no lo deniegue, en el caso de evaluación IAM y SCP. La evaluación final se encuentra en la &lt;a href="https://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/reference_policies_evaluation-logic_policy-eval-basics.html" rel="noopener noreferrer"&gt;documentación oficial de AWS&lt;/a&gt;. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Alcance: ¿A quién afecta?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cuentas Miembro:&lt;/strong&gt; Las SCPs restringen los permisos de todos los usuarios y roles, &lt;strong&gt;incluido el usuario root&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Administradores Delegados:&lt;/strong&gt; Sí están afectados, ya que residen en cuentas miembro.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Excepción Clave:&lt;/strong&gt; La &lt;strong&gt;Cuenta de Administración (Management Account)&lt;/strong&gt; NO se ve afectada por las SCPs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Interacción con otras Políticas&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IAM Deny:&lt;/strong&gt; Siempre tiene prioridad sobre cualquier SCP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SCP Deny:&lt;/strong&gt; Bloquea la acción explícitamente, incluso si IAM otorga &lt;code&gt;AdministratorAccess&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Permission Boundaries:&lt;/strong&gt; La evaluación final requiere: &lt;strong&gt;IAM Allow + SCP Allow + Boundary Allow&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Excepciones Técnicas&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Service-Linked Roles:&lt;/strong&gt; No se pueden restringir con SCPs, ya que son necesarios para que los servicios de AWS funcionen correctamente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource-Based Policies:&lt;/strong&gt; No se ven afectadas por SCPs; los accesos externos a recursos (como un bucket S3) siguen funcionando si la política del recurso lo permite.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Usuarios Externos:&lt;/strong&gt; No se ven afectados, incluso si acceden a recursos dentro de una cuenta restringida.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ¿Dónde se aplican las SCPs?
&lt;/h3&gt;

&lt;p&gt;En AWS Organizations, las SCPs se aplican a las cuentas de AWS que pertenecen a la organización y también a las unidades organizativas. Una unidad organizativa es como un folder donde puedes agrupar cuentas de AWS.&lt;/p&gt;

&lt;p&gt;A continuación una vista de una jerarquía de organización en AWS Organizations:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbalcy273rg7fuy5l9gsp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbalcy273rg7fuy5l9gsp.png" alt="Image Structure Organizations" width="800" height="831"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Componentes de una jerarquía de organización:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cuenta raíz (Root):&lt;/strong&gt; Es la cuenta principal de la organización, generalmente la cuenta de AWS que se creó al crear la organización. &lt;strong&gt;Importante:&lt;/strong&gt; Aplicar una SCP a la cuenta raíz afecta a todas las cuentas de la organización sin excepción (mucho cuidado con esto).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unidades organizativas (OUs):&lt;/strong&gt; Son como folders donde puedes agrupar cuentas de AWS. Aplicar una SCP a una OU afecta a todas las cuentas que pertenecen a la OU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cuentas:&lt;/strong&gt; Son las cuentas de AWS que pertenecen a la organización. Aplicar una SCP a una cuenta afecta solo a esa cuenta.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Las SCPs pueden aplicarse a múltiples cuentas por su característica de herencia.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  3. Laboratorio: Creación de SCPs
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Costo del laboratorio:&lt;/strong&gt; $0&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;⚠️ Advertencia:&lt;/strong&gt; Nunca debes aplicar una SCP a la cuenta productiva ni a un entorno con cuentas productivas. Siempre usa cuentas de prueba para validar el funcionamiento de la SCP antes de aplicarlo en múltiples cuentas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  A. Armando el laboratorio para probar SCPs
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🔐 Requisitos previos
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Tener una cuenta AWS principal (payer) desde la cual crearás la Organización.&lt;/li&gt;
&lt;li&gt;Tener acceso administrativo a esa cuenta.&lt;/li&gt;
&lt;li&gt;No necesitas método de pago adicional para la segunda cuenta.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ✅ Paso 1: Crear una Organización en AWS (si aún no está creada)
&lt;/h4&gt;

&lt;p&gt;1.1. Ingresa a la cuenta administradora (payer/root) de AWS.&lt;/p&gt;

&lt;p&gt;1.2. Ve al servicio &lt;strong&gt;AWS Organizations&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;1.3. Si todavía no tienes una organización:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Haz clic en &lt;strong&gt;Create Organization&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Confirmar creación de la organización.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🎉 Ahora tienes la capacidad de usar SCPs.&lt;/p&gt;

&lt;h4&gt;
  
  
  ✅ Paso 2: Crear una Unidad Organizativa (OU) para pruebas
&lt;/h4&gt;

&lt;p&gt;Las OU te ayudarán a aislar y probar SCPs sin afectar nada productivo o importante.&lt;/p&gt;

&lt;p&gt;2.1. En AWS Organizations, ve a &lt;strong&gt;AWS accounts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;2.2. Selecciona la OU raíz (root) y haz clic en &lt;strong&gt;Actions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;2.3. Clic en &lt;strong&gt;Create new organizational unit (OU)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;2.4. Pon un nombre claro (ej: &lt;code&gt;lab-scp-test&lt;/code&gt;) y acepta.&lt;/p&gt;

&lt;h4&gt;
  
  
  ✅ Paso 3: Crear una cuenta miembro dentro de la OU
&lt;/h4&gt;

&lt;p&gt;Crearás una segunda cuenta AWS desde la cuenta administradora. Esta cuenta será tu "cuenta de pruebas" donde validarás las SCPs.&lt;/p&gt;

&lt;p&gt;3.1. Desde AWS Organizations, ve a &lt;strong&gt;AWS Accounts&lt;/strong&gt; → &lt;strong&gt;Add an AWS account&lt;/strong&gt; → &lt;strong&gt;Create an AWS account&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;3.2. Rellena:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Account name:&lt;/strong&gt; &lt;code&gt;lab-scp-member&lt;/code&gt; (o el nombre de tu elección, puedes cambiar el nombre a futuro)&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Email address:&lt;/strong&gt; Te aconsejo usar tu correo con el que creaste la cuenta administradora, pero con un alias de la siguiente manera:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; &amp;lt;tuemail_sin_@gmail.com&amp;gt;+labscp@gmail.com
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt; Si tu correo es &lt;code&gt;pepito@gmail.com&lt;/code&gt;, tu segunda cuenta deberá ser: &lt;code&gt;pepito+labscp@gmail.com&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3.3. Clic en &lt;strong&gt;Create an AWS account&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  ✅ Paso 4: Mover la cuenta a la OU creada
&lt;/h4&gt;

&lt;p&gt;4.1. Selecciona la cuenta, clic en &lt;strong&gt;Actions&lt;/strong&gt; → &lt;strong&gt;Move AWS account&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;4.2. Elige la OU creada.&lt;/p&gt;

&lt;p&gt;4.3. Clic en &lt;strong&gt;Move AWS account&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  🔹 Configuración inicial de la cuenta miembro
&lt;/h4&gt;

&lt;p&gt;AWS enviará un correo para activar la cuenta. Necesitarás entrar a la cuenta para probar las SCPs. Para el primer ingreso lo harás con la cuenta root (podrías generar un ingreso mediante IAM Identity Center, pero se verá en otro artículo) y harás un reset de contraseña. Procura seguir las buenas prácticas de seguridad colocando MFA y una contraseña fuerte.&lt;/p&gt;

&lt;p&gt;Adicionalmente, necesitarás crear un usuario IAM con permisos de administrador, solo con propósitos de prueba, ya que no usaremos la root.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Guía para crear un usuario IAM:&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/id_users_create.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/id_users_create.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego de crear el usuario IAM, procederás a ingresar a la cuenta miembro con el usuario IAM creado para realizar las pruebas de SCPs. Recuerda: es solo para pruebas. Las SCPs solo se adjuntarán y crearán en la cuenta administradora de la organización; no podrás ver la organización desde la cuenta miembro.&lt;/p&gt;

&lt;h3&gt;
  
  
  B. Creación de SCPs
&lt;/h3&gt;

&lt;h4&gt;
  
  
  ✅ Paso 1: Acceder a AWS Organizations
&lt;/h4&gt;

&lt;p&gt;1.1. Desde la consola de AWS, busca y selecciona &lt;strong&gt;Organizations&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;1.2. Asegúrate de estar en la cuenta raíz de la organización o en una cuenta con permisos de administración de la organización.&lt;/p&gt;

&lt;h4&gt;
  
  
  ✅ Paso 2: Crear la SCP
&lt;/h4&gt;

&lt;p&gt;2.1. En el menú lateral, selecciona &lt;strong&gt;Policies&lt;/strong&gt; → &lt;strong&gt;Service control policies&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;2.2. Haz clic en &lt;strong&gt;Create policy&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;2.3. Ingresa un nombre y descripción para tu política.&lt;/p&gt;

&lt;p&gt;2.4. Define el contenido de la política en formato JSON (ver ejemplos más adelante).&lt;/p&gt;

&lt;h3&gt;
  
  
  C. Vincular política SCP a una OU o cuenta
&lt;/h3&gt;

&lt;h4&gt;
  
  
  ✅ Paso 1: Vincular SCP a la OU de pruebas
&lt;/h4&gt;

&lt;p&gt;1.1. En &lt;strong&gt;AWS Organizations&lt;/strong&gt; → &lt;strong&gt;AWS accounts&lt;/strong&gt;, selecciona la OU objetivo, cuenta o folder raíz.&lt;/p&gt;

&lt;p&gt;1.2. Haz clic en &lt;strong&gt;Policies&lt;/strong&gt; → &lt;strong&gt;Service control policies&lt;/strong&gt; → &lt;strong&gt;Attach&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;1.3. Selecciona la SCP creada y haz clic en &lt;strong&gt;Attach policy&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  D. Prueba de SCP
&lt;/h3&gt;

&lt;p&gt;1.1. Ve a la cuenta miembro (cuenta de pruebas).&lt;/p&gt;

&lt;p&gt;1.2. Accede con el usuario IAM creado.&lt;/p&gt;

&lt;p&gt;1.3. Intenta realizar la acción que se definió en la SCP.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Ejemplos de SCP para control de recursos en AWS
&lt;/h2&gt;

&lt;p&gt;Nos basamos en una organización con estructura de OUs y cuentas de prueba, donde puedes aplicar estas SCPs para validar su funcionamiento.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ejemplo de jerarquía organizativa:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Root
└── OU: &amp;lt;root-ou&amp;gt;
    ├── Development
    │   ├── Sandbox Dev 01 (Cuenta)
    │   └── &amp;lt;deepracer-aft1&amp;gt; (Cuenta)
    ├── Management
    │   └── Administrator (Cuenta de administración)
    ├── Network
    │   └── Networking (Cuenta)
    └── Security
        ├── Audit (Cuenta)
        └── Log Archive (Cuenta)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Estas SCPs se pueden aplicar a la OU raíz, a una OU específica o a cuentas individuales, según el alcance que necesites. Recuerda que las denegaciones prevalecen y no se aplican a la cuenta administradora.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  1️⃣ Denegar creación de buckets S3
&lt;/h3&gt;

&lt;p&gt;Evita que cualquier cuenta cree buckets S3:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Sid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DenyS3BucketCreation"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Deny"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"s3:CreateBucket"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Aplicación:&lt;/strong&gt; Colocar en la OU raíz para afectar a todas las cuentas de prueba, bloqueando la creación de buckets S3.&lt;/p&gt;

&lt;h3&gt;
  
  
  2️⃣ Restringir regiones de despliegue en las cuentas de Development
&lt;/h3&gt;

&lt;p&gt;Evita que se utilicen regiones distintas a la permitida, dejando accesibles solo ciertos servicios esenciales:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Deny"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"NotAction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"budgets:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"cloudfront:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"config:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"ec2:DescribeRegions"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"ec2:DescribeTransitGateways"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"ec2:DescribeVpnGateways"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"iam:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"networkmanager:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"organizations:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"route53:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"s3:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"shield:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"sts:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"support:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"trustedadvisor:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"waf:*"&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Condition"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"StringNotEquals"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                    &lt;/span&gt;&lt;span class="nl"&gt;"aws:RequestedRegion"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
                        &lt;/span&gt;&lt;span class="s2"&gt;"${REGION_NAME}"&lt;/span&gt;&lt;span class="w"&gt;
                    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Reemplaza&lt;/strong&gt; &lt;code&gt;${REGION_NAME}&lt;/code&gt; por la región autorizada (ejemplo: &lt;code&gt;"us-east-1"&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aplicación:&lt;/strong&gt; Útil para controlar costos y garantizar que recursos solo se desplieguen en regiones aprobadas. Dado que mencionan el alcance hacia las cuentas Development se vinculara a la OU Development que es el folder de esas cuentas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;descripcion:&lt;/strong&gt; En este caso se uso de NotAction para no afectar ciertos servicios de alcanza global, en este caso servicios como budgets, cloudfront, config, iam, networkmanager, organizations, route53, s3, shield, sts, support, trustedadvisor, waf no se veran afectados pero los demas si.&lt;/p&gt;

&lt;h3&gt;
  
  
  3️⃣ Restringir tipos de instancias RDS
&lt;/h3&gt;

&lt;p&gt;Evita que se creen instancias RDS que no correspondan a un tipo aprobado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Sid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DenyUnapprovedRDSTypes"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Deny"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"rds:CreateDBInstance"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Condition"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"StringNotEquals"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                    &lt;/span&gt;&lt;span class="nl"&gt;"rds:DatabaseClass"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"${INSTANCEDBTYPE}"&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Reemplaza&lt;/strong&gt; &lt;code&gt;${INSTANCEDBTYPE}&lt;/code&gt; por el tipo de instancia aprobado (ejemplo: &lt;code&gt;"db.t3.medium"&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aplicación:&lt;/strong&gt; Garantiza estándares de arquitectura y control de costos en RDS.&lt;/p&gt;

&lt;h3&gt;
  
  
  4️⃣ Denegar escritura en buckets S3 fuera de la organización
&lt;/h3&gt;

&lt;p&gt;Evita que cualquier cuenta escriba en buckets S3 que no pertenezcan a la organización:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Sid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DenyS3WritesToUnauthorizedBuckets"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Deny"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"s3:Put*"&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Condition"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"StringNotEquals"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                    &lt;/span&gt;&lt;span class="nl"&gt;"aws:ResourceOrgID"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"[O-XXXXX]"&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Reemplaza&lt;/strong&gt; &lt;code&gt;[O-XXXXX]&lt;/code&gt; por el ID de tu organización.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aplicación:&lt;/strong&gt; Útil para prevenir que los datos se escriban fuera de los buckets gestionados por tu organización, reforzando la seguridad y gobernanza de S3.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. SCPs que toda cuenta debería tener
&lt;/h2&gt;

&lt;p&gt;No existen SCPs que toda cuenta debería tener de forma universal, ya que cada organización tiene sus propias necesidades y requisitos. Sin embargo, bajo un modelo de seguridad básico, considero que las cuentas deberían tener al menos las siguientes SCPs:&lt;/p&gt;

&lt;h3&gt;
  
  
  🔐 5.1. Denegar la utilización de cuentas ROOT
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Descripción:&lt;/strong&gt; Evita que se realicen acciones críticas usando la cuenta raíz de AWS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beneficio:&lt;/strong&gt; Protege la cuenta administrativa principal de accesos accidentales o maliciosos.&lt;/p&gt;




&lt;h3&gt;
  
  
  🚪 5.2. Denegar la acción de salir de la organización
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Descripción:&lt;/strong&gt; Impide que las cuentas miembros abandonen la organización.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beneficio:&lt;/strong&gt; Mantiene la gobernanza centralizada y evita pérdidas de control sobre cuentas.&lt;/p&gt;




&lt;h3&gt;
  
  
  👤 5.3. Denegar acciones en IAM que no sean usuarios y roles específicos
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Descripción:&lt;/strong&gt; Restringe la creación o modificación de políticas, roles y permisos que no estén permitidos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beneficio:&lt;/strong&gt; Evita escalación de privilegios no controlada y mantiene la seguridad de la identidad.&lt;/p&gt;




&lt;h3&gt;
  
  
  🌍 5.4. Denegar regiones no utilizadas en la organización
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Descripción:&lt;/strong&gt; Bloquea la creación de recursos fuera de las regiones aprobadas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beneficio:&lt;/strong&gt; Controla costos y asegura consistencia operativa en regiones autorizadas.&lt;/p&gt;




&lt;h3&gt;
  
  
  📝 5.5. Denegar borrado y modificación de registros específicos
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Descripción:&lt;/strong&gt; Protege logs críticos de CloudTrail, Config u otros registros importantes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beneficio:&lt;/strong&gt; Garantiza trazabilidad y cumplimiento normativo.&lt;/p&gt;




&lt;h3&gt;
  
  
  🗄️ 5.6. Denegar borrado de buckets donde se guardan registros de auditoría
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Descripción:&lt;/strong&gt; Impide que se eliminen buckets S3 usados para almacenar logs de auditoría.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beneficio:&lt;/strong&gt; Asegura la integridad de los registros y evidencia de auditoría.&lt;/p&gt;




&lt;h3&gt;
  
  
  💰 5.7. Denegar servicios con alto coste no útiles para la organización
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Descripción:&lt;/strong&gt; Bloquea servicios como Redshift, SageMaker u otros que no estén aprobados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beneficio:&lt;/strong&gt; Evita gastos innecesarios y recursos no autorizados.&lt;/p&gt;

&lt;p&gt;Aunque muchas de estas SCPs están enfocadas principalmente en gobernanza y control, también actúan como capas adicionales de seguridad, creando barreras que protegen la organización de errores, mal uso o accesos no deseados.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Conclusión
&lt;/h2&gt;

&lt;p&gt;Las Service Control Policies (SCPs) son una herramienta fundamental para establecer guardrails de seguridad, cumplimiento y gobernanza en AWS Organizations. A través de este artículo hemos aprendido:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Qué son las SCPs&lt;/strong&gt; y cómo se diferencian de las políticas IAM tradicionales&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cómo funcionan&lt;/strong&gt; y a quién afectan dentro de la organización&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dónde aplicarlas&lt;/strong&gt; en la jerarquía organizativa&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cómo crear un laboratorio&lt;/strong&gt; de pruebas sin costo para validar SCPs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ejemplos prácticos&lt;/strong&gt; de políticas comunes para controlar recursos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recomendaciones básicas&lt;/strong&gt; de SCPs que toda organización debería considerar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Recuerda siempre probar tus SCPs en entornos de prueba antes de aplicarlas en producción, ya que una política mal configurada puede bloquear operaciones críticas. Las SCPs son restrictivas por naturaleza: no otorgan permisos, solo los limitan.&lt;/p&gt;

&lt;p&gt;Con una implementación cuidadosa, las SCPs te permitirán mantener el control centralizado de tu entorno multi-cuenta, reducir riesgos de seguridad y optimizar costos operativos.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Bonus RedTeam
&lt;/h2&gt;

&lt;p&gt;Hemos hablado bastante de SCPs, pero ahora comprendes que tan importante es la management account para controlar todo el entorno. Si alguien tiene acceso no autorizado a la management account es lo mas peligroso que puede pasar, como recordaras estan excentas de las SCPs y puedes tomar acciones en las cuentas miembros desde crearlas, cerrarlas o expulsarlas de la organización. AWS organizations no es solo politicas de organización, es un servicio que integra muchos otro servicio de seguridad que veremos mas adelante.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Pregunta de reflexión final
&lt;/h2&gt;

&lt;p&gt;¿Qué tan seguro crees que es tu entorno multi-cuenta? ¿Qué medidas adicionales consideras importantes para mejorar la seguridad de tu organización?&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;¡Ahora es tu turno de implementar SCPs en tu organización!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Documentación y Referencias
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/reference_policies_evaluation-logic_policy-eval-basics.html" rel="noopener noreferrer"&gt;AWS IAM - Lógica de evaluación de políticas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/es_es/organizations/latest/userguide/orgs_tutorials_basic.html" rel="noopener noreferrer"&gt;AWS Organizations - Tutorial básico&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/es_es/organizations/latest/userguide/orgs_manage_policies_scps.html" rel="noopener noreferrer"&gt;AWS Organizations - Gestión de Service Control Policies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws-samples.github.io/threat-technique-catalog-for-aws/Techniques/T1666.A002.html" rel="noopener noreferrer"&gt;AWS Threat Technique Catalog - Técnicas de amenazas en Organizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples_general.html" rel="noopener noreferrer"&gt;AWS Organizations - Ejemplos de SCPs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>management</category>
      <category>security</category>
    </item>
    <item>
      <title>AWS Policy Deep Dive</title>
      <dc:creator>Terry Quispe Paniagua</dc:creator>
      <pubDate>Sun, 23 Nov 2025 23:37:11 +0000</pubDate>
      <link>https://forem.com/terry_cloud/aws-policy-deep-dive-5e78</link>
      <guid>https://forem.com/terry_cloud/aws-policy-deep-dive-5e78</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Parte 1: ¿Crees que tus datos están seguros solo con IAM? Hablemos de SCPs y RCPs.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;🛡️ La seguridad en la nube requiere una estrategia de defensa en profundidad. 🛡️&lt;br&gt;
Cuando empecé en AWS, pensaba que con IAM bastaba. Pero al profundizar, me di cuenta de la importancia de capas adicionales como las SCPs y RCPs.&lt;/p&gt;

&lt;p&gt;Entender la diferencia entre &lt;strong&gt;Identidad&lt;/strong&gt;, &lt;strong&gt;Recurso&lt;/strong&gt; y &lt;strong&gt;Control Organizacional&lt;/strong&gt; es vital para proteger nuestros entornos. No es solo "dar permisos", es saber &lt;em&gt;dónde&lt;/em&gt; aplicarlos para garantizar el menor privilegio y la máxima seguridad.&lt;/p&gt;

&lt;p&gt;Aquí les comparto mi guía mental para no perderse y saber identificar cuando podemos o debemos usar cada una de estas.&lt;/p&gt;

&lt;h3&gt;
  
  
  1️⃣ Identity-based Policies (IAM Policies)
&lt;/h3&gt;

&lt;p&gt;👉 &lt;strong&gt;El "Quién puede hacer qué"&lt;/strong&gt; Son las más comunes. Se adjuntan a Usuarios, Grupos o Roles. &lt;br&gt;
📝 &lt;strong&gt;Ejemplo:&lt;/strong&gt; Un usuario de operaciones necesita iniciar o detener instancias EC2s, pero no puede crear, terminar ni modificar instancias.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Acción:&lt;/strong&gt; Crear una Policy que permita &lt;code&gt;ec2:StartInstances&lt;/code&gt;  y &lt;code&gt;ec2:StopInstances&lt;/code&gt; en la tabla de "Productos".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resultado:&lt;/strong&gt; Si intenta modificar o eliminar la instancia, AWS le dice "No".&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2️⃣ Resource-based Policies
&lt;/h3&gt;

&lt;p&gt;👉 &lt;strong&gt;El "Quién puede tocar ESTO"&lt;/strong&gt; Aquí la regla vive en el recurso mismo (S3 Bucket, SQS, KMS Key), no en el usuario. Son vitales para accesos &lt;em&gt;Cross-Account&lt;/em&gt; pero no restringidos a ellos. 📝 &lt;strong&gt;Ejemplo:&lt;/strong&gt; Tienes un Bucket S3 de logs centralizados.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Acción:&lt;/strong&gt; Colocas una Bucket Policy que dice: "Permitir &lt;code&gt;s3:PutObject&lt;/code&gt; a la cuenta de Producción (Account B)".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resultado:&lt;/strong&gt; La cuenta B puede escribir logs ahí sin tener un usuario creado en tu cuenta de logs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3️⃣ Service Control Policies (SCPs)
&lt;/h3&gt;

&lt;p&gt;👉 &lt;strong&gt;Las "Reglas de la Casa" (Límites de Identidad, popularmente guardrail o barandilla de seguridad)&lt;/strong&gt; Aquí es donde muchos se confunden. Las SCPs &lt;strong&gt;NO&lt;/strong&gt; dan permisos. Solo definen el &lt;em&gt;máximo&lt;/em&gt; permiso posible. Si la SCP dice "No", no importa si tienes AdminAccess, es un "No". 📝 &lt;strong&gt;Ejemplo:&lt;/strong&gt; Seguridad Compliance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Acción:&lt;/strong&gt; Aplicas una SCP en la raíz de tu Organización que niega &lt;code&gt;ec2:RunInstances&lt;/code&gt; en cualquier región que no sea &lt;code&gt;us-east-1&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  - &lt;strong&gt;Resultado:&lt;/strong&gt; Aunque seas Admin, si intentas levantar un servidor en Tokyo, fallará.
&lt;/h2&gt;

&lt;h3&gt;
  
  
   Resource Control Policies (RCPs)
&lt;/h3&gt;

&lt;p&gt;👉 &lt;strong&gt;El "Perímetro de Datos" (Límites de Recurso)&lt;/strong&gt; Funcionan como las SCPs, pero enfocadas en restringir el acceso a tus &lt;strong&gt;recursos&lt;/strong&gt;, sin importar quién sea el que llama (incluso si es externo). 📝 &lt;strong&gt;Ejemplo:&lt;/strong&gt; Data Perimeter estricto.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Acción:&lt;/strong&gt; Creas una RCP que dice: "Nuestros Buckets S3 solo pueden ser accedidos por &lt;em&gt;Principals&lt;/em&gt; que pertenezcan a nuestra Organización (PrincipalOrgID)".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resultado:&lt;/strong&gt; Si alguien configura por error un Bucket como "Público" o intenta darle acceso a una cuenta externa de un proveedor, la RCP lo bloquea automáticamente. Ideal para prevenir ataques de exfiltración de datos&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
   Resumen
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tipo de Política&lt;/th&gt;
&lt;th&gt;Se aplica a...&lt;/th&gt;
&lt;th&gt;Función Principal&lt;/th&gt;
&lt;th&gt;¿Cuándo usarlo?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IAM Policy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Usuario/Rol/Grupo&lt;/td&gt;
&lt;td&gt;Otorgar permisos&lt;/td&gt;
&lt;td&gt;Para otorgar permisos a usuarios, grupos o roles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Resource Policy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;S3, SQS, etc.&lt;/td&gt;
&lt;td&gt;Otorgar acceso (incluso externo)&lt;/td&gt;
&lt;td&gt;Para definir quien puede acceder a un recurso&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SCP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cuenta AWS (excepto cuenta administradora de la organización), Unidades Org&lt;/td&gt;
&lt;td&gt;Restringir permisos máximos (Identidad)&lt;/td&gt;
&lt;td&gt;Para establecer límites máximos sobre las identidades&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RCP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Recursos de la Org, excepto recursos de la cuenta administradora de la organización&lt;/td&gt;
&lt;td&gt;Restringir acceso máximo (Recurso)&lt;/td&gt;
&lt;td&gt;Para establecer límites máximos sobre sobre quien accede a tus datos&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🔥 Bonus: Perspectiva Red Team
&lt;/h3&gt;

&lt;p&gt;Entender IAM, SCPs y RCPs no solo es vital para proteger tu cuenta y organización, también es un componente clave para reducir la superficie de ataque.&lt;/p&gt;

&lt;p&gt;Por ejemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Escenario de Red Team:&lt;/strong&gt; un atacante intenta asumir roles o crear usuarios para escalar privilegios.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SCPs bloquean el movimiento lateral:&lt;/strong&gt; aunque tenga AdminAccess en una cuenta hija, no podrá ejecutar acciones prohibidas por la SCP a nivel de Organización (ej: &lt;code&gt;organizations:LeaveOrganization&lt;/code&gt;, &lt;code&gt;iam:CreateUser&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;RCPs evitan exfiltración de datos:&lt;/strong&gt; un bucket mal configurado no permite accesos de cuentas externas aunque el atacante tenga privilegios en otra parte.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Conclusión:&lt;/strong&gt; conocer y aplicar correctamente estas políticas es &lt;strong&gt;como poner murallas antes de que alguien llegue al nucleo de tu entorno&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Pregunta de reflexión: ¿por qué es un riesgo crítico desplegar recursos productivos o mantener usuarios activos operando directamente en la cuenta administradora de la organización o también llamado Payer Account?&lt;/p&gt;

&lt;p&gt;🔜 &lt;strong&gt;En el próximo post:&lt;/strong&gt; Profundizaremos en las &lt;strong&gt;SCPs&lt;/strong&gt;, cuales son las SCPs mas relevantes que toda cuenta debería tener y cómo configurarlas correctamente para dormir tranquilos.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>security</category>
    </item>
  </channel>
</rss>
