【问题标题】:aws policy variable ${aws:username} returning error not authorizedaws 策略变量 ${aws:username} 返回错误未授权
【发布时间】:2015-04-22 06:52:58
【问题描述】:

我已关注 aws http://docs.aws.amazon.com/IAM/latest/UserGuide/PolicyVariables.html 上的文档

还有Can an aws IAM policy dynamically refer to the logged in username?的问题

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

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

我是否需要额外的权限才能让用户只能看到他们自己?

谢谢 艺术

【问题讨论】:

    标签: amazon-web-services policy amazon-iam aws-cli


    【解决方案1】:

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

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

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

    用户更新自己的设置的唯一其他方法是通过AWS Command-Line Interface (CLI) 或API 调用,因为他们可以避免调用ListUsers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2021-04-05
      • 2018-10-24
      相关资源
      最近更新 更多