在 Amazon Data Firehose 资源未使用密钥加密时进行识别并发出警报 AWS KMS - AWS Prescriptive Guidance

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

在 Amazon Data Firehose 资源未使用密钥加密时进行识别并发出警报 AWS KMS

由 Ram Kandaswamy 创作 () AWS

环境:生产

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

AWS服务:AWS CloudTrail;亚马逊 CloudWatch;Ident AWS ity and Access Management;Amazon Kinesis;LambdaAWS;亚马逊 SNS

Summary

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

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

先决条件和限制

先决条件

  • Firehose 传输流

  • 足够的权限和熟悉程度 AWS CloudFormation,用于此基础架构自动化

限制

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

架构

目标技术堆栈

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

  • AWS CloudTrail

  • 亚马逊 CloudWatch

  • AWS命令行界面 (AWSCLI)

  • AWSIdentity and Access Management (IAM)

  • Amazon Data Firehose

  • AWSLambda

  • 亚马逊简单通知服务(亚马逊SNS)

目标架构

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

  2. 检测并匹配 CloudTrail 事件。

  3. 调用了 AWS Lambda。

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

  5. 发送邮件通知。

自动化和扩缩

使用 AWS CloudFormation StackSets,您可以通过一个命令将此解决方案应用于多个AWS地区或账户。

工具

  • AWS CloudTrail— AWS CloudTrail 是一项AWS服务,可帮助您实现AWS账户的治理、合规以及运营和风险审计。用户、角色或AWS服务采取的操作在中记录为事件 CloudTrail。事件包括在AWS管理控制台、AWS命令行界面中执行的API操作AWSSDKs和操作。

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

  • AWSCLI— AWS 命令行界面 (AWSCLI) 是一个开源工具,可让您使用命令行外壳中的命令与AWS服务进行交互。 

  • IAM— AWS Identity and Access Management (IAM) 是一项网络服务,可帮助您安全地控制对AWS资源的访问。您可以使用IAM控制谁经过身份验证(登录)和授权(拥有权限)使用资源。 

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

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

  • Amaz on SNS — Amazon 简单通知服务 (AmazonSNS) 是一项托管服务,可从发布者向订阅者(也称为制作者和消费者)提供消息传送。

操作说明

任务描述所需技能

部署AWS CloudFormation StackSets。

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

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

云架构师、系统管理员

创建堆栈实例。

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

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 

云架构师、系统管理员

相关资源

其他信息

AWSConfig 不支持 Firehose 传送流资源类型,因此无法在解决方案中使用AWS配置规则。

附件

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