AWS Amazon IAM用户策略仅访问EU-WEST-1区域上的一个EC2实例

时间:2013-12-18 23:17:38

标签: amazon-web-services amazon-ec2 amazon-iam

我已经阅读了AWS文档但没有帮助......至少对我来说没有用。我已阅读有关IAM和EC2上的用户政策的信息。

我想让用户只能在一个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地区存在问题,或者此政策是否已受支持?或者也许我错了,如果是的话,请帮我怎么做


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?的相关答案中概述了部分解决方法部分中的另一种可行方法。

祝你好运!