DEV Community

Pablo Gonzalez Robles
Pablo Gonzalez Robles

Posted on

Control centralizado de S3 Block Public Access a nivel organizacional (en español sencillo)

¡Hola comunidad! 👋
Quiero compartirles una nueva funcionalidad de seguridad en AWS que me parece interesante pero he visto que se ha mencionado muy poco en las redes: El bloqueo público de los buckets de S3 desde AWS Organizations. Si quieres leer el anuncio oficial de esta funcionalidad, puedes verla aquí: https://aws.amazon.com/about-aws/whats-new/2025/11/amazon-s3-block-public-access-organization-level-enforcement/

¿Por qué me llamó la atención esto?

La razón principal es simple: control centralizado desde la cuenta administradora de la organización.

La vieja solución

Antes (todavía el presente para muchos) teníamos básicamente dos opciones para asegurar que los objetos de los buckets no se expusieran públicamente:
Opción 1: Bloqueo a nivel de cuenta
Tenías que ir cuenta por cuenta dentro de tu organización, activando manualmente (o con scripts) el Block Public Access en cada una. Esto significa:

  • Configuración repetitiva en múltiples cuentas
  • Mayor probabilidad de error humano
  • Necesidad de monitorear cada cuenta individualmente
  • Complejidad al escalar

Opción 2: Bloqueo a nivel de bucket
Aún peor. Esto implicaba configurar cada bucket individual con Block Public Access activado:

  • Trabajo manual exhaustivo
  • Imposible de escalar en organizaciones grandes
  • Fácil olvidar un bucket nuevo
  • Pesadilla operativa para auditorías

Ambas opciones requerían vigilancia constante y eran propensas a errores.

La nueva solución

Política a nivel organizacional.
¿Qué significa esto en la práctica?
Con un control preventivo habilitado en la cuenta de gestión de tu organización, obtienes:
✅ Control centralizado: Todo se gestiona desde un solo lugar
✅ Aplicación automática: Se aplica a todas las cuentas de la organización
✅ Menos vigilancia: Ya no necesitas monitorear cada cuenta o cada bucket

Es elegante, es simple, es efectivo.

Cómo se implementa

Primero, necesitas activar las S3 policies, para ello debes ejecutar el comando:

aws organizations enable-policy-type --root-id r-1234 --policy-type S3_POLICY
Enter fullscreen mode Exit fullscreen mode

Referencia: https://docs.aws.amazon.com/cli/latest/reference/organizations/enable-policy-type.html

Luego de activarla, podrás ver algo como lo de abajo en la consola:

{
"PolicyTypes": [
            {
                "Type": "S3_POLICY",
                "Status": "ENABLED"
            }
]
}
Enter fullscreen mode Exit fullscreen mode

En la consola, podrás ver lo siguiente:

Esto significa que ya puedes crear la política pero no significa que ya queda el bloqueo habilitado.

Para probar esto, creé un sitio web que es alojado en s3. Quité el bloqueo público a nivel de bucket, a nivel de cuenta y configuré una política de recurso muy permisiva en el bucket para así poder ver el sitio web desde el internet.

Luego que ya tenemos cómo validar si la política está funcionado, ahora la desplegamos usando infraestructura como código (incluso para las políticas), y quedaría así:

Ya luego de tener la política activada para toda la organización, recibo el siguiente error en el sitio web lo que confirma que el bloqueo público ya quedó habilitado.

Demo

Acabo de publicar la plantilla de despliegue de la política de S3 usando cloudoformation en mi GitHub: https://github.com/pangoro24/aws-cloudformation-bpa-org

Para cerrar

Esta implementación es perfecta si:

  • Gestionas múltiples cuentas de AWS en una organización
  • Quieres reforzar la seguridad sin aumentar la carga operativa
  • Buscas cumplir con políticas de seguridad de manera escalable
  • Prefieres la prevención sobre la detección

Sugerencia adicional: Si ya habías activado el bloqueo público a nivel de cuenta, manténla y así tendrás una capa adicional de seguridad (defense in depth)

¿Preguntas? ¿Sugerencias? ¡Los leo en los comentarios! 💬

Tags: #aws #cloudformation #security #devops #s3 #organizations

Top comments (0)