本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在启动时监控 Amazon EMR 集群的传输中加密
由 Susanne Kangnoh 创作 () AWS
环境:生产 | 技术:分析;大数据 CloudNative;安全、身份、合规 | 工作负载:开源 |
AWS服务:亚马逊EMR;亚马逊 SNS AWS CloudTrail;亚马逊 CloudWatch |
Summary
此模式提供了一种安全控制,可在启动时监控 Amazon EMR 集群,如果尚未启用传输中加密,则会发送警报。
Amazon EMR 是一项网络服务,可让您轻松运行大数据框架(例如 Apache Hadoop)来处理和分析数据。通过并行运行映射和减少步骤,Amazon EMR 使您能够以经济实惠的方式处理大量数据。
数据加密可防止未经授权的用户访问或读取静态数据或传输中数据。静态数据是指通过 Amazon Simple Storage Service (Amazon S3HDFS) 存储在媒体中的数据,例如每个节点上的本地EMR文件系统、Hadoop 分布式文件系统 (EMRFS) 或文件系统 ()。传输中数据是指在网络中传输并在作业之间传输的数据。传输加密支持 Apache Spark、Apache、Apache Hadoop TEZ、Apache 和 Presto 的开源加密功能。HBase您可以通过AWS命令行界面 (AWSCLI)、控制台或AWSSDKs创建安全配置并指定数据加密设置来启用加密。您可以通过以下两种方式为传输中加密提供加密构件:
通过将证书的压缩文件上传到 Amazon S3。
通过引用提供加密构件的自定义 Java 类。
此模式中包含的安全控制会监控API呼叫,并针对该RunJobFlow操作生成 Amazon Events CloudWatch 事件。该事件调用一个 AWS Lambda 函数,该函数运行一个 Python 脚本。该函数从事件JSON输入中获取EMR集群 ID,并执行以下检查以确定是否存在安全违规:
检查EMR集群是否具有 Amazon EMR 特定的安全配置。
如果集群确实具有安全配置,请检查是否启用了传输中加密。
如果集群没有安全配置,则使用亚马逊简单通知服务 (AmazonSNS) 向您提供的电子邮件地址发送警报。该通知指定了EMR集群名称、违规详情、AWS区域和账户信息以及通知来源的 AWS Lambda(A ARN mazon 资源名称)。
先决条件和限制
先决条件
一个活动的 AWS 账户。
一个 S3 存储桶,用于上传随此模式提供的 Lambda 代码。
您希望接收违规通知的电子邮件地址。
Amazon EMR 日志已启用,可以访问所有日API志。
限制
此侦探控制是区域性的,必须部署在您要监控的每个AWS区域。
产品版本
亚马逊EMR发布 4.8.0 或更高版本。
架构
工作流程架构
自动化和扩缩
如果您使用的是 Organ AWS izations,则可以使用 AWSCloudformation StackSets 在要监控的多个账户中部署模板。
工具
AWS服务
亚马逊 EMR — Amazon EMR 是一个托管集群平台,可简化大数据框架(例如 Apache Hadoop
和 A pache Spark )的运行,AWS以处理和分析大量数据。通过使用这些框架和相关的开源项目,您可以处理用于分析目的的数据和业务情报工作负载。此外,您可以使用 Amazon 将大量数据转换EMR到其他数据存储和数据库(例如 Amazon S3 和 Amazon DynamoDB)以及将其移出其他AWS数据存储和数据库。 AWSCloudformation — AWS CloudFormation 帮助您对AWS资源进行建模和设置,快速一致地配置资源,并在资源的整个生命周期中对其进行管理。您可以使用模板来描述资源及其依赖关系,然后将它们作为堆栈一起启动和配置,而不必单独管理资源。您可以跨多个AWS账户和AWS地区管理和配置堆栈。
AWSCloudwatch Events — Amazon CloudWatch Events 提供近乎实时的系统事件流,这些事件描述了AWS资源的变化。 CloudWatch 通过发送消息以响应环境、激活功能、进行更改和捕获状态信息,事件会在操作变化发生时意识到这些变化,并在必要时采取纠正措施。
AWSLambda
— Lam AWS bda 是一项计算服务,它支持在不预置或管理服务器的情况下运行代码。只有在需要时 Lambda 才运行您的代码,并且能自动扩缩,从每天几个请求扩展到每秒数千个请求。您只需为消耗的计算时间付费 - 代码未运行时不产生费用。 AWSSNS— 亚马逊简单通知服务 (AmazonSNS) 协调和管理发布者与客户之间的消息发送,包括网络服务器和电子邮件地址。订阅用户接收所有发布至他们所订阅主题的消息,并且一个主题的所有订阅用户收到的消息都相同。
代码
此模式包括一个包含两个文件的附件:
EMRInTransitEncryption.zip
是一个包含安全控制区域(Lambda 代码)的压缩文件。EMRInTransitEncryption.yml
是部署安全控制的 CloudFormation 模板。
有关如何使用这些文件的信息,请参阅操作说明部分。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
将代码上传到 S3 存储桶。 | 创建新的 S3 存储桶或使用现有 S3 存储桶上传附加的 | 云架构师 |
部署 CloudFormation 模板。 | 在与 S3 存储桶相同的AWS区域中打开 Cloudformation 控制台,然后部署附件中提供的 | 云架构师, |
任务 | 描述 | 所需技能 |
---|---|---|
提供 S3 存储桶名称。 | 输入您在第一篇操作说明中创建或选择的 S3 存储桶的名称。此 S3 存储桶包含 Lambda 代码的.zip 文件,并且必须与模板和要评估的资源位于AWS同一区域。 CloudFormation | 云架构师 |
提供 S3 密钥。 | 指定 Lambda 代码 .zip 文件在 S3 存储桶中的位置,不带前导斜杠(例如, | 云架构师 |
提供电子邮箱地址。 | 指定要接收违规通知的活动电子邮件地址。 | 云架构师 |
指定日志记录级别。 | 指定 Lambda 日志的日志记录级别和详细程度。 | 云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
确认电子邮件订阅。 | 成功部署 CloudFormation 模板后,它会向您提供的电子邮件地址发送一封订阅电子邮件。要接收通知,您必须确认此电子邮件订阅。 | 云架构师 |
相关资源
在@@ AWS CloudFormation 控制台上创建堆栈(AWS CloudFormation 文档)
加密选项(Amazon EMR 文档)
附件
要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip