Amazon web services IAM策略只允许EC2实例API访问修改自身

Amazon web services IAM策略只允许EC2实例API访问修改自身,amazon-web-services,amazon-ec2,amazon-iam,Amazon Web Services,Amazon Ec2,Amazon Iam,我正在尝试设置一个应用程序,在启动时配置我的实例,我希望尽可能关闭该应用程序的API访问。我目前的政策如下: { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1388183890000", "Effect": "Allow", "Action": [ "ec2:AssociateAddress", "ec2:CreateTags",

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

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

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

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

检查:

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

    {
      "Effect": "Allow",
      "Action": "ec2:TerminateInstances",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*",
      "Condition": {
         "StringEquals": {
            "ec2:ResourceTag/purpose": "test"
         }
      }
   }
通过这种方式,您可以将访问权限限制为只访问那些具有必要标记的实例


阅读更多关于标签的信息。希望这有帮助。

要让实例读取自己的标记,您还需要“描述标记”权限

"ec2:DescribeTags"

这适用于常规实例,但不适用于spot实例,因为您可以访问由spot请求启动的实例。我想说您运气不好。如果你找到了解决办法,一定要告诉我。这对我不起作用。我无法根据标记筛选实例。如果要将实例限制为仅处理自身而不使用标记,请帮助检查此解决方案: