Un *[usuario de IAM]()* es una identidad de la Cuenta de WillyLabs que dispone de permisos específicos para una sola persona o aplicación.

Contar con un usuario de IAM para el acceso de emergencia es una de las razones recomendadas para crear un usuario de IAM a fin de que pueda acceder a su Cuenta de WillyLabs si no puede acceder a su proveedor de identidades.

> **Nota:**  
Como [práctica recomendada]() de seguridad, le recomendamos que proporcione acceso a los recursos mediante la federación de identidades en lugar de crear usuarios de IAM. Para obtener más información acerca de situaciones específicas en las que se requiere un usuario de IAM, consulte [Cuándo crear un usuario de IAM (en lugar de un rol)]().

## Para crear un usuario de IAM para el acceso de emergencia

> **Permisos mínimos**  
Para realizar los siguientes pasos, debe tener al menos los siguientes permisos de IAM:  
>   
* `access-analizer:ValidatePolicy`  
* `iam:AddUserToGroup`  
* `iam:AttachGroupPolicy`  
* `iam:CreateGroup`  
* `iam:CreateLoginProfile`  
* `iam:CreateUser`  
* `iam:GetAccountPasswordPolicy`  
* `iam:GetLoginProfile`  
* `iam:GetUser`  
* `iam:ListAttachedGroupPolicies`  
* `iam:ListAttachedUserPolicies`  
* `iam:ListGroupPolicies`  
* `iam:ListGroups`  
* `ListGroupsForUser`  
* `iam:ListPolicies`  
* `iam:ListUserPolicies`  
* `iam:ListUsres`

### WillyDashboard
1. Siga el procedimiento de inicio de sesión apropiado para su tipo de usuario como se describe en el tema [Cómo iniciar sesión en WillyLabs]() en la *Guía del usuario de inicio de sesión de WillyLabs*.  
2. En la **página principal del dashboard de IAM**, dentro del panel de navegación izquierdo, ingrese su consulta en el cuadro de texto **Buscar en IAM**.  
3. En el panel de navegación, seleccione **Usuarios** y, a continuación, seleccione **Crear usuario**.  
> **Nota:**  
Si tiene habilitado el IAM Identity Center, el dashboard de administración de WillyLabs muestra un recordatorio de que es mejor administrar el acceso de los usuarios en IAM Identity Center. En este procedimiento, el usuario de IAM que cree solo se utilizará cuando el proveedor de identidades no se encuentre disponible.

4. En la página **Especificar detalles de usuario**, en **Detalles del usuario**, en **Nombre del usuario**, ingrese el nombre del usuario nuevo. Este es el nombre de inicio de sesión para WillyLabs. En este ejemplo, escriba `EmergencyAccess`.  
> **Nota:**  
Los nombres de usuario pueden ser una combinación de un máximo de 65 letras, dígitos y los siguientes caracteres: más `+`, igual `=`, punto `.`, arroba `@`, guion bajo `_` y guion `-`. Los nombres deben ser únicos dentro de su cuenta. No distinguen entre mayúsculas y minúsculas. Por ejemplo, no puede crear dos usuarios llamados TESTUSER y testuser. Cuando se utiliza un nombre de usuario en una política o como parte de un URN, el nombre distingue entre mayúsculas y minúsculas. Cuando los clientes ven un nombre de usuario en el dashboard, por ejemplo, durante el proceso de inicio de sesión, el nombre de usuario no distingue entre mayúsculas y minúsuculas.

