从https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html的AWS IAM ARN文档中,我可以看到如下所示的通配符用法,这非常令人困惑。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ManageRichardAccessKeys",
"Effect": "Allow",
"Action": [
"iam:*AccessKey*",
"iam:GetUser"
],
"Resource": "arn:aws:iam::*:user/division_abc/subdivision_xyz/Richard"
},
{
"Sid": "ListForConsole",
"Effect": "Allow",
"Action": "iam:ListUsers",
"Resource": "*"
}
]
}
在第一条语句"Resource": "arn:aws:iam::*:user/division_abc/subdivision_xyz/Richard"
中,为什么我们不指定帐号而只用通配符“ *”代替-我知道在S3的上下文中此留空,但在这里是通配符-这里的通配符到底是什么意思?通配符似乎赋予它类似“任何帐户”的含义,但这不正确吗?
另外,对于第二条语句"Resource": "*"
,这是否意味着任何资源的ListUsers?这没有任何意义-应该不是像arn:aws:iam::123456789012:
这样的东西来指示此AWS账户(123456789012)的列表用户吗?
答案 0 :(得分:1)
假设查询确实有效(我没有测试它们):
ListUsers
命令实际上并不需要很多参数(只是一个前缀),因此实际上是“全有或全无” API调用。请注意,它仅适用于请求用户列表,没有其他要求。 (也就是说,没有调用“ ListUsers for a resource”的概念。)