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

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

帮助强制执行 DynamoDB 标签

由 Mansi Suratwala 创作 () AWS

环境:生产

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

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

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

Summary

当亚马逊网络服务 () 云上的 DynamoDB 资源缺失或删除预定义的亚马逊 DynamoDB 标签时,此模式会设置自动通知。AWS 

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

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

先决条件和限制

先决条件

  • 一个活跃的AWS账户

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

限制

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

架构

目标技术堆栈

  • Amazon DynamoDB

  • AWS CloudTrail

  • Amazon CloudWatch

  • AWSLambda

  • Amazon S3

  • Amazon SNS

目标架构

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

自动化和扩缩

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

工具

工具

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

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

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

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

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

  • 亚马逊 SNS — 亚马逊简单通知服务 (AmazonSNS) 是一项网络服务,它使应用程序、最终用户和设备能够立即从云端发送和接收通知。 

代码

  • 该项目的 .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