監控 Amazon ElastiCache 叢集以進行靜態加密 - AWS 方案指引

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

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

由蘇珊娜康諾(AWS)創建

環境:生產

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

工作負載:開源

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

Summary

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

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

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

  • 通過選擇默認選項,該選項使用服務管理的靜態加密。

  • 透過使用客戶受管金鑰,並從 AWS Key Management Service (AWS KMS) 提供金鑰 ID 或 Amazon 資源名稱 (ARN)。

此模式提供安全控制,可監控 API 呼叫並在CreateReplicationGroup操作上產生 Amazon E CloudWatch vents 事件。此事件會呼叫執行 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

產品版本

  • ElastiCache 對於版本 3.2.6 或更高版本

架構

工作流架構

自動化和規模

工具

AWS 服務

  • Amazon ElastiCache — Amazon 可 ElastiCache 讓您輕鬆地在 AWS 雲端中設定、管理和擴展分散式記憶體內快取環境。它提供高效能、可調整大小且符合成本效益的記憶體內快取,同時消除與部署和管理分散式快取環境相關的複雜性。 ElastiCache 適用於 Redis 和內存緩存引擎。

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

  • AWS Cloudwatch 活動 — Amazon CloudWatch 活動提供近乎即時的系統事件串流,用於描述 AWS 資源的變更。 CloudWatch 事件會在發生作業變更時瞭解作業變更,並視需要採取更正動作,方法是傳送訊息以回應環境、啟動功能、進行變更,以及擷取狀態資訊。

  • 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 區域。 

雲端架構師
提供 S3 金鑰。

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

雲端架構師
提供電子郵件地址。

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

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

指定記錄日誌層級和詳細資訊。 Info指定應用程式進度的詳細資訊訊息,應該只用於偵錯。 Error指定仍然允許應用程式繼續執行的錯誤事件。 Warning指定潛在的有害情況。

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

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

雲端架構師

附件

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