本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon RDS 的加密最佳實務
Amazon Relational Database Service (Amazon RDS) 可協助您在 AWS 雲端中設定、操作和擴展關聯式資料庫 (DB)。靜態加密的資料包括資料庫執行個體的基礎儲存體、其自動化備份、僅供讀取複本,以及快照。
以下是您可用於加密 RDS 資料庫執行個體中的靜態資料的方法:
-
您可以使用 受管金鑰或客戶受管金鑰 AWS KMS keys來 AWS 加密 Amazon RDS 資料庫執行個體。如需詳細資訊,請參閱本指南中的 AWS Key Management Service。
-
Amazon RDS for Oracle 和 Amazon RDS for SQL Server 支援使用透明資料加密 (TDE),來加密資料庫執行個體。如需詳細資訊,請參閱 Oracle 透明資料加密或支援 SQL Server 的透明資料加密。
您可以同時使用 TDE 和 KMS 金鑰來加密資料庫執行個體。但是,這可能會稍微影響資料庫的效能,您必須分別管理這些金鑰。
以下是您可用於加密往返 RDS 資料庫執行個體的傳輸中的資料的方法:
-
對於執行 MariaDB、Microsoft SQL Server、MySQL、Oracle 或 PostgreSQL 的 Amazon RDS 資料庫執行個體,您可以使用 SSL 加密連線。如需詳細資訊,請參閱使用 SSL/TLS 加密資料庫執行個體的連線。
-
Amazon RDS for Oracle 也支援 Oracle 原生網路加密 (NNE),可在資料移入和移出資料庫執行個體時加密資料。無法同時使用 NNE 和 SSL 加密。如需詳細資訊,請參閱 Oracle 原生網路加密。
請考慮此服務的下列加密最佳實務:
-
在連接至 Amazon RDS for SQL Server 或 Amazon RDS for PostgreSQL 資料庫執行個體以處理、儲存或傳輸需要加密的資料時,使用 RDS 傳輸加密功能來加密連線。您可以在參數群組中將
rds.force_ssl
參數設定為1
來實作此操作。如需詳細資訊,請參閱使用參數群組。Amazon RDS for Oracle 使用 Oracle 資料庫原生網路加密。 -
用於 RDS 資料庫執行個體加密的客戶受管金鑰應僅用於該用途,且不得與任何其他 AWS 服務搭配使用。
-
在加密 RDS 資料庫執行個體之前,先建立 KMS 金鑰需求。執行個體使用的金鑰以後無法變更。例如,在您的加密政策中,根據您的業務需求,定義 AWS 受管金鑰或客戶受管金鑰的使用和管理標準。
-
授權存取客戶受管 KMS 金鑰時,請在 IAM 政策中使用條件金鑰,以遵循最低權限原則。例如,若要僅允許客戶受管金鑰用於源自 Amazon RDS 的請求,請使用 kms:ViaService 條件金鑰搭配
rds.<region>.amazonaws.com
值。此外,您可以使用 Amazon RDS 加密內容中的金鑰或值,做為使用客戶受管金鑰的條件。 -
強烈建議您為加密的 RDS 資料庫執行個體啟用備份。Amazon RDS 可能會失去對資料庫執行個體的 KMS 金鑰的存取權,例如未啟用 KMS 金鑰或撤銷 RDS 對 KMS 金鑰的存取權時。如果發生此情況,則加密的資料庫執行個體將進入可復原狀態七天。如果資料庫執行個體在七天後未重新取得對金鑰的存取權,則資料庫將變得最終無法存取,必須從備份還原。如需詳細資訊,請參閱加密資料庫執行個體。
-
如果僅供讀取複本及其加密的資料庫執行個體位於相同位置 AWS 區域,您必須使用相同的 KMS 金鑰來加密兩者。
-
在 中 AWS Config,實作 rds-storage-encrypted AWS 受管規則來驗證和強制執行 RDS 資料庫執行個體的加密,以及 rds-snapshots-encrypted 規則來驗證和強制執行 RDS 資料庫快照的加密。
-
使用 AWS Security Hub 評估您的 Amazon RDS 資源是否遵循安全最佳實務。如需詳細資訊,請參閱 Amazon RDS 的 Security Hub 控制項。