帮助强制执行 DynamoDB 标签 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

帮助强制执行 DynamoDB 标签

由 Mansi Suratwala (AWS) 编写

环境:生产

技术:数据库 CloudNative;安全、身份、合规

工作负载:所有其他工作负载

AWS 服务:亚马逊 CloudWatch;亚马逊 DynamoDB;AWS Lambda;亚马逊 SNS

Summary

此模式在预定义的 Amazon DynamoDB 标签丢失或从 Amazon Web Services(AWS)云上的 DynamoDB 资源中删除时设置自动通知。 

DynamoDB 是一项完全托管的 NoSQL 数据库服务,可提供快速、可预测的性能和可扩展性。借助 DynamoDB,您可以减轻操作和扩展分布式数据库的管理负担。使用 DynamoDB 时,您不必担心硬件预置、设置和配置、复制、软件修补或集群扩展。

该模式使用 AWS CloudFormation 模板,该模板用于创建亚马逊活动 CloudWatch 事件和一个 AWS Lambda 函数。该事件使用 AWS 监视任何新的或现有的 DynamoDB 标签信息。 CloudTrail如果缺少或删除了预定义的标签,则会 CloudWatch 触发 Lambda 函数,该函数会向您发送亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 通知,告知您违规行为。 

先决条件和限制

先决条件

  • 一个有效的 Amazon Web Services account

  • Lambda .zip 文件的 Amazon Simple Storage Service(Amazon S3)存储桶,其中包含用于运行 Lambda 函数的 Python 脚本

限制

  • 该解决方案仅在TagResourceUntagResource CloudTrail 事件发生时才起作用。它不会为任何其他事件创建通知。

架构

目标技术堆栈

  • Amazon DynamoDB

  • AWS CloudTrail

  • Amazon CloudWatch

  • AWS Lambda

  • Amazon S3

  • Amazon SNS

目标架构

缺少 DynamoDB 标签 CloudWatch 会触发事件和 Lambda 函数来发送亚马逊 SNS 通知。

自动化和扩缩

您可以针对不同的 AWS 区域和账户多次使用 AWS CloudFormation 模板。您只需在每个区域或账户中运行该模板一次。

工具

工具

  • Amazon DynamoDB – DynamoDB 是一项完全托管的 NoSQL 数据库服务,可提供快速、可预测的性能和可扩展性。 

  • AWS CloudTrail — CloudTrail 是一项 AWS 服务,可帮助您对 AWS 账户进行治理、合规以及运营和风险审计。用户、角色或 AWS 服务采取的操作在中记录为事件 CloudTrail。 

  • Amazon CloudWatch Events — Amazon CloudWatch Events 提供近乎实时的系统事件流,这些事件描述了 AWS 资源的变化。 

  • AWS Lambda — AWS Lambda 是一项计算服务,使您无需预置或管理服务器即可运行代码。只有在需要时 Lambda 才运行您的代码,并且能自动扩缩,从每天几个请求扩展到每秒数千个请求。 

  • Amazon S3 – Amazon Simple Storage Service (Amazon S3) 是一项高度可扩展的对象存储服务,可用于各种存储解决方案,包括网站、移动应用程序、备份和数据湖。

  • Amazon SNS – Amazon Simple Notification Service (Amazon SNS) 是一项 Web 服务,可让应用程序、终端用户和设备即时发送和接收来自云端的通知。 

代码

  • 该项目的 .zip 文件作为附件提供。

操作说明

任务描述所需技能

定义 S3 存储桶。

在 Amazon S3 控制台上,选择或创建一个具有不包含前导斜杠的唯一名称的 S3 存储桶。此 S3 存储桶将托管 Lambda 代码 .zip 文件。您的 S3 存储桶必须与正在监控的 DynamoDB 资源位于同一 AWS 区域。

云架构师
任务描述所需技能

将 Lambda 代码上传至 S3 存储桶。

附件部分中提供的 Lambda 代码 .zip文件上传至 S3 存储桶。S3 存储桶必须与正在监控的 DynamoDB 资源位于同一区域。

云架构师
任务描述所需技能

部署 AWS CloudFormation 模板。

在 AWS CloudFormation 控制台上,部署 “附件” 部分中提供的 AWS CloudFormation 模板。在下一个操作说明中,为参数提供值。

云架构师
任务描述所需技能

命名 S3 存储桶。

输入您在第一个操作说明中创建或选择的 S3 存储桶的名称。

云架构师

提供 Amazon S3 密钥。

提供 Lambda 代码 .zip 文件在 S3 存储桶中的位置,不带前导斜杠(例如,<folder>/<file-name>.zip)。

云架构师

提供电子邮件地址

提供有效的电子邮件地址以接收 Amazon SNS 通知。

云架构师

定义日志记录级别。

定义 Lambda 函数的日志记录级别和频率。Info 指明有关应用程序进度的详细信息消息。Error 指明仍允许应用程序继续运行的错误事件。Warning 指明潜在的有害情况。

云架构师

输入所需 DynamoDB 标签键。

确保标记之间用逗号分隔,它们之间没有空格(例如,ApplicationId,CreatedBy,Environment,Organization)。Events CloudWatch 事件会搜索这些标签,如果找不到这些标签,则会发送通知。

云架构师
任务描述所需技能

确认订阅。

成功部署模板后,它会向你提供的电子邮件地址发送订阅电子邮件。要接收违规通知,您必须确认此电子邮件订阅。

云架构师

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip