使用sts服务assume为一个角色的时候,提示超过Session时间限制:
An error occurred (ValidationError) when calling the AssumeRole operation: The requested DurationSeconds exceeds the MaxSessionDuration set for this role
为了排查这个问题,我们可以在具有IAM用户管理权限的用户AWSCLI命令行下,使用如下命令查询角色的Session时长。
aws iam list-roles
这里会返回多个角色,例如其中一个如下:
{
"Path": "/",
"RoleName": "AmazonSSMRoleForAutomationAssumeQuickSetup",
"RoleId": "AROFWDS54SIWMXL5XR5BZ",
"Arn": "arn:aws-cn:iam::420029990748:role/AmazonSSMRoleForAutomationAssumeQuickSetup",
"CreateDate": "2020-08-18T07:51:49+00:00",
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ssm.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
},
"Description": "IAM role for SSM for Quick-Setup to run automation",
"MaxSessionDuration": 3600
},
以上的信息是举例,返回清单会包含本账户上所有的role。实际case中,要找下代码中要assume为哪一个role,由此去查看那个role的信息。最后一行可以看到MaxSessionDuration就是Session最大时间。
然后在IAM角色下找到要修改的对应角色,修改之即可。如下截图。