當 AWS KMS 金鑰的金鑰狀態變更時,取得 Amazon SNS 通知 - AWS 方案指引

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

當 AWS KMS 金鑰的金鑰狀態變更時,取得 Amazon SNS 通知

創建者:舒伯漢姆哈索拉 (AWS)、芳香拉吉傑亞拉揚 (AWS) 和納瓦迪帕雷克 (AWS)

代碼存儲庫:aws-kms-deletion-notification

環境:PoC 或試點

技術:基礎設施 CloudNative; DevOps; 安全性,身份,合規

工作負載:所有其他工作

AWS 服務:Amazon EventBridge;AWS KMS;Amazon SNS

Summary

刪除該金鑰時,與 AWS Key Management Service (AWS KMS) 金鑰相關聯的資料和中繼資料會遺失。刪除是不可逆的,您無法恢復丟失的數據(包括加密的數據)。您可以設定通知系統來提醒您 AWS KMS 金鑰的金鑰狀態變更,以防止資料遺失。

此模式說明如何監控 AWS KMS 金鑰的狀態變更,方法是在 AWS KMS 金鑰的金鑰狀態變更為Disabled或時,使用 Amazon EventBridge 和 Amazon 簡單通知服務 (Amazon SNS) 發出自動通知PendingDeletion。例如,如果使用者嘗試停用或刪除 AWS KMS 金鑰,您將收到一封電子郵件通知,其中包含有關嘗試狀態變更的詳細資訊。您也可以使用此模式來排程刪除 AWS KMS 金鑰。

先決條件和限制

先決條件

  • 具有 AWS 身分和存取管理 (IAM) 使用者的有效 AWS 帳戶

  • 一個 AWS KMS 金鑰

架構

技術, 堆

  • Amazon EventBridge

  • AWS Key Management Service (AWS KMS)

  • Amazon Simple Notification Service (Amazon SNS)

目標架構

下圖顯示用於建立自動監控和通知程序的架構,以偵測 AWS KMS 金鑰狀態的任何變更。

建立自動化監控與通知程序的架構

該圖顯示以下工作流程:

  1. 使用者停用或排程刪除 AWS KMS 金鑰。

  2. EventBridge 規則會評估排程DisabledPendingDeletion事件。

  3. 此 EventBridge 規則會叫用 Amazon SNS 主題。

  4. Amazon SNS 會傳送電子郵件通知訊息給使用者。

附註:您可以自訂電子郵件訊息以符合組織的需求。我們建議包括使用 AWS KMS 金鑰之實體的相關資訊。這可協助使用者瞭解刪除 AWS KMS 金鑰的影響。您也可以排程在刪除 AWS KMS 金鑰前一到兩天傳送的提醒電子郵件通知。

自動化和規模

AWS CloudFormation 堆疊會部署所有必要的資源和服務,讓此模式正常運作。您可以在單一帳戶中獨立實作模式,也可以 CloudFormation StackSets針對 AWS 組織中的多個獨立帳戶或組織單位使用 AWS Organizations 來實作模式。

工具

  • AWS 可 CloudFormation協助您設定 AWS 資源、快速且一致地佈建 AWS 資源,並在 AWS 帳戶和 AWS 區域的整個生命週期進行管理。此 CloudFormation 模式的範本描述您想要的所有 AWS 資源,並為您 CloudFormation 佈建和設定這些資源。

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

  • AWS Key Management Service (AWS KMS) 可協助您建立和控制加密金鑰,以協助保護資料。

  • Amazon Simple Notification Service (Amazon SNS) 可協助您協調和管理發佈者和客戶之間的訊息交換,包括 Web 伺服器和電子郵件地址。

Code

GitHub 監控 AWS KMS 金鑰停用和排程刪除存放庫中提供此模式的程式碼。

史诗

任務描述所需技能

複製儲存庫。

執行下列命令,將 GitHub Monitor AWS KMS 金鑰停用和排程刪除儲存庫複製到本機機器:

git clone https://github.com/aws-samples/aws-kms-deletion-notification

AWS 管理員、雲端架構師

更新範本的參數。

在程式碼編輯器中,開啟您從儲存庫複製的Alerting-KMS-Events.yaml CloudFormation 範本,然後更新下列參數:

  • 在中DestinationEmailAddress,輸入您計劃用來接收 SNS 通知的作用中電子郵件地址。

  • 在中SNSTopicName,輸入 SNS 主題的名稱。

AWS 管理員、雲端架構師

部署 CloudFormation 範本。

  1. 登入 AWS 管理主控台並開啟主CloudFormation 控台

  2. 在瀏覽窗格中,選擇 [建立堆疊],然後選擇 [使用新資源 (標準)]。

  3. 在 [識別資源] 頁面上,選擇 [下一步]。

  4. 在 [指定範本] 頁面上,對於 [範本來源],選取 [上傳範本檔案]。

  5. 選擇 [選擇檔案],從複製的 GitHub 儲存庫中選取Alerting-KMS-Events.yaml檔案,然後選擇 [下一步]。

  6. 堆疊名稱中,輸入您的堆疊名稱。

  7. 選擇提交

AWS 管理員、雲端架構師
任務描述所需技能

確認訂閱電子郵件。

CloudFormation 範本成功部署後,Amazon SNS 會傳送訂閱確認訊息到您在 CloudFormation 範本中提供的電子郵件地址。

若要接收通知,您必須確認此電子郵件訂閱。如需詳細資訊,請參閱 Amazon SNS 開發人員指南中的確認訂閱。

AWS 管理員、雲端架構師
任務描述所需技能

停用 AWS KMS 金鑰。

  1. 登入 AWS 管理主控台並開啟 AWS KMS 主控台

  2. 若要變更「地區」,請選擇目前顯示的「區域」名稱,然後選擇您要切換的「區域」。

  3. 在導覽窗格中,選擇 Customer managed keys (客戶受管金鑰)。

  4. 選取要啟用或停用之 AWS KMS 金鑰的核取方塊。

  5. 若要停用 AWS KMS 金鑰,請選擇 [金鑰動作],然後選擇 [停用]。

AWS 管理員

驗證訂閱。

確認您已收到 Amazon SNS 通知電子郵件。

AWS 管理員
任務描述所需技能

刪除 CloudFormation 堆疊。

  1. 登入 AWS 管理主控台並開啟主CloudFormation 控台

  2. 在導覽窗格中,選擇 Stacks (堆疊)

  3. 選取您先前建立的堆疊,然後選擇 [刪除]。

AWS 管理員

相關資源

其他資訊

Amazon SNS 預設會提供傳輸中加密。若要符合安全最佳實務,您也可以使用 AWS KMS 客戶受管金鑰為 Amazon SNS 啟用伺服器端加密。