監控 Amazon ElastiCache 取叢集以進行靜態加密 - AWS Prescriptive Guidance

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

監控 Amazon ElastiCache 取叢集以進行靜態加密

蘇珊娜康諾 (AWS) 創建

環境:生產

技能:安全性、身分識別、合規性;資料庫;基礎架構;原生雲端

工作負載:開放原始碼

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

Summary

Amazon ElastiCache 是一項 Amazon Web Services (AWS) 服務,提供高效能、可擴展和符合成本效益的快取解決方案,可在雲端中分發記憶體內資料存放區或快取環境。它會從高輸送量和低延遲的記憶體內資料存放區擷取資料。這項功能使其成為即時使用案例的熱門選擇,例如快取、工作階段存放區、遊戲、地理空間服務、即時分析和佇列。ElastiCache 提供了 Redis 和 Memcached 數據存儲,這兩者都提供了子毫秒響應時間。

資料加密有助於防止未經授權的使用者讀取 Redis 叢集及其相關快取儲存體系統上的敏感資料。這包括儲存至持續性媒體的資料,稱為靜態資料,以及在用戶端與快取伺服器之間透過網路傳送時可攔截的資料,稱為傳輸中的資料

您可以在建立複寫群組時,針對 Redis 的 ElastiCache 啟用靜態加密,透過將AtRestEncryptionEnabled參數設定為true。啟用此參數後,它會在同步、備份和交換操作期間對磁碟進行加密,並加密儲存在 Amazon Simple Storage Service (Amazon S3) 中的備份。您無法在現有複寫群組上啟用靜態加密。建立複寫群組時,您可以使用下列兩種方式啟用靜態加密:

  • 藉由選擇預設值選項,此選項使用服務管理的靜態加密。

  • 使用客戶受管金鑰並從 AWS Key Management Service (AWS KMS) 提供金鑰 ID 或 Amazon Resource Name (ARN)。

此模式提供安全控制,可監 Amazon CloudWatch Events API 呼叫,並在CreateReplicationGroupoperation. 此事件會呼叫執行 Python 指令碼的 AWS Lambda 函數。函式會從事件 JSON 輸入取得複寫群組識別碼,並執行下列檢查,以判斷是否有安全性違規:

  • 如果檢查AtRestEncryptionEnabled金鑰存在。

  • 如果AtRestEncryptionEnabled存在,檢查該值以查看它是否為true

  • 如果AtRestEncryptionEnabled值設定為false中,會設定變數,透過使用 Amazon Simple Notification Service (Amazon SNS) 通知,來追蹤違規並將違規訊息傳送到您提供的電子郵件地址。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 上傳所提供的 Lambda 程式碼的 S3 儲存貯體。

  • 您想要從中接收到違規通知的電子郵件地址。

  • 啟用 ElastiCache 記錄功能,以存取所有 API 記錄。

限制

  • 此偵測控制是區域性的,而且必須部署在您要監控的每個 AWS 區域中。

  • 控制項支援虛擬私有雲端 (VPC) 中執行的複寫群組。

  • 控制項支援執行下列節點類型的複寫群組:

    • R5、R4、R3

    • M5、M4、M3

    • T3、T2

產品版本

  • 3.2.6 版或更新版本的 ElastiCache

Architecture

工作流程架構

自動化與擴展

Tools

AWS 服務

  • Amazon ElastiCache— Amazon ElastiCache 可讓使用者輕鬆地針對 AWS 雲端中的分散式記憶體內快取環境,來進行設定、管理和擴展。此項服務提供高效能、可調整大小和符合成本效益的記憶體內快取,同時移除了部署與管理分散式快取環境的相關複雜性。ElastiCache 存與 Redis 和內存緩存的引擎工作。

  • AWS CloudFormation— AWS CloudFormation 可協助您為 AWS 資源建立模型和設定模型、快速一致地佈建資源,並在整個生命週期中進行管理。您可以使用範本來描述資源及其相依性,並將它們一起啟動並設定為堆疊,而不是個別管理資源。您可以跨多個 AWS 帳戶和 AWS 區域管理和佈建堆疊。

  • AWS CloudWatch 事件— Amazon CloudWatch Events 會交付近乎即時的系統事件串流,描述 AWS 資源中的變更情形。CloudWatch Events 會在發生變更時感知操作變更並視需要進行修正動作,透過傳送訊息來回應環境、啟用功能、執行變更和擷取狀態資訊。

  • AWS Lambda— AWS Lambda 是一項運算服務,可支援執行程式碼,無需佈建或管理伺服器。Lambda 只有在需要時才會執行程式碼,會自動從每天數項請求擴展成每秒數千項請求。只需為使用的運算時間支付費用,一旦未執行程式碼,就會停止計費。 

  • Amazon SNS— Amazon Simple Notification Service (Amazon SNS) 會協調和管理發佈商和用戶端之間的訊息傳送,包括 Web 伺服器和電子郵件地址。訂閱者會收到發佈到所訂閱主題的所有訊息,且某一主題的所有訂閱者均會收到相同訊息。

Code

該模式包括一個包含兩個文件的附件:

  • ElasticCache-EncryptionAtRest.zip是包含安全性控制項 (Lambda 程式碼) 的壓縮檔。

  • elasticache_encryption_at_rest.yml是部署安全控制項的 CloudFormation 範本。

請參閱史詩區段,如需如何使用這些檔案的資訊。

Epics

任務描述所需技能
上傳程式碼至 S3 儲存貯體。

建立新的 S3 儲存貯體或使用現有的 S3 儲存貯體來上傳附加的ElastiCache-EncryptionAtRest.zip文件(Lambda 代碼)。此儲存貯體必須位於與您要評估的資源相同的 AWS 區域。

雲端架構師
部署 CloudFormation 範本。

在與 S3 儲存貯體相同的 AWS 區域開啟 CloudFormation 主控台,然後部署elasticache_encryption_at_rest.yml附件中提供的文件。在下一個史詩中,提供範本參數的值。

雲端架構師
任務描述所需技能
提供 S3 儲存貯體名稱。

輸入您在第一部史詩作品中建立或選取的 S3 儲存貯體名稱。此 S3 儲存貯體包含 Lambda 程式碼的 .zip 檔案,且必須位於與 CloudFormation 範本相同的 AWS 區域,以及將要評估的資源相同的 AWS 區域。 

雲端架構師
提供 S3 金鑰。

在 S3 儲存貯體中提供 Lambda 程式碼 .zip 檔案的位置,不含前導斜線 (例如ElasticCache-EncryptionAtRest.zipcontrols/ElasticCache-EncryptionAtRest.zip

雲端架構師
請參閱電子郵件地址。

提供您要從中接收到違規通知的作用中電子郵件地址。 

雲端架構師
指定記錄層級。

指定記錄等級和詳細資訊。Info會指定應用程式進度的詳細資訊訊息,並且只能用於偵錯。Error會指定仍可能允許應用程式繼續執行的錯誤事件。Warning指定潛在有害的狀況。

雲端架構師
任務描述所需技能
確認電子郵件訂閱。

當 CloudFormation 範本部署成功時,它會傳送訂閱電子郵件訊息到您提供的電子郵件地址。若要接收通知,您必須確認此電子郵件訂閱。

雲端架構師

Attachments

attachment.zip