¿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
- El usuario ingresa su nombre de usuario y contraseña.
- La aplicación llama al Identity Broker el cual captura el nombre de usuario y contraseña.
- El identity broker utiliza el directorio LDAP para validar la identidad del usuario.
- 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.
- 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).
- El identity broker regresa una credencial temporal a la aplicación.
- La aplicación utiliza las credenciales temporales (con el token incluido) para hacer una petición a Amazon S3.
- Amazon S3 utiliza IAM para verificar que las credenciales permitan realizar la operación en el bucket especificado.
- IAM da luz verde para que se realice la operación requerida en S3.
¿Qué se requiere para utilizar STS?
- Desarrollar un identity broker para comunicarse con LDAP y AWS STS.
- El Identity Broker siempre autentifica con LDAP primero, después con AWS STS.
- La aplicación entonces recibe acceso temporal a los recursos de AWS.