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

如何通过IAM策略实现学生用户的受限IAM资源访问与管理

解决方案:仅用IAM策略实现学生的受限IAM练习权限

完全可以仅通过IAM策略实现你的需求,之前的策略问题出在Condition的条件键用错了——你错误地用当前用户的aws:username去匹配前缀规则,正确的做法是针对要创建/访问的IAM资源名称设置条件。

下面是覆盖用户、组、策略的完整策略,严格限制学生只能创建/查看以自身用户名为前缀的IAM资源:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ManageOwnPrefixedUsers",
            "Effect": "Allow",
            "Action": [
                "iam:CreateUser",
                "iam:ListUsers",
                "iam:GetUser",
                "iam:DeleteUser"
            ],
            "Resource": "arn:aws:iam::{Account}:user/*",
            "Condition": {
                "StringLike": {
                    "iam:UserName": "${aws:username}_*"
                }
            }
        },
        {
            "Sid": "ManageOwnPrefixedGroups",
            "Effect": "Allow",
            "Action": [
                "iam:CreateGroup",
                "iam:ListGroups",
                "iam:GetGroup",
                "iam:DeleteGroup"
            ],
            "Resource": "arn:aws:iam::{Account}:group/*",
            "Condition": {
                "StringLike": {
                    "iam:GroupName": "${aws:username}_*"
                }
            }
        },
        {
            "Sid": "ManageOwnPrefixedPolicies",
            "Effect": "Allow",
            "Action": [
                "iam:CreatePolicy",
                "iam:ListPolicies",
                "iam:GetPolicy",
                "iam:DeletePolicy"
            ],
            "Resource": "arn:aws:iam::{Account}:policy/*",
            "Condition": {
                "StringLike": {
                    "iam:PolicyName": "${aws:username}_*"
                }
            }
        },
        {
            "Sid": "AllowConsoleIAMNavigation",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:ListAccountAliases"
            ],
            "Resource": "*"
        }
    ]
}

关键说明:

  • 条件键修正:使用iam:UserName/iam:GroupName/iam:PolicyName这些针对资源名称的条件键,匹配${aws:username}_*,确保学生只能创建带自身用户名前缀的资源。
  • 控制台兼容性:添加了iam:GetUser/iam:GetGroup等Get类权限,以及控制台导航必需的iam:GetAccountPasswordPolicy等权限,避免控制台操作时出现权限报错。
  • 权限范围:包含了删除权限(如果不需要可以移除),同时通过Condition限制学生只能操作自己创建的带前缀资源。

使用时,将策略中的{Account}替换为你的AWS账号ID,然后将该策略附加给学生的IAM用户或他们所在的组即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:42:41