You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置AWS IAM管理员:拥有全权限但不可修改其他管理员

创建受限的IAM管理员(无法修改其他管理员)

要实现这个需求,我们得换个思路——先给用户开全权限,再通过Deny语句精准限制他对其他管理员身份的修改操作。毕竟IAM的权限评估逻辑是先检查Deny,再看Allow,所以Deny会直接覆盖对应的Allow权限。

核心逻辑拆解

  • 先授予该用户AWS所有服务的完整操作权限
  • 拒绝他执行修改、删除特定管理员资源的操作(比如管理员用户、组、角色、高权限策略)
  • 可以通过资源名称前缀、标签等方式精准定位需要保护的管理员资源,避免误限制普通资源

示例策略(直接可用)

假设我们要保护所有名称以Admin-开头的IAM用户、组、角色,以及AWS自带的AdministratorAccess托管策略,你可以用下面这个策略:

{
    "Version": "2012-10-17",
    "Statement": [
        // 1. 允许执行所有AWS操作
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        },
        // 2. 禁止修改/删除受保护的管理员用户
        {
            "Effect": "Deny",
            "Action": [
                "iam:DeleteUser",
                "iam:UpdateUser",
                "iam:AddUserToGroup",
                "iam:RemoveUserFromGroup",
                "iam:AttachUserPolicy",
                "iam:DetachUserPolicy",
                "iam:PutUserPermissionsBoundary"
            ],
            "Resource": "arn:aws:iam::*:user/Admin-*"
        },
        // 3. 禁止修改/删除受保护的管理员组
        {
            "Effect": "Deny",
            "Action": [
                "iam:DeleteGroup",
                "iam:UpdateGroup",
                "iam:AddUserToGroup",
                "iam:RemoveUserFromGroup",
                "iam:AttachGroupPolicy",
                "iam:DetachGroupPolicy",
                "iam:PutGroupPermissionsBoundary"
            ],
            "Resource": "arn:aws:iam::*:group/Admin-*"
        },
        // 4. 禁止修改/删除受保护的管理员角色
        {
            "Effect": "Deny",
            "Action": [
                "iam:DeleteRole",
                "iam:UpdateRole",
                "iam:AttachRolePolicy",
                "iam:DetachRolePolicy",
                "iam:PutRolePermissionsBoundary"
            ],
            "Resource": "arn:aws:iam::*:role/Admin-*"
        },
        // 5. 禁止修改/删除管理员级托管策略
        {
            "Effect": "Deny",
            "Action": [
                "iam:DeletePolicy",
                "iam:CreatePolicyVersion",
                "iam:SetDefaultPolicyVersion"
            ],
            "Resource": "arn:aws:iam::*:policy/AdministratorAccess"
        }
    ]
}

自定义调整建议

  • 资源匹配方式:如果你的管理员资源不是用Admin-前缀,可以换成标签匹配(比如给管理员资源加Role=Admin标签,然后在Deny语句里加Condition判断标签)
  • 操作补充:如果不想让这个用户给管理员创建访问密钥,可以把iam:CreateAccessKey加入到Deny的Action列表里
  • 自我权限限制:要是不想让该用户修改自己的权限,直接在Deny的Resource里加上他自己的ARN就行,比如arn:aws:iam::123456789012:user/RestrictedAdmin

你原策略的问题

之前的策略用了NotAction: ["iam:*"],这相当于禁止所有IAM相关操作——别说修改其他管理员了,连查看IAM用户列表、创建普通用户都做不了,完全不符合管理员的需求,所以必须换成这种"Allow全权限+Deny特定操作"的模式。

内容的提问来源于stack exchange,提问作者xela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:55:21