我已经在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
。