是否可以对Temporary Security Credentials应用资源限制?
例如,每个凭证只允许启动1x小实例。
如果没有通过IAM,是否还有其他挂钩?我无法将root帐户限制为单个实例,它必须位于用户级别。
由于
本
答案 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。