如何创建IAM策略授予用户特定AWS子账户的完全管理员权限?
实现AWS组织内特定子账户的完全管理员权限授权
方式一:直接通过IAM策略限制资源访问(跨账户直接授权)
这种方式允许用户直接从原账户访问指定子账户的所有资源,无需切换角色。
- 创建自定义权限策略
在用户所属的账户(通常是AWS组织的管理账户)中创建如下IAM策略,替换占位符为你的组织ID和目标子账户ID:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-xxxxxxxxxx", "aws:ResourceAccount": [ "123456789012", "987654321098" ] } } } ] }
aws:PrincipalOrgID:确保授权对象属于你的AWS组织,避免权限外泄。aws:ResourceAccount:指定允许访问的子账户ID列表,可添加多个。
- 附加策略到IAM用户/角色
将上述策略直接附加到需要授权的IAM用户或IAM角色上。
方式二:通过扮演子账户角色授权(推荐,符合AWS最佳实践)
这种方式让用户通过切换到子账户的管理员角色获取权限,更安全且便于审计。
确认子账户存在默认管理员角色
AWS组织创建子账户时会自动生成OrganizationAccountAccessRole角色,该角色默认拥有子账户的管理员权限(AdministratorAccess策略)。如果子账户中没有这个角色,可手动创建。在管理账户创建扮演角色的策略
创建如下IAM策略,替换子账户ID占位符:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::123456789012:role/OrganizationAccountAccessRole", "arn:aws:iam::987654321098:role/OrganizationAccountAccessRole" ] } ] }
- 附加策略并切换角色
将策略附加到目标IAM用户/角色后,用户可通过AWS控制台的「切换角色」功能,输入子账户ID和角色名OrganizationAccountAccessRole,即可获得对应子账户的完全管理员权限。
注意事项
- 务必替换策略中的组织ID和子账户ID为实际值,可在AWS组织控制台查看这些信息。
- 若使用方式一,需确保子账户没有配置拒绝类型的IAM策略阻止管理账户用户的访问。
- 建议使用方式二进行授权,因为角色切换会留下更清晰的审计日志,且权限边界更明确。
内容的提问来源于stack exchange,提问作者Kabir Sarin
相关产品推荐
相关产品推荐

