监控 Amazon ElastiCache 集群的静态加密 - AWS Prescriptive Guidance

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

监控 Amazon ElastiCache 集群的静态加密

由 Susanne Kangnoh 创作 () AWS

摘要

Amazon ElastiCache 是一项 Amazon Web Services (AWS) 服务,它为在云中分配内存数据存储或缓存环境提供了高性能、可扩展且经济实惠的缓存解决方案。它从高吞吐量和低延迟的内存数据存储中检索数据。此功能使其成为缓存、会话存储、游戏、地理空间服务、实时分析和队列等实时用例的热门选择。 ElastiCache 提供 Redis 和 Memcached 数据存储,两者都提供亚毫秒级的响应时间。

数据加密有助于防止未经授权的用户在 Redis 集群及其关联数据存储系统中读取敏感数据。这包括保存在持久性介质中的数据(称为静态数据),以及在客户端和高速缓存服务器之间的网络传输过程中可能被拦截的数据(称为传输中数据)。

通过将AtRestEncryptionEnabled参数设置为 true,可以在创建复制组时为 Redis 启用静态加密。 ElastiCache 启用此参数后,它将在同步、备份和交换操作期间加密磁盘,并加密存储在 Amazon Simple Storage Service(Amazon S3)中的备份。不能对现有复制组启用静态加密。创建复制组时,可以通过以下两种方式启用静态加密:

  • 通过选择默认选项,该选项使用服务托管的静态加密。

  • 使用客户托管密钥并提供密钥 ID 或密AWS钥管理服务 (ARN) 中的 Amazon 资源名称 (AWSKMS)。

此模式提供了一种安全控制,用于监控API呼叫并生成有关CreateReplicationGroup操作的 Amazon Events CloudWatch 事件。此事件调用一个 AWS Lambda 函数,该函数运行一个 Python 脚本。该函数从事件JSON输入中获取复制组 ID,并执行以下检查以确定是否存在安全违规:

  • 检查AtRestEncryptionEnabled密钥是否存在。

  • 如果AtRestEncryptionEnabled存在,则检查该值以查看其是否为

  • 如果该AtRestEncryptionEnabled值设置为 false,则使用亚马逊简单通知服务 (AmazonSNS) 通知设置一个变量,该变量用于跟踪违规行为并向您提供的电子邮件地址发送违规消息。

先决条件和限制

先决条件

  • 一个活动的 AWS 账户。

  • 用于上传提供的 Lambda 代码的 S3 存储桶。

  • 您希望接收违规通知的电子邮件地址。

  • ElastiCache 已启用日志记录,可以访问所有日API志。

限制

  • 此侦探控制是区域性的,必须部署在您要监控的每个AWS区域。

  • 该控件支持在虚拟私有云中运行的复制组 (VPC)。

  • 该控件支持运行以下节点类型的复制组:

    • R5、R4、R3

    • M5、M4、M3

    • T3、T2

产品版本

  • ElastiCache 适用于 Redis 版本 3.2.6 或更高版本

架构

工作流程架构

Workflow diagram showing AWS 服务 interaction for ElastiCache replication group monitoring.

自动化和扩缩

工具

AWS 服务

  • 亚马逊 ElastiCache — Amazon ElastiCache 可以轻松地在AWS云中设置、管理和扩展分布式内存缓存环境。它提供了高性能、可调整大小且经济实惠的内存缓存,同时消除了与部署和管理分布式缓存环境相关的复杂性。 ElastiCache 可与 Redis 和 Memcached 引擎一起使用。

  • AWS CloudFormation— AWS CloudFormation 帮助您建模和设置AWS资源,快速一致地配置资源,并在资源的整个生命周期中对其进行管理。您可以使用模板来描述资源及其依赖关系,然后将它们作为堆栈一起启动和配置,而不必单独管理资源。您可以跨多个AWS账户和AWS地区管理和配置堆栈。

  • AWSCloudwatch Events — Amazon CloudWatch Events 提供近乎实时的系统事件流,这些事件描述了AWS资源的变化。 CloudWatch 通过发送消息以响应环境、激活功能、进行更改和捕获状态信息,事件会在操作变化发生时意识到这些变化,并在必要时采取纠正措施。

  • AWSLambda — Lam AWS bda 是一项计算服务,它支持在不预置或管理服务器的情况下运行代码。只有在需要时 Lambda 才运行您的代码,并且能自动扩缩,从每天几个请求扩展到每秒数千个请求。您只需为消耗的计算时间付费 - 代码未运行时不产生费用。 

  • 亚马逊 SNS — 亚马逊简单通知服务 (AmazonSNS) 协调和管理发布者与客户之间的消息发送,包括网络服务器和电子邮件地址。订阅用户接收所有发布至他们所订阅主题的消息,并且一个主题的所有订阅用户收到的消息都相同。

代码

此模式包括一个包含两个文件的附件:

  • ElasticCache-EncryptionAtRest.zip 是一个包含安全控制区域(Lambda 代码)的压缩文件。

  • elasticache_encryption_at_rest.yml是部署安全控制的 CloudFormation 模板。

有关如何使用这些文件的信息,请参阅操作说明部分。

操作说明

任务描述所需技能
将代码上传到 S3 存储桶。

创建新的 S3 存储桶或使用现有 S3 存储桶上传附加的 ElastiCache-EncryptionAtRest.zip 文件(Lambda 代码)。此存储桶必须与您要评估的资源位于同一AWS区域。

云架构师
部署 CloudFormation 模板。

在与 S3 存储桶相同的AWS区域中打开 Cloudformation 控制台,然后部署附件中提供的elasticache_encryption_at_rest.yml文件。在下一个操作说明中,提供模板参数的值。

云架构师
任务描述所需技能
提供 S3 存储桶名称。

输入您在第一篇操作说明中创建或选择的 S3 存储桶的名称。此 S3 存储桶包含 Lambda 代码的.zip 文件,并且必须与模板和要评估的资源位于AWS同一区域。 CloudFormation  

云架构师
提供 S3 密钥。

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

云架构师
提供电子邮箱地址。

提供要接收违规通知的活动电子邮件地址。 

云架构师
指定日志记录级别。

指定日志级别和详细程度。Info 指定有关应用程序进度的详细信息消息,应仅用于调试。Error 指定仍允许应用程序继续运行的错误事件。Warning 表示潜在的有害情况。

云架构师
任务描述所需技能
确认电子邮件订阅。

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

云架构师

附件

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