我正在使用使用AWS控制塔和AWS组织的多帐户架构。我有一个主帐户与IAM用户称为代理(没有附加策略,只有CLI访问),然后我有另一个AWS帐户称为开发,我已经创建了一个新的角色,称为工作负载部署器(ARN ->攻击:aws:我::809348927750:角色/workload deployer)与以下信任关系:-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::185288728304:user/agent"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
当我试图承担这个角色,我得到以下错误:-
An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:iam::185288728304:user/agent is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::809348927750:role/workload-deployer
我正在运行的命令,以承担角色:-
aws sts assume-role --role-arn arn:aws:iam::809348927750:role/workload-deployer --role-session-name "RoleSession1" --duration-seconds 900 --profile zm
为了承担角色,您需要在两个地方存在权限:
- 您开始使用的角色需要承担角色的权限。所以它必须有一个授予
sts:AssumeRole
权限的策略。 - 您想要承担的角色必须具有信任策略,该策略授予权限,使其由调用角色承担。
听起来你缺少#1的许可。