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

AWS Permission Boundary未对user2生效问题求助及示例政策需求

问题分析与解决方案

你碰到的核心问题是对AWS权限边界的作用范围理解有误:权限边界只约束被绑定的IAM实体(这里是user1)自身的最大权限,不会自动传递给该实体创建的其他用户/角色。

user1的权限边界仅限制user1自己能做什么,但如果user1的权限(包含权限边界允许的范围)涵盖了「创建用户并赋予任意权限」的操作,那他完全可以给user2配置无限制的权限策略——只要user2自己没被绑定权限边界,自然就能执行所有允许的操作。

实现“子用户权限不超父用户”的关键

要达到你预期的效果,需要两步配合:

  • 给user1绑定的权限边界,既要限制user1自身的操作范围,也要约束他能给其他IAM实体赋予的权限(通过动作的资源和条件限制)。
  • 强制user1在创建user2时,必须给user2绑定相同或更严格的权限边界。

示例权限边界政策

以下是一个实用的示例政策,限制user1仅能管理IAM用户,且只能给用户分配S3只读权限,同时强制新创建的用户必须绑定该边界:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:CreateUser",
        "iam:GetUser",
        "iam:ListUsers",
        "iam:PutUserPolicy",
        "iam:AttachUserPolicy",
        "iam:PutPermissionsBoundaryToUser"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:PermissionsBoundary": "arn:aws:iam::123456789012:policy/UserRestrictedBoundary"
        },
        "StringLike": {
          "iam:PolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":\"s3:Get*\",\"Resource\":\"*\"}]}"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "s3:Get*",
      "Resource": "*"
    }
  ]
}

政策细节说明

  • 第一条语句允许user1执行基础IAM用户管理操作,但通过两个条件做了限制:
    • iam:PermissionsBoundary:强制user1给新创建的用户绑定指定的权限边界ARN(替换为你实际的政策ARN)。
    • iam:PolicyDocument:限制user1给用户添加的内联策略只能是S3只读权限(可根据需求修改策略内容)。
  • 第二条语句允许user1自身执行S3只读操作,和他能赋予给其他用户的权限范围保持一致。

额外注意点

  • 权限边界是“最大权限”约束,user1的实际有效权限是身份策略与权限边界的交集,要确保user1的身份策略没有超出边界的权限。
  • 如果需要更全局的控制,也可以结合IAM Organizations的SCP(服务控制策略),从账号层面限制所有IAM实体的权限范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:56:15