加密 Amazon RDS 資源 - Amazon Relational Database Service

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

加密 Amazon RDS 資源

Amazon RDS 可以加密您的 Amazon RDS 資料庫執行個體。經過加密的待用資料包含資料庫執行個體的基礎儲存體、自動化備份、僅供讀取複本和快照。

Amazon RDS 加密的資料庫執行個體使用業界標準的 AES-256 加密演算法,來加密託管 Amazon RDS 資料庫執行個體伺服器上的資料。資料加密後,Amazon RDS 會以透明的方式處理資料的存取和解密身分驗證,且對效能的影響極小。您不需要修改資料庫用戶端應用程式即可使用加密。

注意

對於加密和未加密的資料庫執行個體,即使跨 AWS 區域複寫,來源和僅供讀取複本之間傳輸的資料也會加密。

加密 Amazon RDS 資源概觀

Amazon RDS加密資料庫執行個體透過保護您的資料免受未經授權存取基礎儲存體,提供額外的資料保護層。您可以使用 Amazon RDS加密來增加部署在雲端中應用程式的資料保護,並滿足靜態加密的合規要求。

對於 Amazon RDS加密的資料庫執行個體,所有日誌、備份和快照都會加密。Amazon RDS使用 AWS Key Management Service 金鑰來加密這些資源。如需KMS金鑰的詳細資訊,請參閱 AWS Key Management Service 開發人員指南AWS KMS keys 中的 AWS KMS key 管理。如果您複製加密的快照,您可以使用不同的KMS金鑰來加密目標快照,而不是用來加密來源快照的快照。

當 Amazon RDS加密執行個體的僅供讀取複本位於 AWS 相同區域時,必須使用與主要資料庫執行個體相同的KMS金鑰加密。如果主要資料庫執行個體和僅供讀取複本位於不同 AWS 區域,您可以使用該 AWS 區域的KMS金鑰來加密僅供讀取複本。

您可以使用 AWS 受管金鑰,也可以建立客戶受管金鑰。若要管理用於加密和解密 Amazon RDS 資源的客戶受管金鑰,您可以使用 AWS Key Management Service (AWS KMS). AWS KMS combines 安全、高可用性的硬體和軟體來提供針對雲端擴展的金鑰管理系統。使用 AWS KMS,您可以建立客戶受管金鑰,並定義控制如何使用這些客戶受管金鑰的政策。 AWS KMS 支援 CloudTrail,因此您可以稽核KMS金鑰用量,以確認客戶受管金鑰是否適當使用。您可以搭配 Amazon Aurora 和支援 AWS 的服務使用客戶受管金鑰,例如 Amazon S3EBS、Amazon 和 Amazon Redshift。如需與 整合的服務清單 AWS KMS,請參閱AWS 服務整合

Amazon RDS也支援使用透明資料加密 () 加密 Oracle 或 SQL Server 資料庫執行個體TDE。TDE 可與靜態RDS加密搭配使用,但同時使用 TDE和靜態RDS加密可能會稍微影響資料庫的效能。您必須管理每種加密方法的不同索引鍵。如需 的詳細資訊TDE,請參閱 Oracle 透明資料加密支援SQL伺服器中的透明資料加密

加密資料庫執行個體

若要加密新的資料庫執行個體,請選擇在 Amazon RDS主控台上啟用加密。如需建立資料庫執行個體的資訊,請參閱 建立 Amazon RDS 資料庫執行個體

如果您使用 create-db-instance AWS CLI 命令來建立加密的資料庫執行個體,請設定 --storage-encrypted 參數。如果您使用 CreateDBInstance API操作,請將 StorageEncrypted 參數設定為 true。

當您建立加密的資料庫執行個體時,您可以選擇客戶受管金鑰或 Amazon AWS 受管金鑰 的 RDS來加密資料庫執行個體。如果您未指定客戶受管金鑰的金鑰識別符,Amazon RDS會將 AWS 受管金鑰 用於新的資料庫執行個體。Amazon 會RDS為 AWS 您的帳戶RDS建立 AWS 受管金鑰 適用於 Amazon 的 。 AWS 您的帳戶RDS對每個 AWS 區域的 AWS 受管金鑰 Amazon 具有不同的 。

如需KMS金鑰的詳細資訊,請參閱 開發人員指南 AWS KMS keys 中的 。 AWS Key Management Service

建立加密的資料庫執行個體後,您就無法變更該資料庫執行個體所使用的KMS金鑰。因此,請務必在建立加密的資料庫執行個體之前,先判斷您的KMS金鑰需求。

如果您使用 AWS CLI create-db-instance命令建立具有客戶受管金鑰的加密資料庫執行個體,請將 --kms-key-id 參數設定為KMS該金鑰的任何金鑰識別符。如果您使用 Amazon RDSAPICreateDBInstance操作,請將 KmsKeyId 參數設定為 金鑰的任何KMS金鑰識別符。若要在不同 AWS 帳戶中使用客戶受管金鑰,請指定金鑰ARN或別名 ARN。

重要

當您停用KMS金鑰時,Amazon RDS可能會失去資料庫執行個體的KMS金鑰存取權。在這些情況下,加密的資料庫執行個體很快就會進入 inaccessible-encryption-credentials-recoverable 狀態。資料庫執行個體會保持此狀態七天,在此期間執行個體會停止。API 在此期間對資料庫執行個體進行的呼叫可能無法成功。若要復原資料庫執行個體,請啟用 KMS金鑰並重新啟動此資料庫執行個體。從 啟用KMS金鑰 AWS Management Console。使用 AWS CLI 命令start-db-instance或 重新啟動資料庫執行個體 AWS Management Console。

