我已阅读AWS文档但没有帮助......至少对我来说没有用.我已经阅读了有关IAM和EC2上的用户策略的信息.
我正在使用的地区是eu-west-1(爱尔兰).我制定了这个政策:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:*", "Resource": "arn:aws:ec2:eu-west-1:ACCOUNT_ID:instance/INSTANCE_ID" }] }
当我以用户身份登录时,我发现我没有被授权:
您无权描述运行实例
您无权描述弹性IP
您无权描述卷
您无权描述快照
您无权描述密钥对
您无权描述负载均衡器
您无权描述展示位置组
您无权描述安全组
如果我对资源属性应用以下策略:
"资源":"arn:aws:ec2:*"
没关系,但这不是我需要的,因为用户可以访问所有EC2实例.
我想知道这是AWS的错误还是eu-west-1地区存在问题,或者此策略是否已被支持?或者也许我错了,如果是的话,请帮我怎么做
最近推出的EC2和RDS资源的资源级权限尚不适用于所有API操作,但AWS正在逐步添加更多内容,请参阅Amazon EC2的Amazon资源名称中的此注释:
重要信息目前,并非所有API操作都支持单个ARN; 我们稍后会为其他Amazon EC2资源添加对其他API操作和ARN的支持.有关可以与哪些Amazon EC2 API操作一起使用的ARN以及每个ARN支持的条件密钥的信息,请参阅Amazon EC2 API操作的支持的资源和条件.
在撰写本文时,您会发现所有ec2:Describe*
操作确实都不存在于Amazon EC2 API操作的支持资源和条件中.
另请参阅为Amazon EC2资源授予IAM用户所需权限,以获得上述内容的简明摘要以及可在IAM策略语句中使用的ARN和Amazon EC2条件密钥的详细信息,以授予用户创建或修改特定Amazon EC2资源的权限 -此页面还提到AWS将在2014年添加对其他操作,ARN和条件密钥的支持.
除了限制对单个资源级别的访问之外,您可能还需要检查(也)使用条件与策略变量结合,只要ec2:Region
是Amazon EC2支持的条件密钥之一 - 您可以将策略与一个专门处理Describe*
动作,例如像这样的事情(未经测试):
{
"Statement": [
{
"Action": [
"ec2:Describe*"
],
"Effect": "Allow",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:Region": "eu-west-1"
}
}
}
]
}
请注意,这仍然允许用户查看所有实例eu-west-1
,即使您的原始策略片段会阻止所有已支持资源级别权限的API操作(例如,实例创建/终止等).
我已经在部分解决方法部分中概述了另一种可能的方法,在我的相关答案中如何基于标签隐藏EC2中的实例 - 使用IAM?.
祝好运!