本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在启动时检查EC2实例是否有必需的标签
由 Susanne Kangnoh (AWS) 和 Archit Mathur () 创作 AWS
环境:生产 | 技术:基础架构;管理和治理;安全、身份、合规; CloudNative | AWS服务:亚马逊EC2;AWS CloudTrail;亚马逊 CloudWatch;亚马逊 SNS |
Summary
亚马逊弹性计算云 (AmazonEC2) 在亚马逊网络服务 (AWS) 云中提供可扩展的计算容量。使用 Amazon,您EC2无需预先投资硬件,因此您可以更快地开发和部署应用程序。
您可以使用标签以不同的方式对AWS资源进行分类。EC2当您的账户中有许多资源并且想要根据标签快速识别特定资源时,实例标记非常有用。您可以使用标签为EC2实例分配自定义元数据。每个标签都由用户定义的键和值组成。我们建议您创建一组一致的标签以满足您的组织要求。
此模式提供了一个AWS CloudFormation 模板来帮助您监控EC2实例的特定标签。该模板创建一个 Amazon Events CloudWatch 事件,用于监视AWS CloudTrail TagResource或UntagResource事件,以检测新EC2实例的标签或标签移除。如果缺少预定义的标签,它会调用 AWS Lambda 函数,该函数使用亚马逊简单通知服务 (Amazon) 向您提供的电子邮件地址发送违规消息。SNS
先决条件和限制
先决条件
一个活动的 AWS 账户。
用于上传提供的 Lambda 代码的 Amazon Simple Storage Service (Amazon S3)存储桶。
您希望接收违规通知的电子邮件地址。
限制
此解决方案支持 CloudTrail TagResource或UntagResource活动。它不会为任何其他事件创建通知。
此解决方案仅检查标签键。它并不监视键值。
架构
工作流程架构
![](images/pattern-img/9cd74141-a87f-419e-94b3-0b28fd04a018/images/b48fd21b-a86b-4ec7-b9f6-4f1a64999437.png)
自动化和扩缩
您可以为不同的AWS地区和账户多次使用该AWS CloudFormation 模板。您只需在每个区域或账户中运行该模板一次。
工具
AWS服务
亚马逊 EC2
— Amazon Elastic Compute Cloud (AmazonEC2) 是一项网络服务,可在云中提供安全、可调整大小的计算容量。该服务旨在降低开发人员进行网络规模级云计算的难度。 AWS CloudTrail— CloudTrail 是一项可帮助您对AWS账户进行治理、合规以及运营和风险审计的AWS服务。用户、角色或AWS服务采取的操作将作为事件记录在中 CloudTrail。
Amazon CloudWatch Events — Amazon CloudWatch Events 提供近乎实时的系统事件流,这些事件描述了AWS资源的变化。 CloudWatch 通过发送消息以响应环境、激活功能、进行更改和捕获状态信息,事件会在操作变化发生时意识到这些变化,并在必要时采取纠正措施。
AWSLambd a — Lambda 是一项计算服务,它支持运行代码,无需预置或管理服务器。只有在需要时 Lambda 才运行您的代码,并且能自动扩缩,从每天几个请求扩展到每秒数千个请求。
Amazon S3 – Amazon Simple Storage Service (Amazon S3) 是一项高度可扩展的对象存储服务,可用于各种存储解决方案,包括网站、移动应用程序、备份和数据湖。
亚马逊 SNS — 亚马逊简单通知服务 (AmazonSNS) 是一项网络服务,它使应用程序、最终用户和设备能够立即从云端发送和接收通知。
代码
此模式包括一个包含两个文件的附件:
index.zip
是压缩文件,其中包含此模式的 Lambda 代码。ec2-require-tags.yaml
是部署 Lambda 代码的 CloudFormation 模板。
有关如何使用这些文件的信息,请参阅操作说明部分。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
将代码上传到 S3 存储桶。 | 创建新的 S3 存储桶或使用现有 S3 存储桶上传附加的 | 云架构师 |
部署 CloudFormation 模板。 | 在与 S3 存储桶相同的AWS区域中打开 Cloudformation 控制台,然后部署附件中提供的 | 云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
提供 S3 存储桶名称。 | 输入您在第一篇操作说明中创建或选择的 S3 存储桶的名称。此 S3 存储桶包含 Lambda 代码的.zip 文件,并且必须与模板和要监控EC2的实例位于AWS同一区域。 CloudFormation | 云架构师 |
提供 S3 密钥。 | 提供 Lambda 代码 .zip 文件在 S3 存储桶中的位置,不带前导斜杠(例如, | 云架构师 |
提供电子邮箱地址。 | 提供要接收违规通知的活动电子邮件地址。 | 云架构师 |
定义日志记录级别。 | 指定日志记录级别和详细程度。 | 云架构师 |
输入所需标签密钥。 | 输入要检查的标签键。如果要指定多个密钥,请用逗号分隔,不要使用空格。(例如, | 云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
确认电子邮件订阅。 | 成功部署 CloudFormation 模板后,它会向您提供的电子邮件地址发送订阅电子邮件。要接收通知,您必须确认此电子邮件订阅。 | 云架构师 |
相关资源
创建存储桶(Amazon S3 文档)
上传对象(Amazon S3 文档)
标记您的亚马逊EC2资源(亚马逊EC2文档)
使用 AWS CloudTrail(Amazon CloudWatch 文档)创建在AWSAPI通话时触发 CloudWatch 的事件规则
附件
要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip