監控和補救 AWS KMS 金鑰的排程刪除 - AWS Prescriptive Guidance

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

監控和補救 AWS KMS 金鑰的排程刪除

由麥凱許 ‧ 卡納爾 (AWS) 創建

Envenment (環境 生產

技術:安全、身份、合規;操作

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

Summary

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

此模式會設定監視,並在應用程式或使用者排定要刪除的 KMS 金鑰時提供通知。如果您收到通知,您可能想要取消刪除 KMS 金鑰並重新考慮您的刪除決定。該模式使用 AWS Systems Manager 自動化和 Runbook 來協助取消刪除 KMS 金鑰。

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

先決條件和限制

先決條件

  • 具有 AWS Identity and Access Management (IAM) 使用者的 AWS 帳戶

  • 了解以下 AWS 服務: 

    • Amazon EventBridge

    • AWS KMS

    • Amazon Simple Notification Service (Amazon SNS)

    • AWS Systems Manager。

限制

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

Architecture

目標技術堆疊

  • Amazon EventBridge

  • AWS KMS

  • Amazon SNS

  • AWS Systems Manager

  • 自動化使用

    • AWS CLI 或 AWS 開發套件

    • AWS CloudFormation 堆疊

目標架構

  1. AWS KMS 金鑰的刪除已排程。

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

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

  4. 事件 Bridge 規則會啟動 Systems Manager 自動化和 Runbook。

  5. Runbook 會取消刪除。

自動化與擴充

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

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

Tools

工具

  • AWS CloudFormation— AWS CloudFormation 是一個能幫助您模型化與設定 Amazon Web Services 資源,讓您能花較少的時間管理這些資源,並且有更多時間專注在 AWS 上執行的應用程式上。您可以使用 CloudFormation 範本在 AWS 區域的 AWS 帳戶中建立堆疊。範本描述了所有您想要的 AWS 資源,CloudFormation 會為您佈建和設定那些資源。

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

  • Amazon EventBridge— Amazon EventBridge 是一種無伺服器匯流排服務,可將應用程式與來自各種來源的資料互相連線。EventBridge 可從自己的應用程式和 AWS 服務提供即時資料串流,然後將該資料路由到 AWS Lambda 等目標。EventBridge 簡化了建置事件導向架構的程序。

  • AWS Key Management Service— 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 模板已附加。

Epics

任務描述所需的技能
安裝並設定 AWS CLI。

安裝 AWS CLI 版本 2。然後設定身份的安全登入資料設定、預設輸出格式和 AWS CLI 用來與 AWS 互動的預設 AWS 區域。

身份必須具備必要的許可,才能執行任務。

開發人員、安全工程師
任務描述所需的技能
下載 CloudFormation 範本。

將附件下載到電腦上的本機路徑,並解壓縮alerting_ct_logs.yaml範本檔案。

開發人員、安全工程師
部署範本。

在已設定 AWS 帳戶設定檔的終端視窗中,執行以下命令:

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

在下一個步驟中,輸入樣板參數的值。

開發人員、安全工程師
完成範本參數。

針對參數輸入必要的值。

  • DestinationEmailAddress— 排程刪除 CMK 時接收警示的電子郵件地址

  • SNSTopicName— Amazon SNS 主題的名稱

  • EnableRemediation— 使用 Systems Manager Runbook 取消排定的金鑰刪除

  • AutomationAssumeRole— 角色的 Amazon Resource Name (ARN),此角色允許 Systems Manager 自動化代表您執行動作

開發人員、安全工程師
任務描述所需的技能
確認訂閱。

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

開發人員、安全工程師

相關資源

References

教學和影片

AWS 研討會

其他資訊

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

  • 預先定義的模式:來自 AWS 服務的識別事件。在此解決方案中,修改以下事件:

        detail-type:           - KMS CMK Deletion         source:           - aws.kms
  • 自訂模式:修改以下欄位:

        detail-type:           - KMS CMK Deletion         detail:           eventSource:             - kms.amazonaws.com           eventName:             - ScheduleKeyDeletion         source:           - aws.kms

Attachments

attachment.zip