验证新的 Amazon Redshift 集群是否具有所需的终端节点 SSL - AWS Prescriptive Guidance

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

验证新的 Amazon Redshift 集群是否具有所需的终端节点 SSL

由 Priyanka Chaudhary 创作 () AWS

环境:生产

技术:安全性、标识性、合规性;分析

AWS服务:AWS CloudTrail;亚马逊 CloudWatch 活动;亚马逊 Redshift;亚马逊;Lambda SNS AWS

Summary

此模式提供了一个 Amazon Web Services (AWS) CloudFormation 模板,当启动没有安全套接字层 SSL () 终端节点的新 Amazon Redshift 集群时,该模板会自动通知您。

Amazon Redshift 是一种完全托管的 PB 级基于云的数据仓库服务。它专为大规模数据集存储与分析而设计。它还用于执行大规模的数据库迁移。为了安全起见,Amazon Redshift 支持SSL对用户的SQL服务器客户端应用程序和亚马逊 Redshift 集群之间的连接进行加密。要将集群配置为需要SSL连接,请在启动期间将与集群关联的参数组true中的参数设置为。require_SSL

此模式提供的安全控制会监控AWS CloudTrail 日志中的 Amazon Redshift API 调用,并为CreateCluster、、ModifyClusterRestoreFromClusterSnapshotCreateClusterParameterGroup和启动亚马逊事件 CloudWatch 事件。ModifyClusterParameterGroupAPIs当事件检测到其中一个时APIs,它会调用 AWS Lambda,后者会运行 Python 脚本。Python 函数针对列出的事件分析 CloudTrail 事件。 CloudWatch 当创建、修改或从现有快照还原 Amazon Redshift 集群、为该集群创建新的参数组或修改现有的参数组时,该函数会检查该集群的 require_SSL 参数。如果参数值为false,则该函数会向用户发送亚马逊简单通知服务 (AmazonSNS) 通知,其中包含相关信息:此通知来源的 Amazon Redshift 集群名称、AWS区域、AWS账户和 Lambda 的亚马逊资源名称 (ARN)。

先决条件和限制

先决条件

  • 一个活动的 AWS 账户。

  • 具有集群子网组和关联安全组的虚拟私有云 (VPC)。

限制

  • 这种安全控制为区域性的。您必须将其部署在要监控的每个AWS区域。

架构

目标架构

在没有终端节点的情况下SSL启动新的 Amazon Redshift 集群时发送通知的工作流程。

自动化和扩缩

工具

AWS服务

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

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

  • AWSLambda — Lam AWS bda 是一项计算服务,它支持在不预置或管理服务器的情况下运行代码。

  • Amazon Redshift – Amazon Redshift 是一种完全托管的 PB 级云中数据仓库服务。

  • Amazon S3 – Amazon Simple Storage Service (Amazon S3) 是一项对象存储服务。您可以通过 Amazon S3 随时在 Web 上的任何位置存储和检索的任意大小的数据。 

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

代码

此模式包括以下附件:

  • RedshiftSSLEndpointsRequired.zip — 用于安全控制的 Lambda 代码。

  • RedshiftSSLEndpointsRequired.yml— 用于设置事件和 Lambda 函数的 CloudFormation 模板。

操作说明

任务描述所需技能

定义 S3 存储桶。

Amazon S3 控制台,选择或创建 S3 存储桶来托管 Lambda 代码 .zip 文件。此 S3 存储桶必须与您要监控的 Amazon Redshift 集群位于同一AWS区域。S3 存储桶名称是全球唯一的,命名空间由所有AWS账户共享。S3 存储桶名称不得包含前导斜杠。

云架构师

上传 Lambda 代码。

附件部分中提供的 Lambda 代码 .zip文件上传至 S3 存储桶。

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

启动AWS CloudFormation 模板。

在与 S3 存储桶相同的AWS区域中打开AWS CloudFormation 控制台并部署附加的模板RedshiftSSLEndpointsRequired.yml。有关部署AWS CloudFormation 模板的更多信息,请参阅 CloudFormation 文档中的在AWS CloudFormation 控制台上创建堆栈

云架构师

填写模板中的参数。

启动模板时,系统将会提示输入以下信息:

  • S3 存储桶:指定您在首个操作说明中创建或选择的存储桶。这是您上传所附的 Lambda 代码(文件)的地方。

  • S3 密钥:指定 Lambda .zip 文件在您的 S3 存储桶中的位置(例如,filename.zip 或 controls/filename.zip)。切勿纳入前导斜字符。

  • 通知电子邮件:提供您想要接收Amazon SNS 通知的有效电子邮件地址。

  • Lambda 日志级别:指定 Lambda 函数的日志记录级别和频率。使用信息记录有关进度的详细信息消息,使用错误记录仍然允许部署继续的错误事件,使用警告记录潜在的有害情况。

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

确认订阅。

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

云架构师

相关资源

附件

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