在未使用 AWS KMS 密钥加密亚马逊数据 Firehose 资源时进行识别并发出警报 - AWS Prescriptive Guidance

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

在未使用 AWS KMS 密钥加密亚马逊数据 Firehose 资源时进行识别并发出警报

创建者:Ram Kandaswamy (AWS)

环境:生产

技术:管理和治理、分析、大数据、云原生、基础设施、安全、身份、合规

AWS 服务:AWS CloudTrail;亚马逊 CloudWatch;AWS Identity and Access Management;Amazon Kinesis;AWS Lambda;亚马逊 SNS

Summary

为了合规起见,某些组织必须对数据传输资源(例如 Amazon Data Firehose)启用加密。此模式显示了一种在资源不合规时进行监控、检测和通知方法。

为了满足加密要求,可以在亚马逊网络服务 (AWS) 上使用此模式来自动监控和检测未使用 AWS 密钥管理服务 (AWS KMS) 密钥加密的 Firehose 交付资源。该解决方案会发送警报通知,并且可对其进行扩展以执行自动修复。此解决方案可以应用于个人账户或多账户环境,例如使用 AWS 登录区或 AWS Control Tower 的环境。

先决条件和限制

先决条件

  • Firehose 传输流

  • 对此基础设施自动化中使用的 AWS CloudFormation 有足够的权限和熟悉程度

限制

该解决方案不是实时的,因为它使用 AWS CloudTrail 事件进行检测,并且在创建未加密的资源和发送通知之间存在延迟。

架构

目标技术堆栈

此解决方案使用无服务器技术和以下服务:

  • AWS CloudTrail

  • Amazon CloudWatch

  • AWS 命令行界面(AWS CLI)

  • AWS Identity and Access Management(IAM)

  • 亚马逊 Data Firehose

  • AWS Lambda

  • Amazon Simple Notification Service (Amazon SNS)

目标架构

该图显示了该过程的五个步骤。
  1. 用户创建或修改 Firehose。

  2. 检测并匹配 CloudTrail 事件。

  3. 调用了 AWS Lambda。

  4. 识别出不合规的资源。

  5. 发送邮件通知。

自动化和扩展

使用 AWS CloudFormation StackSets,您只需一个命令即可将此解决方案应用于多个 AWS 区域或账户。

工具

  • AWS CloudTrail — AWS CloudTrail 是一项 AWS 服务,可帮助您对 AWS 账户进行治理、合规以及运营和风险审计。用户、角色或 AWS 服务采取的操作在中记录为事件 CloudTrail。事件包括在 Amazon Web Services Management Console、AWS 命令行界面、AWS 开发工具包和 API 操作中所执行的操作。

  • Amazon CloudWatch Events — Amazon CloudWatch Events 提供一系列描述了 AWS 资源变化的系统事件。 near-real-time

  • AWS CLI– AWS 命令行界面(AWS CLI)是一种开源工具,它使您能够使用命令行 shell 中的命令与 Amazon Web Services 交互。 

  • IAM – AWS Identity and Access Management (IAM) 是一项 Web 服务,可帮助您安全地控制对 AWS 资源的访问。可以使用 IAM 来控制谁通过了身份验证(准许登录)并获得授权(拥有权限)来使用资源。 

  • Amazon Data Firehose — Amazon Data Firehose 是一项完全托管的服务,用于提供实时流数据。使用 Firehose,您无需编写应用程序或管理资源。您可以将数据生成器配置为向 Firehose 发送数据,Firehose 会自动将数据传输到您指定的目标。

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

  • Amazon SNS – Amazon Simple Notification Service (Amazon SNS) 是一项托管服务,提供从发布者到订阅用户(也称为创建者和使用者)的消息传输。

操作说明

任务描述所需技能

部署 AWS CloudFormation StackSets。

在 AWS CLI 中,使用firehose-encryption-checker.yaml模板(附件)通过运行以下命令来创建堆栈集。 为参数提供有效 Amazon SNS 主题 Amazon 资源名称(ARN)。部署应成功创建 CloudWatch 事件规则、Lambda 函数和具有必要权限的 IAM 角色,如模板中所述。

aws cloudformation create-stack-set    --stack-set-name my-stack-set   --template-body file://firehose-encryption-checker.yaml 

云架构师、系统管理员

创建堆栈实例。

需要在您选择的 Amazon Web Services Region 以及一个或多个账户中创建堆栈。 若要创建堆栈实例,请运行以下命令,将堆栈名称、账号和区域替换为您自己的堆栈名称、账号和区域。

aws cloudformation create-stack-instances     --stack-set-name my-stack-set    --accounts 123456789012 223456789012   --regions us-east-1 us-east-2 us-west-1 us-west-2     --operation-preferences FailureToleranceCount=1 

云架构师、系统管理员

相关资源

其他信息

AWS Config 不支持 Firehose 交付流资源类型,因此无法在解决方案中采用 AWS Config 规则。

附件

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