Identidad, recurso y límite

Uso de la seguridad de AWS para desarrolladores

Rahul Singh

Technical Product Manager

¿Qué política manda?

La edición que no cambia nada

  • Capítulo uno: denegación explícita o no permitir
  • Aquí: una tercera causa

Una solicitud se encuentra con tres comprobaciones de políticas apiladas, con un signo de interrogación donde iría la decisión.

Uso de la seguridad de AWS para desarrolladores

¿Qué política manda?

Hasta tres capas

  1. Política de identidad en quien llama
  2. Política de recurso en el recurso
  3. Límite arriba, solo resta

En tu propia cuenta, basta con que una permita

Si cualquiera capa deniega, se bloquea

Una solicitud fluye de arriba abajo por tres comprobaciones en orden: política de identidad, política de recurso y límite de permisos, antes de llegar a permitido.

Uso de la seguridad de AWS para desarrolladores

Dos lugares donde vive una política

Política basada en identidad

  • Adjunta a quien llama
  • Lo que esa identidad puede hacer
  • Un pase que llevas puesto

Un rol arriba lleva una política basada en identidad, con espacio abajo para el lado de recurso de la misma solicitud.

Uso de la seguridad de AWS para desarrolladores

Dos lugares donde vive una política

Política basada en identidad

  • Adjunta a quien llama
  • Lo que esa identidad puede hacer
  • Un pase que llevas puesto

Política basada en recurso

  • Adjunta al recurso
  • Quién puede acceder
  • Necesaria para llamadas entre cuentas

Un rol arriba lleva una política basada en identidad mientras que un bucket de S3 abajo lleva una política basada en recurso, y una solicitud viaja entre ambos.

Uso de la seguridad de AWS para desarrolladores

Gestionada para ti o por ti

Dos tipos de políticas de identidad

  • Gestionada por AWS: propiedad de AWS
  • Gestionada por el cliente: tuya

Dos tarjetas apiladas comparan una política gestionada por AWS, propiedad de AWS y amplia por defecto, frente a una política gestionada por el cliente, tuya y acotada a la tarea.

Uso de la seguridad de AWS para desarrolladores

Gestionada para ti o por ti

Dos tipos de políticas de identidad

  • Gestionada por AWS: propiedad de AWS
  • Gestionada por el cliente: tuya

 

Comodidad o precisión

  • Gestionada por AWS: moverse rápido
  • Gestionada por el cliente: mínimo privilegio

Dos tarjetas apiladas comparan una política gestionada por AWS, propiedad de AWS y amplia por defecto, frente a una política gestionada por el cliente, tuya y acotada a la tarea.

Uso de la seguridad de AWS para desarrolladores

Un límite tapa lo que concede una política

Por qué una cuenta añade una

  • Desarrolladores crean roles; nadie se eleva

Límite de permisos

  • Un techo a lo que concede una política
  • Efectivo: permitido por ambas

Tres permisos concedidos por una política de identidad pasan a un límite de permisos que solo permite acciones de S3; el permiso iam:CreateUser se detiene y los otros dos continúan hasta los permisos efectivos abajo.

Uso de la seguridad de AWS para desarrolladores

Un límite tapa lo que concede una política

Por qué una cuenta añade una

  • Desarrolladores crean roles; nadie se eleva

Límite de permisos

  • Un techo a lo que concede una política
  • Efectivo: permitido por ambas

Por qué iam:CreateUser no hizo nada

  • Solo resta, nunca concede

Tres permisos concedidos por una política de identidad pasan a un límite de permisos que solo permite acciones de S3; el permiso iam:CreateUser se detiene y los otros dos continúan hasta los permisos efectivos abajo.

Uso de la seguridad de AWS para desarrolladores

Un límite tapa lo que concede una política

Por qué una cuenta añade una

  • Desarrolladores crean roles; nadie se eleva

Límite de permisos

  • Un techo a lo que concede una política
  • Efectivo: permitido por ambas

Por qué iam:CreateUser no hizo nada

  • Solo resta, nunca concede

Política de sesión: una sesión de AssumeRole

Tres permisos concedidos por una política de identidad pasan a un límite de permisos que solo permite acciones de S3; el permiso iam:CreateUser se detiene y los otros dos continúan hasta los permisos efectivos abajo.

Uso de la seguridad de AWS para desarrolladores

Una condición acota el allow

Clave de condición

  • Restringe un allow al contexto de la solicitud

  • aws:SourceIp: la red de origen

Un allow para leer un objeto de S3 pasa por una banda de condición con una clave de red de origen y una clave de etiqueta del llamador; luego se divide en permitido si el contexto coincide y denegado si no.

Uso de la seguridad de AWS para desarrolladores

Una condición acota el allow

Clave de condición

  • Restringe un allow al contexto de la solicitud

  • aws:SourceIp: la red de origen

  • aws:PrincipalTag: una etiqueta en quien llama

ABAC: control de acceso basado en atributos

  • Una política, muchos principales

Un allow para leer un objeto de S3 pasa por una banda de condición con una clave de red de origen y una clave de etiqueta del llamador; luego se divide en permitido si el contexto coincide y denegado si no.

Uso de la seguridad de AWS para desarrolladores

Una tabla, un inquilino cada vez

Una sola tabla compartida

  • DynamoDB, una clave de partición por inquilino
  • No aísla por sí sola

Una persona inquilina A pasa por una condición de claves iniciales hacia una tabla DynamoDB compartida; se devuelven las filas del inquilino A y se bloquean las de B y C.

Uso de la seguridad de AWS para desarrolladores

Una tabla, un inquilino cada vez

"Condition": {
  "ForAllValues:StringEquals": {
    "dynamodb:LeadingKeys": ["${aws:PrincipalTag/tenant}"]
  }
}

Una sola tabla compartida

  • DynamoDB, una clave de partición por inquilino
  • No aísla por sí sola

Una condición lo acota

  • ForAllValues: cada clave aportada debe coincidir
Uso de la seguridad de AWS para desarrolladores

Una tabla, un inquilino cada vez

"Action": ["dynamodb:Query", "dynamodb:GetItem", "dynamodb:Scan"],
"Condition": {
  "ForAllValues:StringEquals": {
    "dynamodb:LeadingKeys": ["${aws:PrincipalTag/tenant}"]
  }
}

Una sola tabla compartida

  • DynamoDB, una clave de partición por inquilino
  • No aísla por sí sola

Una condición lo acota

  • ForAllValues: cada clave aportada debe coincidir
El hueco que deja: no toda solicitud nombra una partición
  • dynamodb:Scan no aporta ninguna, así que nada puede fallar
Uso de la seguridad de AWS para desarrolladores

¡Vamos a practicar!

Uso de la seguridad de AWS para desarrolladores

Preparing Video For Download...