監控和修復 AWS KMS 金鑰的排程刪除 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

監控和修復 AWS KMS 金鑰的排程刪除

由米克許汗 (AWS) 和拉姆雅普里帕卡 (AWS) 創建

環境:生產

技術:安全性、身分識別、合規性;營運

AWS 服務:Amazon SNS; AWS CloudTrail; Amazon CloudWatch

Summary

在 Amazon Web Services (AWS) 雲端上,刪除 AWS 金鑰管理服務 (AWS KMS) 金鑰可能會導致資料遺失。刪除會移除金鑰材料和與 AWS KMS 金鑰相關聯的所有中繼資料,而且無法復原。刪除 AWS KMS 金鑰後,您無法再解密該 AWS KMS 金鑰下加密的資料,因此無法復原資料。

此模式會設定監控,並在應用程式或使用者排定 AWS KMS 金鑰進行刪除時發出通知。如果收到通知,您可能想要取消刪除 AWS KMS 金鑰,然後重新考慮刪除該金鑰的決定。該模式使用 AWS Systems Manager 自動化執行手冊AWSConfigRemediation,CancelKeyDeletion以方便取消刪除 AWS KMS 金鑰。

注意:模式的 CloudFormation 範本必須部署在您要監控刪除 AWS KMS 金鑰的所有 AWS 區域。

先決條件和限制

先決條件

  • 有效的 AWS 帳戶

  • 了解下列 AWS 服務: 

    • Amazon EventBridge

    • AWS KMS

    • Amazon Simple Notification Service (Amazon SNS)

    • AWS Systems Manager

限制

  • 任何解決方案的自訂都需要 AWS CloudFormation 範本和此模式中使用的 AWS 服務的知識。

  • 目前,該解決方案使用默認事件總線,可以根據需求進行定制。如需有關自訂事件匯流排的詳細資訊,請參閱 AWS 文件

架構

目標技術堆疊

  • Amazon EventBridge

  • AWS KMS

  • Amazon SNS

  • AWS Systems Manager

  • 自動化使用以下內容:

    • AWS Command Line Interface (AWS CLI) (AWS CLI) 或 AWS 開發套件

    • AWS CloudFormation 堆疊

目標架構

監視、警示和補救程序的五個步驟圖表。
  1. 已排程刪除 AWS KMS 金鑰。

  2. 排程的刪除事件是由規則評估。 EventBridge

  3. 該 EventBridge 規則涉及 Amazon SNS 主題。

  4. 此 EventBridge 規則會啟動 Systems Manager 自動化和工作手冊。

  5. 執行手冊會取消刪除。

自動化和規模

CloudFormation 堆疊會部署所有必要的資源和服務,以便此解決方案運作。該模式可以在單一帳戶中獨立執行,也可以 CloudFormation StackSets 針對多個獨立帳戶或組織使用 AWS 執行。

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 佈建和設定這些資源。

  • AWS CLI — AWS Command Line Interface (AWS CLI) (AWS CLI) 是一種開放原始碼工具,可讓您使用命令列殼層中的命令與 AWS 服務互動。

  • Amazon EventBridge — Amazon EventBridge 是一種無伺服器事件匯流排服務,將您的應用程式與來自各種來源的資料連接起來。 EventBridge 從您自己的應用程式和 AWS 服務交付即時資料串流,並將該資料路由到 AWS Lambda 等目標。 EventBridge 簡化了構建事件驅動架構的過程。

  • AWS KMS — AWS Key Management Service (AWS KMS) 是一項受管服務,可用來建立和控制 AWS KMS 金鑰,這是用來加密資料的加密金鑰。

  • AWS 開發套件 — AWS 工具包含開發套件,因此您可以使用自己選擇的程式設計語言在 AWS 上開發和管理應用程式。

  • Amazon SNS — Amazon Simple Notification Service (Amazon SNS) 是一種受管服務,可提供從發佈者到訂閱者 (也稱為生產者和消費者) 的訊息傳遞。發佈者透過製作並傳送訊息到主題 (其為邏輯存取點和通訊管道) 與訂閱者進行非同步的通訊。 

  • AWS Systems Manager — AWS Systems Manager 是一項 AWS 服務,可讓您在 AWS 上檢視和控制基礎設施。使用系 Systems Manager 主控台,您可以在 AWS 資源中自動執行操作任務。Systems Manager 透過掃描您的受管執行個體並報告 (或採取修正動作) 其偵測的任何政策違規,協助您保持安全與合規。 

Code

  • 已貼附專案的alerting_ct_logs.yaml CloudFormation 樣板。

史诗

任務描述所需技能

安裝和設定 AWS CLI。

安裝 AWS CLI 第 2 版。然後為身分、預設輸出格式以及 AWS CLI 用於與 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— 排定刪除 AWS KMS 金鑰時收到警示的電子郵件地址。

  • SNSTopicName— Amazon SNS 話題的名稱。

  • EnableRemediation— 使用 Systems Manager 手冊取消計劃的密鑰刪除. 允許的值為 truefalse

  • AutomationAssumeRole— 角色的 Amazon 資源名稱 (ARN),可讓 Systems Manager 自動化代表您執行動作。如需詳細資訊,請參閱 AWSConfigRemediation-CancelKeyDeletion 文件中的必要 IAM 許可一節。 

  • Capabilities— 若 CloudFormation 要讓 AWS 建立堆疊,您必須明確確認您的堆疊範本包含特定功能。

開發者、安全工程師
任務描述所需技能

確認訂閱。

檢查您的電子郵件收件匣,然後在從 Amazon SNS 收到的電子郵件訊息中選擇「確認訂閱」。網頁瀏覽器視窗隨即開啟,並顯示訂閱確認和您的訂閱 ID。 

開發者、安全工程師

相關資源

參考

教學課程和影片

AWS 工作坊

其他資訊

下列程式碼提供範例,說明如何擴充解決方案,以監控和通知您任何 AWS 服務的任何變更。範例包括預先定義的樣式和自訂樣式。如需詳細資訊,請參閱中的事件和事件模式 EventBridge

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

附件

若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip