监控和修复按计划删除密钥的情况 AWS KMS - AWS Prescriptive Guidance

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

监控和修复按计划删除密钥的情况 AWS KMS

由 Mikesh Khanal (AWS) 和 Ramya Pulipaka () 创作 AWS

摘要

在 Amazon Web Services (AWS) 云上,删除AWS密钥管理服务 (AWSKMS) 密钥可能会导致数据丢失。删除操作会删除密钥材料和与AWSKMS密钥关联的所有元数据,并且不可逆转。删除AWSKMS密钥后,您将无法再解密使用该密AWSKMS钥加密的数据,因此无法恢复数据。

这种模式可以设置监控,当应用程序或用户计划删除AWSKMS密钥时会发出通知。如果您收到通知,则可能需要取消对AWSKMS密钥的删除并重新考虑删除密钥的决定。该模式使用 S AWS ystems Manager 自动化运行手册AWSConfigRemediationCancelKeyDeletion来简化取消密钥的AWSKMS删除。

注意

该模式的 CloudFormation 模板必须部署在您要监控AWSKMS密钥删除情况的所有AWS区域。

先决条件和限制

先决条件

  • 一个活跃的AWS账户

  • 了解以下AWS服务: 

    • Amazon EventBridge

    • AWS KMS

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

    • AWS Systems Manager

限制

  • 要对解决方案进行任何定制,都需要了解此模式中使用的AWS CloudFormation 模板和AWS服务。

  • 目前,该方案使用默认的事件总线,可以根据需求进行定制。有关自定义事件总线的更多信息,请参阅AWS文档

架构

目标技术堆栈

  • Amazon EventBridge

  • AWS KMS

  • Amazon SNS

  • AWS Systems Manager

  • 使用以下方法实现自动化:

    • AWS命令行界面 (AWSCLI) 或 AWS SDK

    • AWS CloudFormation 堆栈

目标架构

监控、警报和修复过程的五个步骤的图表。
  1. 已计划删除AWSKMS密钥。

  2. 预定删除事件由规则进行评估。 EventBridge

  3. 该 EventBridge 规则涉及亚马逊的SNS话题。

  4. 该 EventBridge 规则启动 Systems Manager 自动化和运行手册。

  5. 运行手册取消删除。

自动化和扩缩

CloudFormation 堆栈部署了该解决方案运行所需的所有必要资源和服务。该模式可以在单个账户中独立运行,也可以使用AWS CloudFormation StackSets 多个独立账户或组织运行。

aws cloudformation create-stack --stack-name  <stack-name>\     --template-body file://<Full-Path-of-file> \     --parameters ParameterKey=,ParameterValue= \ --capabilities CAPABILITY_NAMED_IAM

工具

工具

  • AWS CloudFormation— AWS CloudFormation 是一项服务,可帮助您建模和设置 Amazon Web Services 资源,这样您就可以减少管理这些资源的时间,将更多时间集中在运行的应用程序上AWS。您可以使用 CloudFormation 模板在某个AWS地区的AWS账户中创建堆栈。该模板描述了您需要的所有AWS资源,并为您 CloudFormation 预置和配置这些资源。

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

  • Amaz on EventBridge — Amazon EventBridge 是一项无服务器事件总线服务,可将您的应用程序与来自各种来源的数据连接起来。 EventBridge 提供来自您自己的应用程序和AWS服务的实时数据流,并将这些数据路由到 AWS Lambda 等目标。 EventBridge 简化了构建事件驱动架构的过程。

  • AWSKMS— AWS 密钥管理服务 (AWSKMS) 是一项托管服务,用于创建和控制AWSKMS密钥,即用于加密数据的加密密钥。

  • AWSSDKs— 包括AWS工具,SDKs以便您可以使用自己选择AWS的编程语言开发和管理应用程序。

  • Amaz on SNS — Amazon 简单通知服务 (AmazonSNS) 是一项托管服务,可从发布者向订阅者(也称为制作者和消费者)提供消息传送。发布者通过将消息发送至主题与订阅用户进行异步交流,主题是一个逻辑接入点和通信渠道。 

  • AWSSystems M anager — S AWS ystems Manager 是一项AWS服务,你可以用它来查看和控制你的基础架构AWS。使用 Systems Manager 控制台,您可以自动执行跨AWS资源的操作任务。Systems Manager 通过扫描托管实例并报告其检测到的任何策略违规行为(或采取纠正措施)来帮助您维护安全性和合规性。 

代码

  • 随函附上该项目的alerting_ct_logs.yaml CloudFormation 模板。

操作说明

任务描述所需技能

安装和配置 AWS CLI。

安装AWSCLI版本 2。然后为身份配置安全凭证设置、默认输出格式以及AWSCLI用于与之交互的默认AWS区域AWS。

该身份必须具有执行任务所需权限。

开发人员、安全工程师
任务描述所需技能

下载 CloudFormation 模板。

将附件下载到计算机上的本地路径,然后解压缩 alerting_ct_logs.yaml 模板文件。

开发人员、安全工程师

部署 模板。

在已配置AWS账户配置文件的终端窗口中,运行以下命令。

aws cloudformation create-stack --stack-name <stack_name> \ --capabilities <Value> \ --template-body file://<Full_Path> \ --parameters ParameterKey=DestinationEmailAddress,ParameterValue=<Value> \ ParameterKey=SNSTopicName,ParameterValue=<Value> \ ParameterKey=EnableRemediation ,ParameterValue=<Value> \ ParameterKey=AutomationAssumeRole,ParameterValue=<Value>

在下一步中,输入模板参数的值。

开发人员、安全工程师

完成模板参数。

输入所需参数值。

  • DestinationEmailAddress— 计划删除AWSKMS密钥时接收警报的电子邮件地址。

  • SNSTopicName— Amazon SNS 话题的名称。

  • EnableRemediation – 使用 Systems Manager 运行手册取消计划的密钥删除。允许的值包括 truefalse

  • AutomationAssumeRole— 允许 Systems Manager 自动代表您执行操作的角色的亚马逊资源名称 (ARN)。有关更多信息,请参阅 AWSConfigRemediation-CancelKeyDeletion 文档中的 “所需IAM权限” 部分。 

  • Capabilities— AWS CloudFormation 要创建堆栈,您必须明确确认您的堆栈模板包含某些功能。

开发人员、安全工程师
任务描述所需技能

确认订阅。

检查您的电子邮件收件箱,然后在从亚马逊收到的电子邮件中选择 “确认订阅” SNS。Web 浏览器窗口将打开,并显示订阅确认信息和您的订阅 ID。 

开发人员、安全工程师

相关资源

参考

教程和视频

AWS Workshop

其他信息

以下代码提供了扩展解决方案的示例,以监控任何AWS服务中的任何更改并通知您。这些示例包括预定义模式和自定义模式。有关更多信息,请参阅中的事件和事件模式 EventBridge

EventPattern:         source:         - aws.kms         detail-type:         - AWS API Call via CloudTrail         detail:           eventSource:           - kms.amazonaws.com           eventName:           - ScheduleKeyDeletion

附件

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