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: «El valor solicitado de DurationSeconds supera el límite de sesión de 1 hora para los roles asumidos por encadenamiento de roles».
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 como máximo. y 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. Para obtener más información sobre el encadenamiento de funciones, consulta Términos y conceptos de funciones.
Nota: Si se muestran errores al ejecutar comandos de la AWS CLI, consulta Errores de solución de problemas de la AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Sigue estas recomendaciones en relación con el encadenamiento de roles:
- 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.
- La Consola de administración de AWS no admite el encadenamiento de roles. Para obtener las credenciales temporales de un rol, utiliza la función 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. Las credenciales temporales utilizan la API GetSessionToken de AWS STS y tienen un límite de tiempo de 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.
Información relacionada
Solución de problemas de IAM y Amazon EC2