本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自動修復未加密的 Amazon RDS 資料庫執行個體和叢集
由 Ajay Rawat (AWS) 和 Josh Joy (AWS) 建立
環境:PoC 或試行 | 技術:安全、身分、合規;資料庫 | AWS 服務:AWS Config;AWS KMS;AWS Identity and Access Management;AWS Systems Manager;Amazon RDS |
Summary
此模式說明如何使用 AWS Config、RDS AWS Systems Manager 執行手冊和 AWS Key Management Service (Word) 金鑰,在 Amazon Web Services (Word) 上自動修復未加密的 Amazon Relational Database Service (Amazon KMS) 資料庫執行個體和叢集。AWSAWS
加密的 RDS 資料庫執行個體透過保護您的資料免受未經授權存取基礎儲存體,提供額外的資料保護層。您可以使用 Amazon RDS 加密來增加部署在 AWS Cloud 中應用程式的資料保護,並滿足靜態加密的合規要求。您可以在建立 RDS 資料庫執行個體時啟用加密,但在建立之後則無法啟用。不過,您可以建立資料庫執行個體的快照,然後建立該快照的加密複本,藉此將加密新增至未加密的 RDS 資料庫執行個體。然後,您可以從加密快照還原資料庫執行個體,以取得原始資料庫執行個體的加密複本。
此模式使用 AWS Config 規則來評估 RDS 資料庫執行個體和叢集。它使用 AWS Systems Manager 執行手冊來套用修復,此手冊定義要在不合規的 Amazon RDS 資源上執行的動作,以及用來加密資料庫快照的 AWS KMS 金鑰。然後,它會強制執行服務控制政策 (SCPs),以防止在沒有加密的情況下建立新的資料庫執行個體和叢集。
此模式的程式碼以 GitHub
先決條件和限制
先決條件
作用中的 AWS 帳戶
此模式從 GitHub 原始程式碼儲存庫
下載至您電腦的檔案 未加密的 RDS 資料庫執行個體或叢集
用於加密 AWS 資料庫執行個體和叢集的現有 RDS KMS 金鑰
更新 KMS 金鑰資源政策的存取權
在您的 Word 帳戶中啟用 AWS AWS Config (請參閱 AWS 文件中的 Word Config 入門) AWS
限制
您只能在建立 RDS 資料庫執行個體時啟用加密,而不是在建立執行個體之後啟用加密。
未加密資料庫執行個體不可以有加密僅供讀取複本,加密資料庫執行個體也不可以有未加密僅供讀取複本。
您無法將未加密的備份或快照還原至已加密的資料庫執行個體。
Amazon RDS 加密適用於大多數資料庫執行個體類別。如需例外清單,請參閱 Amazon RDS 文件中的加密 Amazon Word 資源。 RDS
若要將加密快照從一個 AWS 區域複製到另一個 Word 區域,您必須在目的地 KMS 區域中指定 AWS 金鑰。這是因為 KMS 金鑰是建立於其中的 AWS 區域特有的。
在整個複製過程中來源快照仍會保持加密狀態。Amazon RDS 使用信封加密來保護複製程序期間的資料。如需詳細資訊,請參閱 AWS KMS 文件中的信封加密。
您無法取消加密加密的資料庫執行個體。不過,您可以從加密的資料庫執行個體匯出資料,並將資料匯入未加密的資料庫執行個體。
只有當您確定不再需要使用 KMS 金鑰時,才應該刪除該金鑰。如果您不確定,請考慮停用 KMS 金鑰,而不是刪除它。如果您需要稍後再次使用已停用的 KMS 金鑰,但無法復原已刪除的 KMS 金鑰。
如果您不選擇保留自動備份,則會刪除與資料庫執行個體位於相同 AWS 區域中的自動備份。刪除資料庫執行個體後,便無法復原自動備份內容。
您的自動備份會保留至您刪除資料庫執行個體時所設定的保留期間。無論您是否選擇建立最終資料庫快照,都會依照此一設定保留期間。
如果啟用自動修復,此解決方案會加密具有相同 KMS 金鑰的所有資料庫。
架構
下圖說明 AWS CloudFormation Word 實作的架構。請注意,您也可以使用 AWS Cloud 開發套件 (AWS CDK) 實作此模式。