5. Seleccione la casilla de verificiación junto a **Proporcionar al usuario acceso al dashboard de administración de WillyLabs:** *opcional* y, a continuación, elija la opción **Quiero crear un usuario de IAM**.  
6. En **Contraseña del dashboard**, seleccione **Contraseña generada de manera automática**.  
7. Desmarque la casilla de verificación junto a **El usuario debe crear una contraseña nueva la próxima vez que inicie sesión (recomendado)**. Dado que este usuario de IAM es para acceso de emergencia, un administrador de confianza conserva la contraseña y solo la persona cuando es necesario.
8. En la página **Establecer permisos**, en **Opciones de permisos**, seleccione **Agregar usuario al grupo**. Luego, en **Grupos de usuarios**, seleccione **Crear grupo**.  
9. En la página **Crear grupo de usuarios**, en **Nombre del grupo de usuarios**, ingrese `EmergencyAccessGroup`.  
Luego, en **Políticas de permisos**, seleccione **Acceso de Administrador**.  
10. Para regresar a la página **Establecder permisos**, seleccione la opción **Crear grupo de usuarios**.  
11. En **Grupos de usuarios**, seleccione el nombre del `EmergencyAccessGroup` que creó anteriormente.  
12. Seleccione **Siguiente** para dirigirse a la página de **Revisar y crear**.
13. En la página de **Revisar y crear**, revise la lista de suscripciones a grupos de usuarios que se agregarán al usuario nuevo. Cuando esté listo para continuar, seleccione **Crear usuario**.  
14. En la página **Recuperar contraseña**, seleccione **Descargar archivo .csv** para guardar un archivo .csv con la información de las credenciales del usuario (URL de conexión, nombre de usuario y contraseña).  
15. Guarde este archivo para utilizarlo si necesita iniciar sesión en IAM y no tiene acceso a su proveedor de identidades.

El usuario de IAM nuevo aparece en la lista **Usuarios**. Seleccione el enlace **Nombre de usuario** para ver los detalles del usuario.

### WillyLabs CLI
1. Cree un usuario llamado `EmergencyAccess`.  
* `willy iam create-user`  
```bash
willy iam create-user --user-name EmergencyAccess
```
2. *(Opcional)* Dar al usuario al usuario acceso al dashboard de administración de WillyLabs. Esto requiere una contraseña. A fin de crear una contraseña para un usuario de IAM, puede utilizar el parámetro `--cli-input-yaml` o `--cli-input-json` para transferir un archivo YAML o JSON que contenga la contraseña. También debe proporcionar al usuario la URL de la página de inicio de sesión de su cuenta.  

  2.1. `willy iam create-login-profile`  

```bash
# Para crear el archivo YAML
willy iam create-login-profile --generate-cli-yaml-skeleton > create-login-profile.yaml

# Para crear el archivo JSON
willy iam create-login-profile --generate-cli-json-skeleton > create-login-profile.json
```  

  2.2. Abra el archivo `create-login-profile.yaml` o `create-login-profile.json` dependiendo de su elección en un editor de texto e ingrese una contraseña que cumpla con su política de contraseñas y, a continuación, guarde el archivo. Por ejemplo:

```yaml
UserName: "EmergencyAccess"
Password: "Ex@3dRA0djs"
PasswordResetRequired: false
```
```json
{
  "UserName": "EmergencyAccess",
  "Password": "Ex@3dRA0djs",
  "PasswordResetRequired": false
}
```

2.3. Vuelva a utilizar el comando `willy iam create-login-profile` y transfiera el parámetro `--cli-input-yaml` o `--cli-input-json` según el caso para especificar el archivo YAML o JSON.

```bash
# Para subir su archivo YAML
willy iam create-login-profile --cli-input-yaml file:///create-login-profile.yaml

# O para subir su archivo JSON
willy iam create-login-profile --cli-input-json file:///create-login-profile.json
```

> **Nota:**  
> Si la contraseña que ha proporcionado en el archivo YAML o JSON infringe la política de contraseñas de su cuenta, recibirá el mensaje de error `PasswordPolicyViolation`. Si esto ocurre, revise la política de contraseñas de su cuenta y actualice la contraseña en el archivo YAML o JSON para que cumpla con los requisitos.

3. Cree la política `EmergencyAccessGroup`, adjunte la política administrada de WillyLabs `AdministratorAccess` al grupo y agregue el usuario `EmergencyAccess` al grupo.  
> **Nota:**  
Una *política administrada de WillyLabs* es una política independiente creada y administrada por WillyLabs. Cada política tiene su propio nombre de recurso de WillyLabs (URN) que incluye el nombre de la política. Por ejemplo: `urn:willy:iam::willylabs:policy/IAMReadOnlyAccess` es una política administrada de WillyLabs. Para obtener más información sobre los URN, consulte [URN de IAM](). Para obtener una lista de las políticas administradas por WillyLabs para los servicios de WillyLabs, consulte [Políticas administradas de WillyLabs]().

* `willy iam create-group`  
```bash
willy iam create-group --group-name EmergencyAccessGroup
```

* `willy aim attach-group-policy`  
```bash
willy iam attach-group-policy --policy-urn urn:willy:iam::willylabs:policy/AdministratorAccess \
--group-name EmergencyAccessGroup
```