aws策略变量${aws:username}未经授权返回错误



我已经在aws跟踪了文档http://docs.aws.amazon.com/IAM/latest/UserGuide/PolicyVariables.html

以及aws IAM策略是否可以动态引用登录的用户名?

为用户创建一个策略,在web控制台/users下列出他自己的凭据,以便他可以生成自己的密钥。

user/Alpha

{
  "Version": "2012-10-17",
  "Statement": [{
      "Effect": "Allow",
      "Action":["iam:*"],
      "Resource":["arn:aws:iam::{myacctnumber}:user/${aws:username}"]
    }
  ]
}

当我将策略附加到user/Alpha,然后打开一个新浏览器并以用户Alpha>控制台>用户的身份登录时,我会收到错误消息

We encountered the following errors while processing your request
X User: arn:aws:iam::{myacctnumber}:user/Alpha is not authorized to perform: iam ListUsers on resource: arn:aws:iam::{myacctnumber}:user/

注意,user/没有显示${aws:username}中预期的友好名称。

我还尝试将政策更改为

{
  "Version": "2012-10-17",
  "Statement": [{
      "Effect": "Allow",
      "Action":["iam:*"],
      "Resource":["arn:aws:iam::{myacctnumber}:user/Alpha"]
    }
  ]
}

但是显示相同的错误。

如果我对资源做了进一步的更改,并使其成为通配符,

 "Resource":["arn:aws:iam::{myacctnumber}:user/*"]

向用户Alpha 显示完整的用户列表

我是否需要额外的权限才能允许用户只查看自己?

thx艺术

控制台在显示用户列表时,使用iam:ListUsers API调用。此调用不能受资源限制。

因此,如果您提供允许ListUsers调用的策略,控制台将正常工作,例如:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

用户更新自己设置的唯一其他方式是通过AWS命令行界面(CLI)或API调用,因为他们可以避免调用ListUsers

相关内容

  • 没有找到相关文章