AWS Security Token Service (STS)

AWS Security Token Service (STS)

¿Qué es el Security token Service (STS) de AWS?

Permite a los usuarios tener acceso limitado y temporal a los recursos de AWS. Los usuarios pueden utilizar diferentes fuentes como:

Federation (Usualmente Active Directory).
Utiliza SAML (Security Assertion Markup Language).
Brinda acceso temporal basado en credenciales de Active Directory (no se necesita ser un usuario de IAM).
Single sign on permite acceder a la consola de AWS sin asignar credenciales IAM.
Federation con aplicaciones móviles, mediante Facebook/Amazon/Google o algunos otros proveedores de OpenID.
Cross Account Access, que permite a los usuarios de una cuenta de AWS acceder a otra.

Terminología

Federation
Combinación o unión de una lista de usuarios en un dominio (como IAM) con una lista de usuarios en otro dominio (como Active Directory, Facebook, etc).
Identity Broker.
Es un servicio que permite tomar la identidad del punto y unirla (federate it) al punto B.
Identity Store.
Servicios como Active Directory, Facebook, Google, etc.
Identities.
Un usuario de un servicio como Facebook, Google, etc.

Escenario

  1. El usuario ingresa su nombre de usuario y contraseña.
  2. La aplicación llama al Identity Broker el cual captura el nombre de usuario y contraseña.
  3. El identity broker utiliza el directorio LDAP para validar la identidad del usuario.
  4. El identity broker invoca una función para generar un federation token utilizando las credenciales de IAM. La llamada debe contener una IAM policy de 1 a 36 horas con los permisos que serán otorgados a las credenciales temporales.
  5. El STS (Security Token Service) confirma que la policy del usuario de IAM invocando la función GetFederationToken le otorga permisos para crear un nuevo token y retorna 4 valores a la aplicación (access key, secret access key, token y duration).
  6. El identity broker regresa una credencial temporal a la aplicación.
  7. La aplicación utiliza las credenciales temporales (con el token incluido) para hacer una petición a Amazon S3.
  8. Amazon S3 utiliza IAM para verificar que las credenciales permitan realizar la operación en el bucket especificado.
  9. IAM da luz verde para que se realice la operación requerida en S3.

¿Qué se requiere para utilizar STS?

  1. Desarrollar un identity broker para comunicarse con LDAP y AWS STS.
  2. El Identity Broker siempre autentifica con LDAP primero, después con AWS STS.
  3. La aplicación entonces recibe acceso temporal a los recursos de AWS.