如果資料庫執行個體未在七天內復原,則會進入終端機inaccessible-encryption-credentials狀態。在此狀態下,資料庫執行個體不再可用,您只能從備份還原資料庫執行個體。強烈建議您一律開啟加密資料庫執行個體的備份,以免遺失資料庫內的加密資料。

在建立資料庫執行個體期間,Amazon 會RDS檢查呼叫委託人是否有權存取 KMS 金鑰,並從其在資料庫執行個體的整個生命週期中使用的KMS金鑰產生授予。撤銷呼叫主體對KMS金鑰的存取不會影響執行中的資料庫。在跨帳戶案例中使用KMS金鑰時,例如將快照複製到另一個 帳戶,則需要與其他 帳戶共用KMS金鑰。如果您從快照建立資料庫執行個體,但未指定不同的KMS金鑰,則新執行個體會使用來源帳戶中的KMS金鑰。建立資料庫執行個體後撤銷對 金鑰的存取權不會影響執行個體。不過,停用金鑰會影響使用該金鑰加密的所有資料庫執行個體。若要防止這種情況,請在快照複製操作期間指定不同的金鑰。

決定是否為資料庫執行個體開啟加密

您可以使用 AWS Management Console、 AWS CLI或 RDSAPI來判斷資料庫執行個體是否開啟靜態加密。

決定是否為資料庫執行個體開啟靜態加密。
  1. 登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇您要檢查的資料庫執行個體名稱,以檢視其詳細資訊。

  4. 選擇 Configuration (組態) 索引標籤,然後勾選 Storage (儲存) 下的 Encryption (加密) 值。

    其會顯示 Enabled (已啟用) 或 Not enabled (未啟用)。

    檢查資料庫執行個體的靜態加密

若要使用 判斷資料庫執行個體的靜態加密是否開啟 AWS CLI,請使用下列選項呼叫 describe-db-instances命令:

  • --db-instance-identifier – 資料庫執行個體名稱。

下列範例會使用查詢,為 mydb 資料庫執行個體傳回關於靜態加密的 TRUEFALSE

範例
aws rds describe-db-instances --db-instance-identifier mydb --query "*[].{StorageEncrypted:StorageEncrypted}" --output text

若要使用 Amazon 判斷資料庫執行個體是否開啟靜態加密API,請使用下列參數呼叫 DescribeDBInstances RDS 操作:

  • DBInstanceIdentifier – 資料庫執行個體名稱。

Amazon RDS 加密的可用性

除了 SQL Server Express Edition 之外,Amazon RDS 加密目前適用於所有資料庫引擎和儲存類型。

Amazon RDS加密適用於大多數資料庫執行個體類別。下表列出不支援 Amazon RDS加密的資料庫執行個體類別:

執行個體類型 執行個體類別

一般用途 (M1)

db.m1.small

db.m1.medium

db.m1.large

db.m1.xlarge

記憶體最佳化 (M2)

db.m2.xlarge

db.m2.2xlarge

db.m2.4xlarge

爆量 (T2)

db.t2.micro

傳輸中加密

AWS 在所有類型的資料庫執行個體之間提供安全且私有的連線。此外,某些執行個體類型使用基礎 Nitro System 硬體的卸載功能,以自動加密執行個體之間的傳輸中流量。此加密使用已驗證加密搭配相關資料 (AEAD) 演算法,以及 256 位元加密。這對網路效能沒有影響。若要支援執行個體之間額外的傳輸中流量加密,必須符合下列要求:

  • 執行個體使用下列執行個體類型:

    • 一般用途:M6i, M6id, M6in, M6idn, M7g

    • 記憶體最佳化:R6i, R6id, R6in, R6idn, R7g, X2idn, X2iedn, X2iezn

  • 執行個體位於相同的 中 AWS 區域。

  • 執行個體位於相同VPC或對等的 中VPCs,且流量不會透過虛擬網路裝置或服務傳遞,例如負載平衡器或傳輸閘道。

Amazon RDS 加密資料庫執行個體的限制

Amazon RDS 加密資料庫執行個體存在下列限制:

  • 您只能在建立 Amazon RDS 資料庫執行個體時加密該執行個體,而不是在建立資料庫執行個體之後加密。

    不過,因為您可以加密未加密快照的副本,所以可以有效地將加密新增至未加密的資料庫執行個體。亦即,您可以建立資料庫執行個體的快照,然後建立該快照的加密副本。接著,從加密快照中還原資料庫執行個體,因此您有原始資料庫執行個體的加密副本。如需詳細資訊,請參閱複製 Amazon 的資料庫快照 RDS

  • 您無法在加密的資料庫執行個體上關閉加密。

  • 您無法建立未加密資料庫執行個體的加密快照。

  • 加密資料庫執行個體的快照必須使用與資料庫執行個體相同的KMS金鑰加密。

  • 未加密資料庫執行個體不可以有加密僅供讀取複本,加密資料庫執行個體也不可以有未加密僅供讀取複本。

  • 加密僅供讀取複本在相同 AWS 區域中時,必須使用與來源資料庫執行個體相同的KMS金鑰加密。

  • 您無法將未加密的備份或快照還原至已加密的資料庫執行個體。

  • 若要將加密的快照從一個 AWS 區域複製到另一個 AWS 區域,您必須在目的地區域中指定 KMS金鑰。這是因為KMS索引鍵是建立於其中的 AWS 區域特有的。

    在整個複製過程中來源快照仍會保持加密狀態。Amazon RDS 使用信封加密來保護複製過程中的資料。如需信封加密的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的信封加密

  • 您無法解密加密的資料庫執行個體。但是,您可以從加密的資料庫執行個體匯出資料,然後將資料匯入未加密的資料庫執行個體