2

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

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

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

4

2 回答 2

3

是的你可以。您需要首先为相关 EC2 实例分配一些相关且常见的标签。然后将 IAM 策略访问限制为仅使用ec2:ResourceTag/tag-key.

检查这个例子

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

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

这样,您可以将访问限制为仅具有必要标签的那些实例。

在此处阅读有关标记的更多信息。希望这可以帮助。

于 2014-01-01T07:28:22.857 回答
1

要让实例读取自己的标签,您还需要描述标签权限。

"ec2:DescribeTags"
于 2016-02-10T09:55:58.550 回答