我已经阅读了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"
}]
}
当我以用户身份登录时,我发现我没有被授权:
如果我对资源属性应用以下策略:
“资源”:“arn:aws:ec2:*”
没关系,但这不是我需要的,因为用户可以访问所有EC2实例。
我想知道这是AWS的错误还是eu-west-1地区存在问题,或者此政策是否已受支持?或者也许我错了,如果是的话,请帮我怎么做
答案 0 :(得分:9)
最近推出的Resource-Level Permissions for EC2 and RDS Resources尚不适用于所有API操作,但AWS正在逐步添加更多内容,请参阅Amazon Resource Names for Amazon EC2中的此说明:
重要目前,并非所有API操作都支持单个ARN;我们将添加对其他API操作和ARN的支持 Amazon EC2资源稍后。有关您可以使用哪些ARN的信息 使用Amazon EC2 API操作以及支持的条件 每个ARN的密钥,请参阅Supported Resources and Conditions for Amazon EC2 API Actions。
在撰写本文时,您会发现所有ec2:Describe*
行动确实不在Supported Resources and Conditions for Amazon EC2 API Actions。
另请参阅Granting IAM Users Required Permissions for Amazon EC2 Resources以获取上述内容的简明摘要以及可在IAM策略声明中使用的ARN和Amazon EC2条件密钥的详细信息,以授予用户创建或修改特定Amazon EC2的权限资源 - 此页面还提到AWS将在2014年添加对其他操作,ARN和条件密钥的支持。
除了限制对单个资源级别的访问权限之外,您可能还需要使用Conditions并结合Policy Variables来检查(另外),因为ec2:Region
是其中之一支持Condition Keys for Amazon EC2 - 您可以将策略与专门处理Describe*
操作的策略合并,例如这样的事情(未经测试):
{
"Statement": [
{
"Action": [
"ec2:Describe*"
],
"Effect": "Allow",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:Region": "eu-west-1"
}
}
}
]
}
请注意,这仍然允许用户在eu-west-1
中看到所有实例,即使您的原始策略片段会阻止所有已支持资源级权限的API操作(例如实例)创建/终止等。)。
我在How to hide instances in EC2 based on tag - using IAM?的相关答案中概述了部分解决方法部分中的另一种可行方法。
祝你好运!