[Tutorial] IAM Identity Center - Deja de saltar entre roles y empieza a bailar con SSO
Tags: aws, tutorial, sso, awtwins
Published: 2023-12-18 00:17:24

Buenas a tod@s! en primer lugar creemos que tenemos que presentarnos, somos @rager y @nanu, Ingenieros Cloud y gemelos ¿No querías caldo? 🥛¡Toma dos tazas! 🥛
Hemos pasado unos años peleando con los accesos a cuentas y como primer post creemos que tratar el topic de AWS SSO/Iam Idenfity Center podría ser interesante, tenemos que remarcar que iremos posteando una vez yo y otro él (puesto que lo creamos juntos) así que en todos hablaremos en plural 😜

**Drama de los Roles en AWS:**

Todos hemos pasado por allí... Intentando recordar roles específicos para cada cuenta, como tratando de seguir el ritmo en una coreografía pero sin ensayar... ¡Ahí va el rol de **prod**! Pues va a ser que no... ahora toca el de **dev**... o espera. ¿Tenemos problemas con el rol? ¿Puedes probar si puedes acceder? Ah no... será mi **MFA**… ¿Cómo accedíamos aquí? Dada la experiencia en estos casos, aprovechas y buscas algún tipo de solución que permita ir saltando de rol en rol, como puede ser AWS Extend Switch Roles (Web browser) (https://github.com/tilfinltd/aws-extend-switch-roles), que te permite añadir una serie de configuraciones en el plugin y una vez accedes a tu maravillosa cuenta de salto, ¡pum! 💥 ya puedes ir saltando a otras. Aunque... ¿qué sucede si alguien lo actualiza mal? (En caso de que esté compartido, claro...), ¿lo pierdes o se desconfigura? Volvemos al inicio... demasiados pasos para un único objetivo: "ACCEDER".🔑


## Introducción al SSO (Iam Identity Center)

Bien, damos paso a nuestro coreógrafo oficial, Iam Identity Center, quién nos proporcionará facilidades para que podamos realizar nuestro baile de una manera mucho más sencilla. 🕺

## ¿Como lo configuramos?

Como todo en este sector, podemos hacerlo de muchas formas, es recomendable tener creada una organización (la cual debe estar definida y estandarizada... ehem... ehem...)🤷‍♂️ todo y que si no la tienes o estás en una cuenta de PoC como nosotros, quizá no es
necesario para testear, con solo acceder al Enable AWS SSO podremos crearla. ¡**Easy**! 👌


![1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bixc48pp06xg1ev22czi.PNG)

![2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0l4wwqz4oaj4uz4ihcav.jpeg)

Seleccionamos “Finish enable” en IAM Identity Center y esperamos que se configure.
Una vez configurado podemos acceder a Identity Center y debajo del panel Settings Summary encontraremos nuestro AWS access portal URL:


![3](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0wxha9swa0gw221eyptd.PNG)

**https://[yourdirectory].awsapps.com/start**

## ⚙ Empezamos a testear ⚙

Una vez tenemos habilitado IAM Identity Center empezamos a testear:
Generamos una cuenta desde AWS Organizations &gt; AWS accounts
![4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5sb4v8j5tb3d363l9soq.PNG)
En nuestro caso, crearemos una dev-poc (por ejemplo...) y debemos añadir el email adress.
🚨 truquito 🚨 podemos usar alias para tener una gestión desde un mismo e-mail **(email+dev@domain.com)**
![5](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xcnhnqva4c6qtopdp7u3.PNG)
En este caso y puesto que se trata de una POC dejaremos el IAM role Name y los TAGS por defecto.
Una vez generada vamos a IAM Identity Center &gt; Permission sets y generamos un nuevo “Permission set” que será el encargado de tener las políticas asociadas
![6](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ziksuioh3c0m0uyisir6.PNG)
Como podemos ver ya tenemos una serie de permissions sets definidos por AWS que nos van a facilitar realizar estas acciones, en caso de tener que montar una solución más customizada podemos optar por nuestros bailarines profesionales “Custom permissions set” 📕
![7](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nn9rgp7ie7j5paa68aro.PNG)
Para la POC seleccionaremos ViewOnly Access
![8](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/no147ttewma9en91uwzo.PNG)
![9](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wtwoldx4981bpdq497ic.PNG)
Una vez disponemos de nuestros permisos generados volvemos a “IAM Identity Center” para otorgar estos mismo, en este caso, siempre recomendamos generar grupos donde después colgarán nuestros usuarios.
Generamos los usuarios proporcionando la información necesaria.
![10](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3hrqpz53ymwpzi2l0eml.PNG)
Generamos el grupo donde estarán estos usuarios y los añadimos al grupo recien creado, en nuestro caso:

Grupo: ViewOnlyAccess
User: view-access
![11](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fim68t09cc0ks43el6n3.PNG)
Una vez disponemos de los usuarios, grupos y cuenta, los relacionamos entre ellos.
Accedemos a IAM Identity Center > Multi-account permissions > AWS accounts marcamos el check de la cuenta y clicamos en Assign users or groups
![12](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ivy7xzpgnll4kcfyb1bo.PNG)
Seleccionamos el grupo “ViewOnlyAccess”
![13](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/06sx3gyfy3qxjqabqc1o.PNG)
Asignamos el permission Set creado, en nuestro caso el ViewOnlyAccess
![14](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oda76j3gi6nw0os9eznp.PNG)

🍾Y tenemos nuestro SSO🍾
![15](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j8vulimms2t6n5ey0ksp.PNG)
Intentaremos acceder con nuestro usuario por consola mediante el link del Identity Iam Center

**https://[yourdirectory].awsapps.com/start**

![16](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mpv8ufyawmtntkhqj7xh.PNG)

🕺Accedemos mediante el usuario generado en el tutorial y ya podemos salir a la pista de baile!🕺

![17](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/87zfd67rzk3cte5ws8xu.PNG)


## 🤷Pero…y si necesitamos la AWSCLI?🤷

Podemos hacer lo siguiente! 

`aws configure sso`
Este comando te solicitará configurar la siguiente información:
`SSO sesion name: Nombre de la sesión
SSO start URL: La URL de inicio de sesión de AWS SSO.
SSO region: La región de AWS SSO.
SSO client ID: El ID de cliente de AWS SSO.
SSO output format: El formato de salida para el comando. Puede ser "json", "text", o "table".
SSO profile name: El nombre del perfil que deseas configurar.`
**¿Como nos autenticamos?** 
Podemos usar el siguiente comando:
**aws sso login --profile <el profile name que creaste>**
Y 🧙‍♂Magia!🧙‍♂ se abrirá una nueva ventana solicitando que inicies sesión con tus credenciales de SSO.
Aprovechamos también la ocasión para compartir una tool que siempre nos ayudó con el tema de login en AWSCLI, la cual se puede integrar con SSO:
[aws-vault](https://github.com/99designs/aws-vault/tree/master)
🚀Esperamos vuestras reacciones y comentarios.🚀