我正在寻求 serverfault 社区的一些指导。
我们将在接下来的几天内启动几个新的 AWS 实例(Windows Server 2008/2012)。我们为 AWS 制定了命名约定和标签,以便我们能够跟踪所有者、创建日期、加入域和成本中心。
我正在尝试找出一种“自动标记”实例的好方法。
用例如下:
脚本(powershell/或某种应用程序)会在每晚午夜轮询 AWS 并查找缺少标签的实例。一旦找到实例,它会尝试将实例的 IP 地址附加为 AWS 名称和一组预定的默认标签,以跟踪之前“未标记”的实例。
有谁熟悉这个吗?我不太擅长编写脚本,但愿意尝试 - 但不确定该去哪里找。
谢谢
答案1
首先,在我找到真正的答案之前,我要解释一下为什么我没有直接回答你的问题。当然,你可以编写一些脚本来做你想做的事情。它可以解决这问题,但对于解决您迟早会遇到的几十个其他潜在问题却毫无作用。
因此,这就是真正的答案......
在使用 AWS 进行任何严肃工作时,您已经违反了最重要的规则:Web 控制台用于仅检查,不做更改。使用 Web 控制台时,很容易忘记步骤、搞乱事情、终止错误的实例等。
创建实例时,您和您的员工应该仅有的使用 AWS 提供的众多技术之一以可控、可靠、可重复的方式创建资源。
至少,了解AWS Powershell 工具在您熟悉它们之后,创建、发布并分发给您的员工与 AWS 交互的标准方法。
理想情况下,你可以围绕他们的 API 创建一个包装器,供你的员工使用,这将力量让他们在实例创建之前提供相关的标签信息。
此外,确保所有员工都在使用他们自己的IAM 用户。在任何情况下,都不要允许账户所有者以外的任何人拥有账户根凭证 - 即使该人也应该只使用这些凭证执行最少的任务,而不要使用 IAM 用户。
答案2
或者,如果你已经在水下,请使用这个: https://blog.gorillastack.com/gorillastack-presents-auto-tag/
或者最近:这篇文章的第二部分: https://aws.amazon.com/blogs/security/how-to-automatically-tag-amazon-ec2-resources-in-response-to-api-events/
该架构意味着以下内容:1.-具有 IAM 角色和策略的 lambda 函数,具有标记资源/实例的权限 2.-一种基于事件(实例创建)触发 lambda 函数的方法
以下是解决方案 1 和解决方案 2 之间的主要区别
步骤 2:基于事件触发 lambda 函数的方法(实例创建)
选项 1. Lambda 函数监听 AWS S3 Cloudtrail 存储桶中的 Cloud Trail 日志:您可以在 Region->CloudTrail->Add Trail 下定义存储桶的名称和区域。
选项 2。Lambda 函数由您需要创建并链接到 Lambda 的 CloudWatch Events 直接触发。然后过滤事件以标记实例/资源。
请记住,第二种解决方案超出了简单的标记范围,因为他们使用标记来达到不可告人的目的。