He utilizado la API AssumeRole con credenciales temporales para asumir un rol de AWS Identity and Access Management (IAM), pero recibo un error similar al siguiente: «The requested DurationSeconds exceeds the 1 hour session limit for roles assumed by role chaining».
Resolución
Para asumir un rol con credenciales de seguridad temporales, utiliza la Interfaz de la línea de comandos de AWS (AWS CLI) con encadenamiento de roles. El encadenamiento de roles limita la sesión del rol de la API de AWS o la AWS CLI a una hora. Este límite no se puede incrementar. La duración máxima de una hora solo se aplica a la AWS CLI y la API de AWS.
Importante: La operación no se puede llevar a cabo si el valor del parámetro DurationSeconds es superior a una hora en el caso de las credenciales temporales.
Sigue estas recomendaciones en relación con el encadenamiento de roles:
- Para obtener las credenciales temporales de un rol, utiliza la característica de cambio de rol de la Consola de administración de AWS. La Consola de administración de AWS utiliza las credenciales de IAM o del usuario federado para cambiar a otro rol.
- Los usuarios que utilizan la autenticación multifactor (MFA) con la AWS CLI utilizan credenciales temporales para asumir otro rol. La API GetSessionToken de AWS Security Token Service (AWS STS) genera credencial temporales limitadas a una hora.
- Si utilizas el encadenamiento de roles para asumir el rol B con la misma cuenta de AWS que el rol A, asigna permisos adicionales al rol A para evitar que se encadene al rol B.
Nota: Si se muestran errores al ejecutar comandos de la AWS CLI, consulta Solución de errores de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Información relacionada
Solución de problemas de IAM y Amazon EC2