2016-06-07 30 views
0

我想创建一个工具来监控AWS未使用的实例,然后发送一封电子邮件给启动该实例的用户,要求他们关闭它,如果他们不使用它。如何确定使用哪个AWS访问密钥ID来启动实例?

假设我有一个数据库,其中存在访问密钥ID和我们公司启动EC2实例的用户的电子邮件地址之间的映射关系,如何找到正在运行的EC2实例的访问密钥ID?

是否有任何现有的软件或服务已经这样做?

+1

Netperix的看门人猴子是你正在寻找通过这篇文章http://techblog.netflix.com/2013/01/janitor-monkey-keeping-cloud-tidy-and.html – error2007s

回答

1

你不能这样做 - 用户和正在运行的实例之间并不总是有关系。

想想autoscaling:一个实例可以响应一个事件联机,运行几个小时,然后消失。无需人为干预。

您可以通过打开CloudTrail来获取创建它的用户的一些信息,但它不会识别使用哪个密钥。请记住,用户可以拥有多个密钥。

如果您确实想确保您可以跟踪哪些人正在启动实例,请将策略放入需要特定标记(例如“所有者”)的电子邮件地址中,并终止所有没有该实例的实例标记集。 (您应该可以使用AWS Config规则执行此操作)

+0

CloudTrail实际上记录哪些访问密钥用于每个请求。见:http:但是,无论如何,我同意你的观点,这不是追踪谁做了什么的理想方式 - 正如你所提到的,用户可以拥有多个键,并且可以旋转;除此之外,还有各种各样的临时钥匙,因此不太可行的方法来追踪谁做了什么。 –

+0

@BrunoReis CloudTrail记录了足以跟踪动作的iam用户。 – helloV

+0

@helloV,是的 - 上面链接的文档页面详细解释了这一点。我只是评论克里斯的信息,说“它不会识别哪个密钥被使用过” - 它确实如此。 –

1

所有实例都将具有与其关联的IAM用户。您可以从CloudTrail获取这些信息,但它会显示最近2周的路径,因此您需要定期收集数据并将其存储起来。

我的方法是:我使用CloudTrail + Lambda的组合并在实例启动时标记实例。标签可以是名字或电子邮件。当我看到未使用的实例时,我查询标签并发送由标签标识的电子邮件。它完美无瑕。我发布它作为一个问题:Mandatory tagging when launching EC2 instance

检查我发布的接受答案。了解AWS Lambda很有趣。 Lambda使用率低于免费等级限制,我不支付使用AWS Lambda的费用。

相关问题