允许EC2实例API访问的IAM策略仅修改自身

时间:2014-01-01 00:03:40

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

我正在尝试设置一个在启动时配置我的实例的应用,并希望尽可能关闭该应用的API访问权限。我目前的政策如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1388183890000",
      "Effect": "Allow",
      "Action": [
        "ec2:AssociateAddress",
        "ec2:CreateTags",
        "ec2:DescribeInstances",
        "ec2:RebootInstances"
      ],
      "Resource":"*"
    }
  ]
}

然而,这允许应用程序对EC2中的任何内容执行任何这些操作。有没有办法可以将ec2实例上的应用操作锁定到该特定实例,或者锁定到具有相同IAM角色的所有框?

2 个答案:

答案 0 :(得分:2)

是的,你可以。您需要首先为相关的EC2实例分配一些相关和通用标记。然后使用ec2:ResourceTag/tag-key将IAM策略访问限制为仅限于那些实例。

检查this example

以下是上例中的相关代码:

    {
      "Effect": "Allow",
      "Action": "ec2:TerminateInstances",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*",
      "Condition": {
         "StringEquals": {
            "ec2:ResourceTag/purpose": "test"
         }
      }
   }

这样,您可以将访问权限仅限于那些具有必要标记的实例。

详细了解标记here。希望这会有所帮助。

答案 1 :(得分:1)

要使实例读取自己的标签,您还需要describe标签权限。

"ec2:DescribeTags"