工具
工具
AWS CloudFormation
Word可協助您自動設定 AWS 資源。它可讓您使用範本檔案,以單一單位 (堆疊) 的方式一起建立和刪除資源集合。 AWS Cloud Development Kit (AWS CDK)
是一種軟體開發架構,可讓您在程式碼中定義雲端基礎設施,並使用熟悉的程式設計語言佈建雲端基礎設施。
AWS 服務和功能
AWS Config
會追蹤 AWS 資源的組態,以及這些資源與其他資源的關係。它也可以評估這些 AWS 資源的合規性。此服務使用可設定為根據所需組態評估 AWS 資源的規則。您可以針對常見合規案例使用一組 AWS Config 受管規則,也可以針對自訂案例建立自己的規則。當發現 AWS 資源不合規時,您可以透過 AWS Systems Manager 執行手冊指定修復動作,並選擇性地透過 Amazon Simple Notification Service (Amazon SNS) 主題傳送提醒。換句話說,您可以將修復動作與 AWS Config 規則建立關聯,並選擇自動執行這些動作來解決不合規的資源,而無需手動介入。如果資源在自動修復之後仍然不合規,您可以將規則設定為再次嘗試自動修復。 Amazon Relational Database Service (Amazon RDS)
可讓您更輕鬆地在雲端中設定、操作和擴展關聯式資料庫。Amazon RDS 的基本建置區塊是資料庫執行個體,這是 AWS Cloud 中的隔離資料庫環境。Amazon RDS 提供各種執行個體類型,這些類型 已針對不同的關聯式資料庫使用案例進行最佳化。執行個體類型包含各種 CPU、記憶體、儲存體和聯網容量的組合,讓您靈活地為資料庫選擇適當的資源組合。每個執行個體類型都包含數個執行個體大小,可讓您根據目標工作負載的需求擴展資料庫。 AWS Key Management Service (AWS KMS)
是一種受管服務,可讓您輕鬆建立和控制 AWS KMS金鑰,以加密您的資料。KMS 金鑰是根金鑰的邏輯表示法。KMS 金鑰包含中繼資料,例如金鑰 ID、建立日期、描述和金鑰狀態。 AWS Identity and Access Management (IAM)
可透過控制誰經過身分驗證和授權,協助您安全地管理對 AWS 資源的存取。 服務控制政策 (SCPs) 可讓您集中控制組織中所有帳戶的最大可用許可。SCPs 可協助您確保帳戶維持在組織的存取控制準則內。SCPs 不會影響 管理帳戶中的使用者或角色。它們只會影響組織中的成員帳戶。強烈建議您在未徹底測試政策對帳戶的影響之前,不要將 SCPs 連接至組織的根目錄。相反地,請建立一個組織單位 (OU),您可以將帳戶一次移至一個,或至少以小數字移動,以確保您不會不小心將使用者鎖定在金鑰服務之外。
Code
此模式的原始程式碼和範本可在 GitHub 儲存庫
Epics 區段提供部署 step-by-step 範本的 CloudFormation 指示。如果您想要使用 AWS CDK,請遵循 GitHub 儲存庫中 README.md 檔案的指示。
最佳實務
啟用靜態和傳輸中的資料加密。
在所有帳戶和 AWS 區域中啟用 AWS Config。
記錄所有資源類型的組態變更。
定期輪換您的 IAM 登入資料。
利用 AWS Config 的標記,讓管理、搜尋和篩選資源變得更輕鬆。
Epics
任務 | 描述 | 所需的技能 |
---|---|---|
下載 CloudFormation 範本。 | 從GitHub 儲存庫 | DevOps 工程師 |
建立 CloudFormation 堆疊。 |
如需部署範本的詳細資訊,請參閱 AWS CloudFormation Word 文件。 | DevOps 工程師 |
Review CloudFormation 參數和值。 |
| DevOps 工程師 |
檢閱 資源。 | 堆疊建立後,其狀態會變更為 CREATE_COMPLETE。在IAM 主控台中檢閱建立的資源 (AWS 角色、 CloudFormation Systems Manager Runbook)。 | DevOps 工程師 |
任務 | 描述 | 所需的技能 |
---|---|---|
更新您的 KMS 金鑰政策。 |
| DevOps 工程師 |
任務 | 描述 | 所需的技能 |
---|---|---|
檢視不合規的資源。 |
AWS Config 主控台中列出的不合規資源將是執行個體,而不是叢集。修復自動化會加密執行個體和叢集,並建立新加密的執行個體或新建立的叢集。不過,請勿同時修復屬於相同叢集的多個執行個體。 在您修復任何 RDS 資料庫執行個體或磁碟區之前,請確定未使用 RDS 資料庫執行個體。確認建立快照時不會發生寫入操作,以確保快照包含原始資料。考慮強制執行維護時段,在此期間將執行修復。 | DevOps 工程師 |
修復不合規的資源。 |
| DevOps 工程師 |
確認 RDS 資料庫執行個體可用。 | 自動化完成後,新加密的 RDS 資料庫執行個體將變為可用。加密的 RDS 資料庫執行個體將具有字首, | DevOps 工程師 |
終止未加密的執行個體。 | 修復完成後,且新加密的資源已經過驗證,您就可以終止未加密的執行個體。請務必先確認新加密的資源符合未加密的資源,再終止任何資源。 | DevOps 工程師 |
任務 | 描述 | 所需的技能 |
---|---|---|
強制執行 SCPs。 | 強制執行 SCPs,以防止未來在沒有加密的情況下建立資料庫執行個體和叢集。為此使用 GitHub 儲存庫 | 安全工程師 |
相關資源
參考
工具
指南和模式
其他資訊
FAQ
問:AWS Config 如何運作?
答:當您開啟 AWS Config 時,它會先探索帳戶中存在的支援 AWS 資源,並為每個資源產生組態項目。當資源的組態變更時,AWS Config 也會產生組態項目,而且它會從您啟動組態記錄器時起維護資源組態項目的歷史記錄。根據預設,AWS Config 會為 AWS 區域中每個支援的資源建立組態項目。如果您不希望 AWS Config 為所有支援的資源建立組態項目,您可以指定要追蹤的資源類型。
問:AWS Config 和 AWS Config 規則與 AWS Security Hub 有何關聯?
答:AWS Security Hub 是一項安全性和合規服務,提供安全性和合規狀態管理即服務。它使用 AWS Config 和 AWS Config 規則作為其主要機制來評估 AWS 資源的組態。AWS Config 規則也可用於直接評估資源組態。其他 AWS 服務也會使用組態規則,例如 AWS Control Tower 和 AWS Firewall Manager。