AWS临时安全证书的资源限制

时间:2016-03-20 14:29:09

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

是否可以对Temporary Security Credentials应用资源限制?

例如,每个凭证只允许启动1x小实例。

如果没有通过IAM,是否还有其他挂钩?我无法将root帐户限制为单个实例,它必须位于用户级别。

由于

1 个答案:

答案 0 :(得分:2)

没有办法(据我所知)使用IAM来控制特定用户可以启动的实例数。但是,您可以通过在VPC中创建一个小子网并限制将实例启动到该子网来实现相同的效果。

如果您使用CIDR范围subnet-abcd1234创建10.120.10.0/28,它将在子网中总共提供14个IP。根据{{​​3}} IP,保留了1,2和3。这使您只有11个可用的IP。

在您的IAM策略中,您可以拒绝在任何其他子网中启动实例:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      },
      "Action": "ec2:RunInstances",
      "Resource": [
        "arn:aws:ec2:eu-west-1:123456789012:network-interface/*"
      ],
      "Condition": {
        "ArnNotEquals": {
          "ec2:Subnet": "arn:aws:ec2:eu-west-1:123456789012:subnet/subnet-abcd1234"
        }
      }
    }
  ]
}

eu-west-1是区域,123456789012是您的AWS账户ID。

如果要确保只能在子网中运行一个实例,则可以创建ENI(弹性网络接口),而无需将其附加到实例。以下是使用Python创建界面的方法:

import boto.ec2
connection = boto.ec2.connect_to_region("eu-west-1")
connection.create_network_interface(subnet_id="subnet-abcd1234",
                                    description="placeholder ENI")

如果您创建了10个ENI,那么尝试在子网中启动多个实例将导致错误,因为没有更多可用的IP。