我已经按照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
我是否需要额外的权限才能让用户只看到自己?
THX 领域
答案 0 :(得分:0)
控制台在显示用户列表时使用iam:ListUsers
API调用。此调用不受资源限制。
因此,如果您提供允许ListUsers
调用的策略,控制台将正常运行,例如:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:ListUsers"
],
"Resource": [
"*"
]
}
]
}
用户更新自己设置的唯一方法是通过AWS Command-Line Interface (CLI)或API调用,因为他们可以避免调用ListUsers
。