本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
監控 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 Organizations,則可以使用 AWS Cloudformation StackSets 在您要監控的多個帳戶中部署此範本。
工具
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 儲存貯體上傳附加的 | 雲端架構師 |
部署 CloudFormation 範本。 | 在與 S3 儲存貯體相同的 AWS 區域中開啟 Cloudformation 主控台,然後部署附件中提供的 | 雲端架構師 |
任務 | 描述 | 所需技能 |
---|---|---|
提供 S3 儲存貯體名稱。 | 輸入您在第一個史詩中建立或選取的 S3 儲存貯體的名稱。這個 S3 儲存貯體包含 Lambda 程式碼的 .zip 檔案,且必須與 CloudFormation 範本和要評估的資源位於相同的 AWS 區域。 | 雲端架構師 |
提供 S3 金鑰。 | 在 S3 儲存貯體中提供 Lambda 程式碼 .zip 檔案的位置,而不需要前導斜線 (例如, | 雲端架構師 |
提供電子郵件地址。 | 提供您要接收違規通知的作用中電子郵件地址。 | 雲端架構師 |
指定記錄日誌層級。 | 指定記錄日誌層級和詳細資訊。 | 雲端架構師 |
任務 | 描述 | 所需技能 |
---|---|---|
確認電子郵件訂閱。 | 成功部署 CloudFormation 範本後,會將訂閱電子郵件訊息傳送至您提供的電子郵件地址。若要接收通知,您必須確認此電子郵件訂閱。 | 雲端架構師 |
相關資源
在 AWS CloudFormation 主控台上建立堆疊 (AWS CloudFormation 文件)
Redis ElastiCache 的靜態加密 (Amazon ElastiCache 文件)
附件
若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip