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

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

當金鑰的AWSKMS金鑰狀態變更時取得 Amazon SNS通知

由 Shubham Harsora (AWS)、Aromal Raj Jayarajan (AWS) 和 Navdeep Pareek (AWS) 建立

Summary

刪除金鑰時,與AWS金鑰管理服務 (AWSKMS) 金鑰相關聯的資料和中繼資料會遺失。刪除是不可復原的,您無法復原遺失的資料 (包括加密的資料)。您可以設定通知系統,提醒您AWSKMS金鑰金鑰狀態的狀態變更,以防止資料遺失。

此模式說明如何使用 Amazon EventBridge 和 Amazon Simple Notification Service (AmazonSNS) 來監控AWSKMS金鑰的狀態變更,以便在AWSKMS金鑰的金鑰狀態變更為 Disabled或 時發出自動通知PendingDeletion。例如,如果使用者嘗試停用或刪除AWSKMS金鑰,您將收到一封電子郵件通知,其中包含嘗試狀態變更的詳細資訊。您也可以使用此模式來排程刪除AWSKMS金鑰。

先決條件和限制

先決條件

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

  • AWS KMS 金鑰

架構

技術堆疊

  • Amazon EventBridge

  • AWS 金鑰管理服務 (AWSKMS)

  • Amazon Simple Notification Service (Amazon SNS)

目標架構

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

建置自動化監控和通知程序的架構

該圖顯示以下工作流程:

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

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

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

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

注意

您可以自訂電子郵件訊息,以符合組織的需求。我們建議您包含使用AWSKMS金鑰之實體的相關資訊。這可協助使用者了解刪除AWSKMS金鑰的影響。您也可以排定提醒電子郵件通知,在刪除AWSKMS金鑰前一或兩天傳送。

自動化和擴展

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

工具

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

  • Amazon EventBridge 是一種無伺服器事件匯流排服務,可協助您將應用程式與來自各種來源的即時資料連線。 會從您自己的應用程式AWS和服務 EventBridge 提供即時資料串流,並將該資料路由至目標,例如 AWS Lambda。 可 EventBridge 簡化建置事件驅動架構的程序。

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

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

Code

此模式的程式碼可在 GitHub 停用監控AWSKMS金鑰和排程刪除儲存庫中使用。

史詩

任務描述所需的技能

複製儲存庫。

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

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 管理員、雲端架構師
任務描述所需的技能

停用AWSKMS金鑰。

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

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

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

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

  5. 若要停用AWSKMS金鑰,請選擇金鑰動作,然後選擇停用

AWS 管理員

驗證訂閱。

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

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

刪除 CloudFormation 堆疊。

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

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

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

AWS 管理員

相關資源

其他資訊

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