我正在尝试在不同的帐户中承担一个角色,以赋予我读取权限。角色(ROLE_IN_TARGET_ACCOUNT)具有我需要的权限,但是我得到一个错误,我的用户(SOURCE_USER)不允许承担该角色。
ROLE_IN_TARGET_ACCOUNT还具有以下信任关系
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::SOURCE_ACCOUNTID:root"
},
"Action": "sts:AssumeRole",
"Condition": {}
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::SOURCE_ACCOUNTID:user/SOURCE_USER"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
SOURCE_ACCOUNTID
中已添加以下策略到IAM用户组{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::TARGET_ACCOUNT:role/ROLE_IN_TARGET_ACCOUNT"
}
和SOURCE_USER是这个用户组的成员。所以ROLE_IN_TARGET_ACCOUNT应该信任SOURCE_USER,而SOURCE_USER应该有权限假设ROLE_IN_TARGET_ACCOUNT。
然而,我得到了错误An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:iam::SOURCE_ACCOUNTID:user/SOURCE_USER is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::TARGET_ACCOUNT:role/ROLE_IN_TARGET_ACCOUNT
我在这里错过了什么?
您共享的策略看起来很好(除了第二个信任策略是冗余的-root
包括SOURCE_ACCOUNTID中的所有认证主体和认证主体,其中包括SOURCE_ACCOUNTID)。
您的环境中是否存在scp、权限边界或会话策略?在策略评估流程中的任何地方显式的Deny
将阻止其他良好的Allow
配置工作。