Amazon RDS 的加密最佳實務 - AWS 方案指引

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

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 控制項