我有一个用例,需要限制联盟用户仅启动一个EC2实例,是否有任何变通办法来设置策略中的这些内容。
答案 0 :(得分:1)
创建一个按计划运行的lambda,以清理您的帐户并删除所有未正确标记的内容。
http://www.1strategy.com/blog/2016/02/23/use-aws-lambda-terminate-untagged-ec2-instances/
如果您的用户有多个标记的ec2实例,则保留最旧的实例。 然后,让您的用户知道,任何未正确标记或创建的资源超出其限制的资源将被自动删除。 大多数人会在创建一个ec2实例大约5或10分钟后删除该实例。
创建按计划运行的lambda: https://medium.com/blogfoster-engineering/running-cron-jobs-on-aws-lambda-with-scheduled-events-e8fe38686e20
您可以在lambda函数中使用这样的特定标签来获取aws资源,如下所示: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ResourceGroupsTaggingAPI.html#getResources-property
var params = {
PaginationToken: 'STRING_VALUE',
ResourceTypeFilters: [
'STRING_VALUE',
/* more items */
],
ResourcesPerPage: 0,
TagFilters: [
{
Key: 'STRING_VALUE',
Values: [
'STRING_VALUE',
/* more items */
]
},
/* more items */
],
TagsPerPage: 0
};
resourcegroupstaggingapi.getResources(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
此处的回叫提供资源Arn和与其关联的标签。 在这里,您可以保留这些资源或将其删除。
答案 1 :(得分:1)
我不建议自动删除资源。错误可能对公司致命。
Ryan的回答很好。使用Lambda监视谁拥有哪些资源。还可以使用Lambda为新创建的资源自动标记所有者。 CloudTrail是监视和衡量谁在何时何地执行操作的绝佳资源。
但是,我希望Lambda向员工及其经理(或适当的命令链)发送有关违规行为的电子邮件,而不是终止资源。当大多数人因违反公司政策而开会时,他们会很快学到东西,这可能会导致合理的谴责或辞职。这比尝试证明导致整个公司倒闭的软件错误要好得多。