外部金鑰存放區 - AWS Key Management Service

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

外部金鑰存放區

外部金鑰存放區可讓您使用外部的加密金鑰來保護您的 AWS AWS資源。此進階功能專為受管制的工作負載而設計,您必須使用儲存在您控制的外部金鑰管理系統中的加密金鑰來保護這些工作負載。外部金鑰存放區支援AWS 數位主權承諾,讓您對資料擁有的主權控制權 AWS,包括使用您擁有的金鑰資料進行加密的能力,以及可控制的外部資料。 AWS

部金鑰存放區是由您在外部擁有和管理的外部金鑰管理員所支援的自訂金鑰存放區 AWS。您的外部金鑰管理器可以是實體或虛擬硬體安全模組 (HSM),也可以是任何能夠產生和使用密碼編譯金鑰的硬體型或軟體型系統。在外部金鑰存放區中使用 KMS 金鑰的加密和解密操作由外部金鑰管理器使用您的密碼編譯金鑰材料執行,這項功能稱為 Hold Your Own Keys (HYOK)。

AWS KMS 切勿直接與外部金鑰管理員互動,也無法建立、檢視、管理或刪除您的金鑰。相反地,只會與您提供的外部金鑰存放區 Proxy (XKS Proxy) 軟體 AWS KMS 互動。您的外部金鑰存放區 Proxy 會協調與外部金鑰管理員 AWS KMS 之間的所有通訊。它會將所有要求傳送 AWS KMS 至外部金鑰管理員,並將外部金鑰管理員的回應傳送回。 AWS KMS外部金鑰存放區 Proxy 也會 AWS KMS 將來自廠商的一般要求轉譯成外部金鑰管理員可以瞭解的特定於廠商的格式,讓您可以搭配來自不同廠商的金鑰管理員使用外部金鑰存放區。

您可以在外部金鑰存放區中使用 KMS 金鑰進行用戶端加密,包括 AWS Encryption SDK。但是外部金鑰存放區是伺服器端加密的重要資 AWS 源,可讓您使 AWS 服務 用外部的 AWS加密金鑰保護多個資源。 AWS 服務 支援用於對稱加密的客戶受管金鑰,也支援外部金鑰存放區中的 KMS 金鑰。如需服務支援詳細資訊,請參閱 AWS 服務整合

外部金鑰存放區可讓您用 AWS KMS 於受管制的工作負載,其中加密金鑰必須在外部儲存和使用 AWS。但其與標準共同責任模式有很大不同,並且需要額外的運營負擔。對於大多數客戶而言,可用性和延遲的風險更大,將超過外部金鑰存放區的安全優勢。

外部金鑰存放區可讓您控制信任的根源。只有使用您控制的外部金鑰管理器,才能解密使用外部金鑰存放區中 KMS 金鑰加密的資料。如果您暫時撤銷對外部金鑰管理員的存取權,例如中斷外部金鑰儲存區的連線或中斷外部金鑰管理員與外部金鑰存放區 Proxy 的連線,則會 AWS 失去對加密編譯金鑰的所有存取權,直到您還原該金鑰為止。在該間隔期間,不能解密使用 KMS 金鑰加密的密文。如果您永久撤銷對外部金鑰管理器的存取權,則使用外部金鑰存放區中的 KMS 金鑰加密的所有密文都將無法復原。唯一的例外情況是會短暫快取受 KMS 金鑰保護之資料金鑰的 AWS 服務。這些資料金鑰會繼續運作,直到您停用資源或快取到期為止。如需詳細資訊,請參閱 無法使用的 KMS 金鑰如何影響資料金鑰

對於受管制的工作負載,外部金鑰存放區會解除封鎖少數使用案例,其中加密金鑰必須完全由您控制且無法 AWS存取 但是,這是雲端基礎架構操作方式的重大變化,也是共同責任模式的明顯轉變。對於大多數工作負載而言,額外的操作負擔以及可用性和效能的更大風險將超過外部金鑰存放區感知的安全優勢。

進一步了解

我需要外部金鑰存放區嗎?

對於大多數使用者而言,預設 AWS KMS 金鑰存放區受到 FIPS 140-2 安全等級 3 驗證的硬體軟體安全模組保護,可滿足其安全性、控制和法規要求。外部金鑰存放區使用者會產生巨大的成本、維護和疑難排解負擔,以及延遲、可用性和可靠性風險。

考量外部金鑰存放區時,請花一些時間了解替代方案,包括您擁有和管理的 AWS CloudHSM 叢集支援的 AWS CloudHSM 金鑰存放區,以及在您自己的 HSM 中產生且可視需要從 KMS 金鑰中刪除的具有匯入金鑰材料的 KMS 金鑰。特別是,匯入有效期非常短的金鑰材料可能會提供類似的控制層級,而不會造成效能或可用性風險。

如果您有下列需求,外部金鑰存放區可能是您組織的正確解決方案:

  • 您必須在內部部署金鑰管理員或您控制之外的 AWS 金鑰管理員中使用密碼編譯金鑰。

  • 必須證明您的密碼編譯金鑰在雲端之外完全由您控制。

  • 您必須使用具有獨立授權的密碼編譯金鑰來進行加密和解密。

  • 金鑰資料必須放在次要、獨立的稽核路徑。

如果您選擇外部金鑰存放區,則請將其使用限制於需要利用 AWS之外的密碼編譯金鑰來保護的工作負載。

共同的責任模型

標準 KMS 金鑰使用在 AWS KMS 擁有和管理的 HSM 中產生和使用的金鑰材料。您可以在 KMS 金鑰上建立存取控制原則,並設 AWS 服務 定使用 KMS 金鑰來保護您的資源。 AWS KMS 承擔 KMS 金鑰中金鑰材料的安全性、可用性、延遲和耐久性的責任。

外部金鑰存放區中的 KMS 金鑰依賴於外部金鑰管理器中的金鑰材料和操作。因此,責任的天平會朝著您的方向移動。您必須對外部金鑰管理員中加密編譯金鑰的安全性、可靠性、耐久性和效能負責。 AWS KMS 負責迅速回應要求並與您的外部金鑰存放區代理進行通訊,以及維護我們的安全標準。為了確保每個外部金鑰儲存的密文至少都與標準 AWS KMS 密文相同,請 AWS KMS 先使用 KMS 金鑰專屬的金 AWS KMS 鑰材料將所有純文字加密,然後將其傳送至外部金鑰管理員,以便使用外部金鑰加密,這個程序稱為雙重加密。因此,無論是 AWS KMS 還是外部金鑰材料擁有者都不能單獨解密雙重加密的密文。

您有責任維護符合法規與效能標準的外部金鑰管理器、供應及維護符合AWS KMS 外部金鑰存放區代理 API 規格的外部金鑰存放區代理,並確保金鑰資料的可用性與持久性。此外,您也必須建立、設定和維護外部金鑰存放區。當您維護的元件所造成的錯誤發生時,您必須準備好識別並解決錯誤,如此一來, AWS 服務才能存取您的資源,而不會造成不必要的中斷。 AWS KMS 提供疑難排解指引,協助您判斷問題的原因和最可能的解決方案。

查看記 AWS KMS 錄外部金鑰存放區的 Amazon CloudWatch 指標和維度。 AWS KMS 強烈建議您建立 CloudWatch 警示來監控外部金鑰存放區,以便在效能和作業問題發生之前,早期偵測到效能和作業問題的跡象。

有什麼變化?

外部金鑰存放區僅支援對稱加密 KMS 金鑰。在中 AWS KMS,您可以使用和管理外部金鑰存放區中的 KMS 金鑰,與管理其他客戶管理金鑰的方式大致相同,包括設定存取控制政策監控金鑰使用情況。您可以使用具有相同參數的相同 API,在用於任何 KMS 金鑰的外部金鑰存放區中使用 KMS 金鑰來請求密碼編譯操作。定價也與標準 KMS 金鑰相同。如需詳細資訊,請參閱 管理外部金鑰存放區中的 KMS 金鑰使用外部金鑰存放區中的 KMS 金鑰AWS Key Management Service 定價

但是,對於外部金鑰存放區,以下原則發生了變化:

  • 您負責金鑰操作的可用性、耐久性和延遲。

  • 您負責開發、購買、操作和授權外部金鑰管理器系統的所有費用。

  • 您可以實作來 AWS KMS 自外部金鑰存放區 Proxy 的所有要求的獨立授權

  • 您可以監視、稽核和記錄外部金鑰存放區 Proxy 的所有作業,以及與 AWS KMS 要求相關的外部金鑰管理員的所有作業。

從何處開始?

若要建立和管理外部金鑰存放區,您需要選擇外部金鑰存放區代理連接選項備妥先決條件以及建立和設定外部金鑰存放區。若要開始,請參閱 規劃外部金鑰存放區

配額

AWS KMS 每個 AWS 帳戶 區域最多允許 10 個自訂金鑰存放區,包括AWS CloudHSM 金鑰存放區和外部金鑰存放區,無論其連線狀態為何。此外,在外部金鑰存放區中使用 KMS 金鑰有 AWS KMS 請求配額。

如果您為外部金鑰存放區代理選擇 VPC 代理連接,則必要元件 (例如 VPC、子網路和網路負載平衡器) 可能也會有配額。如需這些配額的相關資訊,請使用 Service Quotas 主控台

區域

若要將網路延遲降到最低,請在離外部金鑰管理器最近的 AWS 區域 中建立外部金鑰存放區元件。如果可能,請選擇網路封包來回時間 (RTT) 為 35 毫秒或更短的區域。

除中國(北京)和中國(寧夏)外, AWS KMS 所有 AWS 區域 支持外部主要商店均受支持。

不支援的功能

AWS KMS 在自訂金鑰存放區中不支援下列功能。

外部金鑰存放區概念

此主題說明外部金鑰存放區中所使用的一些概念。

外部金鑰存放區

部金鑰存放區是由您擁有和管理的外部金鑰管理員所支援 AWS 的自 AWS KMS 訂金鑰存放區。外部金鑰存放區中的每個 KMS 金鑰都與外部金鑰管理器中的外部金鑰相關聯。當您在外部金鑰存放區中使用 KMS 金鑰進行加密或解密時,外部金鑰管理器將使用外部金鑰執行操作,這種安排稱為 Hold your Own Keys (HYOK)。此功能專為需要在其外部金鑰管理器中維護密碼編譯金鑰的組織而設計。

外部金鑰存放區可確保保護 AWS 資源的加密金鑰和作業會保留在您控制的外部金鑰管理員中。 AWS KMS 傳送要求給外部金鑰管理員以加密和解密資料,但 AWS KMS 無法建立、刪除或管理任何外部金鑰。 AWS KMS 向外部金鑰管理員傳送的所有要求,都會由您提供、擁有及管理的外部金鑰存放區 Proxy 軟體元件協調。

AWS 支援 AWS KMS 客戶受管金鑰的服務可以使用外部金鑰存放區中的 KMS 金鑰來保護您的資料。因此,使用外部金鑰管理器中的加密操作,您的資料最終會受到金鑰保護。

與標準 KMS 金鑰相比,外部金鑰存放區中的 KMS 金鑰具有本質上不同的信任模型、共同責任安排和效能預期。透過外部金鑰存放區,您負責金鑰材料和密碼編譯操作的安全性和完整性。外部金鑰存放區中 KMS 金鑰的可用性和延遲會受到硬體、軟體、網路元件以及 AWS KMS 與外部金鑰管理器之間距離的影響。您也可能會為外部金鑰管理員以及外部金鑰管理員通訊所需的網路和負載平衡基礎結構產生額外費用 AWS KMS

您可以使用外部金鑰存放區作為更廣泛資料保護策略的一部分。對於您保護的每個 AWS 資源,您可以決定哪些需要外部金鑰存放區中的 KMS 金鑰,哪些金鑰可以由標準 KMS 金鑰保護。這可讓您靈活地為特定資料分類、應用程式或專案選擇 KMS 金鑰。

外部金鑰管理器

外部金鑰管理器是 AWS 外部的元件,其可產生 256 位元 AES 對稱金鑰並執行對稱加密和解密。外部金鑰存放區的外部金鑰管理器可以是實體硬體安全模組 (HSM)、虛擬 HSM,或是含有或不含 HSM 元件的軟體金鑰管理器。它可以位於以外的任何地方 AWS,包括在您的內部部署、本機或遠端資料中心或任何雲端中。您的外部金鑰存放區可由單一外部金鑰管理器或多個共用密碼編譯金鑰的相關金鑰管理器執行個體 (例如 HSM 叢集) 進行支援。外部金鑰存放區的設計是為了支援來自不同廠商的各種外部管理器。如需有關外部金鑰管理器需求的詳細資訊,請參閱 規劃外部金鑰存放區

外部金鑰

外部金鑰存放區中的每個 KMS 金鑰都與外部金鑰管理器中稱為外部金鑰的密碼編譯金鑰相關聯。當您在外部金鑰存放區中使用 KMS 金鑰進行加密或解密時,外部金鑰管理器將使用外部金鑰執行密碼編譯操作。

警告

外部金鑰對於 KMS 金鑰的操作至關重要。如果遺失或刪除外部金鑰,則使用關聯之 KMS 金鑰加密的密文將無法復原。

對於外部金鑰存放區,外部金鑰必須是已啟用且可執行加密和解密動作的 256 位元 AES 金鑰。如需外部金鑰需求的詳細資訊,請參閱 外部金鑰存放區中 KMS 金鑰的要求

AWS KMS 無法建立、刪除或管理任何外部金鑰。您的密碼編譯金鑰材料永遠不會離開外部金鑰管理器。在外部金鑰存放區中建立 KMS 金鑰時,您需要提供外部金鑰的 ID (XksKeyId)。您無法變更與 KMS 金鑰相關聯的外部金鑰 ID,不過您的外部金鑰管理器可以輪換與外部金鑰 ID 相關聯的金鑰材料。

除了外部金鑰之外,外部金鑰存放區中的 KMS 金鑰也包含 AWS KMS 金鑰材料。受 KMS 金鑰保護的資料會先 AWS KMS 使用金 AWS KMS 鑰材料加密,然後再由外部金鑰管理員使用外部金鑰加密。此雙重加密程序可確保受 KMS 金鑰保護的密文始終至少與僅受 AWS KMS保護的密文一樣強。

許多密碼編譯金鑰具有不同類型的識別符。在外部金鑰存放區中建立 KMS 金鑰時,請提供外部金鑰存放區代理用來參照外部金鑰的外部金鑰 ID。如果使用錯誤的識別符,則您嘗試在外部金鑰存放區中建立 KMS 金鑰會失敗。

外部金鑰存放區代理

外部金鑰存放區 Proxy (「XKS Proxy」) 是一種客戶擁有且由客戶管理的軟體應用程式,可協調與外部金鑰管理員之間 AWS KMS 的所有通訊。它還將通用 AWS KMS 請求轉換為特定於供應商的外部密鑰管理器了解的格式。外部金鑰存放區需要外部金鑰存放區代理。每個外部金鑰存放區與一個外部金鑰存放區代理相關聯。

外部金鑰存放區代理

AWS KMS 無法建立、刪除或管理任何外部金鑰。您的密碼編譯金鑰材料永遠不會離開您的外部金鑰管理器。 AWS KMS 與外部密鑰管理器之間的所有通信都由外部密鑰存儲代理協調。 AWS KMS 將要求傳送至外部金鑰存放區 Proxy,並接收來自外部金鑰存放區 Proxy 的回應。外部金鑰存放區 Proxy 負責將要求從您的外部金鑰管理員傳送 AWS KMS 至您的外部金鑰管理員,並將回應從外部金鑰管理員傳送回 AWS KMS

您擁有並管理外部金鑰存放區的外部金鑰存放區代理,並負責其維護和操作。您可以根據開放原始碼外部金鑰存放區 Proxy API 規格來開發外部金鑰存放區 Proxy,以 AWS KMS 發佈或向廠商購買 Proxy 應用程式。您的外部金鑰存放區代理可能包含在您的外部金鑰管理器中。為了支援 Proxy 開發, AWS KMS 還提供範例外部金鑰存放區 Proxy (aws-kms-xks-proxy) 和測試用戶端 (xks-kms-xksproxy-test-client),以驗證您的外部金鑰存放區 Proxy 是否符合規格。

若要對其進行驗證 AWS KMS,Proxy 會使用伺服器端 TLS 憑證。若要對 Proxy 進行驗證, AWS KMS 請使用 Sigv4 Proxy 驗證認證將所有要求簽署至外部金鑰存放區 Proxy。選擇性地,您的代理可以啟用相互 TLS(MTL),以獲得僅接受來自 AWS KMS的請求的額外保證。

您的外部金鑰存放區代理必須支援 HTTP/1.1 或更新版本,以及 TLS 1.2 或更新版本,且至少包含下列其中一個加密套件:

  • TLS_AES_256_GCM_SHA384 (TLS 1.3)

  • TLS_CHACHA20_POLY1305_SHA256 (TLS 1.3)

    注意

    AWS GovCloud (US) Region 不支援 TLS_ 查查查 20_ 聚合 1305_SHA256。

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)

若要在外部金鑰存放區中建立和使用 KMS 金鑰,您必須首先將外部金鑰存放區連接至其外部金鑰存放區代理。您也可以視需求中斷外部金鑰存放區與其代理的連接。當您這麼做時,外部金鑰存放區中的所有 KMS 金鑰都變得無法使用;其無法用於任何加密操作。

外部金鑰存放區代理連接

外部金鑰儲存區 Proxy 連線 (「XKS Proxy 連線」) 描述了 AWS KMS 用來與外部金鑰存放區 Proxy 通訊的方法。

您可以在建立外部金鑰存放區時指定代理連接選項,其會成為外部金鑰存放區的屬性。您可以透過更新自訂金鑰存放區屬性來變更代理連接選項,但您必須確定外部金鑰存放區代理仍可存取相同的外部金鑰。

AWS KMS 支援下列連線選項:

  • 公用端點連線 — 透過網際網路 AWS KMS 將外部金鑰存放區 Proxy 的要求傳送至您控制的公用端點。此選項的建立和維護非常簡單,但可能無法滿足每個安裝的安全需求。

  • 虛擬私人雲端點服務連線 — AWS KMS 將請求傳送到您建立和維護的 Amazon Virtual Private Cloud 端 (Amazon VPC) 端點服務。您可以在 Amazon VPC 內託管外部金鑰存放區代理,或在外部託管外部金鑰存放區代理, AWS 並僅將 Amazon VPC 用於通訊。

如需有關外部金鑰存放區代理連接選項的詳細資訊,請參閱 選擇代理連接選項

外部金鑰存放區代理身分驗證憑證

若要對外部金鑰存放區 Proxy 進行驗證, AWS KMS 請使用簽章 V4 (SIGv4) 驗證認證,將所有要求簽署至外部金鑰存放區 Proxy。您可以在 Proxy 上建立並維護驗證認證,然後在建立外部存放區 AWS KMS 時向其提供此認證。

注意

AWS KMS 用於向 XKS 代理簽署請求的 Sigv4 認證與 AWS Identity and Access Management 您中的主體相關聯的任何 SIGv4 認證無關。 AWS 帳戶請勿針對外部金鑰存放區代理重複使用任何 IAM SigV4 憑證。

每個代理身分驗證憑證有兩部分。建立外部金鑰存放區或更新外部金鑰存放區的身分驗證憑證時,您必須同時提供這兩個部分。

  • 存取金鑰 ID:識別私密存取金鑰。您可以提供純文字形式的 ID。

  • 秘密存取金鑰:認證的秘密部分。 AWS KMS 在儲存憑證之前,先加密認證中的秘密存取金鑰。

您可以隨時編輯憑證設定,例如當您輸入錯誤的值時、變更代理上的憑證時或者代理輪換憑證時。如需有關外部金鑰存放區 Proxy AWS KMS 驗證的技術詳細資訊,請參閱 AWS KMS 外部金鑰存放區 Proxy API 規格中的證。

若要允許您輪換認證,而不會中斷外部金鑰存放區中使用 KMS 金鑰的認證,我們建議您至少支援兩個的外部金鑰存放區 Proxy 的有效驗證認證。 AWS 服務 AWS KMS這可確保當您為 AWS KMS提供新憑證時,先前的憑證可繼續運作。

為了協助您追蹤代理身份驗證登入資料的使用期 AWS KMS 限,請定義 Amazon CloudWatch 指標XksProxyCredentialAge。您可以使用此指標建立 CloudWatch 警示,在認證的年齡達到您建立的閾值時通知您。

為了更加確保外部金鑰存放區代理僅回應 AWS KMS,某些外部金鑰代理支援交互式 Transport Layer Security (mTLS)。如需詳細資訊,請參閱 mTLS 身份驗證 (選用)

代理 API

若要支援 AWS KMS 外部金鑰存放區,外部金鑰存放區 Proxy 必須依照AWS KMS 外部金鑰存放區 Proxy API 規格中所述實作必要的 Proxy API。這些代理 API 請求是 AWS KMS 發送給代理的唯一請求。雖然您永遠不會直接傳送這些請求,但了解其可能有助於您解決外部金鑰存放區或其代理可能出現的任何問題。例如,在外部金鑰存放區的 Amazon CloudWatch 指標中 AWS KMS 包含這些 API 呼叫的延遲和成功率相關資訊。如需詳細資訊,請參閱 監控外部金鑰存放區

下表列出並說明每個代理 API。它還包括觸發對代理 API 的調用的 AWS KMS 操作以及與代理 API 相關的任何 AWS KMS 操作異常。

代理 API 描述 相關 AWS KMS 業務
解密 AWS KMS 發送要解密的密文,以及要使用的外部密鑰的 ID。所需的加密演算法是 AES_GCM。 解密ReEncrypt
加密 AWS KMS 發送要加密的數據,以及要使用的外部密鑰的 ID。所需的加密演算法是 AES_GCM。 加密GenerateDataKeyGenerateDataKeyWithoutPlaintextReEncrypt
GetHealthStatus AWS KMS 請求有關代理和外部密鑰管理器狀態的信息。

每個外部金鑰管理器的狀態可以為以下其中一種。

  • Active:狀態良好;可以提供流量

  • Degraded:狀態不良,但可提供流量

  • Unavailable:狀態不良;不能提供流量

CreateCustomKeyStore(適用於公用端點連線),ConnectCustomKeyStore(適用於 VPC 端點服務連線)

如果所有外部金鑰管理器執行個體都是 Unavailable,則嘗試建立或連接金鑰存放區會失敗,且出現 XksProxyUriUnreachableException

GetKeyMetadata AWS KMS 要求與外部金鑰存放區中 KMS 金鑰相關聯之外部金鑰的相關資訊。

回應包括金鑰規格 (AES_256)、金鑰用法 ([ENCRYPT, DECRYPT]) 以及外部金鑰是否為 ENABLEDDISABLED

CreateKey

如果金鑰規格不是 AES_256,或金鑰用法不是 [ENCRYPT, DECRYPT],或狀態為 DISABLED,則 CreateKey 操作會失敗,且會出現 XksKeyInvalidConfigurationException

雙重加密

透過外部金鑰存放區中 KMS 金鑰加密的資料會加密兩次。首先,使用 KMS 金鑰特有的金 AWS KMS 鑰材料 AWS KMS 加密資料。然後,外部金鑰管理器使用外部金鑰對 AWS KMS加密的密文進行加密。此過程稱為雙重加密

雙重加密可確保由外部金鑰存放區中 KMS 金鑰加密的密文至少與使用標準 KMS 金鑰加密的密文一樣強。它還可 AWS KMS 以保護您從外部金鑰存放區 Proxy 傳輸過程中的純文字。使用雙重加密,您可以完全控制您的密文。如果您透過外部代理永久撤銷對外部金鑰的 AWS 存取權,則 AWS 中剩餘的任何密文都會被有效地加密銷毀。

對外部金鑰存放區中由 KMS 金鑰保護的資料進行雙重加密

若要啟用雙重加密,外部金鑰存放區中的每個 KMS 金鑰都有兩個密碼編譯備份金鑰:

雙重加密具有以下效果:

  • AWS KMS 在沒有透過外部金鑰存放區 Proxy 存取外部金鑰的情況下,無法解密由外部金鑰存放區中的 KMS 金鑰加密的任何加密文字。

  • 即使您擁有外部金鑰材料 AWS,也無法解密外部金鑰存放區中透過 KMS 金鑰加密的任何加密文字。

  • 您無法重新建立從外部金鑰存放區刪除的 KMS 金鑰,即使您擁有其外部金鑰材料。每個 KMS 金鑰都擁有包含在對稱密文中的唯一中繼資料。新的 KMS 金鑰無法解密由原始金鑰加密的密文,即使其使用相同的外部金鑰材料。

如需做法中的雙重加密範例,請參閱 外部金鑰存放區的運作方式

外部金鑰存放區的運作方式

您的外部金鑰存放區外部金鑰存放區代理外部金鑰管理器會共同運作,以保護您的 AWS 資源。以下程序描述了典型 AWS 服務 的加密工作流程,該服務使用由 KMS 金鑰保護的唯一資料金鑰對每個物件進行加密。在此情況下,您已選擇外部金鑰存放區中的 KMS 金鑰來保護物件。此範例顯示如何 AWS KMS 使用雙重加密來保護傳輸中的資料金鑰,並確保外部金鑰存放區中的 KMS 金鑰所產生的加密文字永遠至少與使用標準對稱 KMS 金鑰加密的加密文字一樣強度。 AWS KMS

每個實際 AWS 服務 集成使用的加密方法各 AWS KMS 不相同。如需詳細資訊,請參閱 AWS 服務 文件「安全性」一章中的「資料保護」主題。

外部金鑰存放區的運作方式
  1. 您可以將新物件加入至資 AWS 服務 源。若要加密物件,會將GenerateDataKey要求 AWS 服務 傳送至外部金鑰存放區中 AWS KMS 使用 KMS 金鑰。

  2. AWS KMS 產生 256 位元對稱資料金鑰,並準備透過外部金鑰存放區 Proxy 將純文字資料金鑰複本傳送至外部金鑰管理員。 AWS KMS 透過使用與外部金鑰存放區中 KMS 金鑰相關聯的金鑰材料加密純文字資料金AWS KMS 鑰,以開始雙重加密程序。

  3. AWS KMS 傳送加要求至與外部金鑰存放區相關聯的外部金鑰存放區 Proxy。要求包含要加密的資料金鑰加密文字,以及與 KMS 金鑰相關聯的外部金鑰識別碼。 AWS KMS 使用外部金鑰存放區 Proxy 的 Proxy 驗證認證來簽署要求。

    資料金鑰的純文字複本不會傳送至外部金鑰存放區代理。

  4. 外部金鑰存放區代理會驗證請求,然後將加密請求傳送至外部金鑰管理器。

    某些外部金鑰存放區代理也會實作選用的授權政策,只允許選取的主體在特定條件下執行操作。

  5. 您的外部金鑰管理器會使用指定的外部金鑰加密資料金鑰密文。外部金鑰管理器會將雙重加密的資料金鑰傳回至您的外部金鑰存放區代理,它會將其傳回 AWS KMS。

  6. AWS KMS 會將純文字資料金鑰和該資料金鑰的雙重加密副本傳回給。 AWS 服務

  7. 會 AWS 服務 使用純文字資料金鑰來加密資源物件、銷毀純文字資料金鑰,並將加密的資料金鑰與加密的物件一起儲存。

    有些人 AWS 服務 可能會快取純文字資料索引鍵以用於多個物件,或在資源使用時重複使用。如需詳細資訊,請參閱 無法使用的 KMS 金鑰如何影響資料金鑰

若要解密加密物件, AWS 服務 必須在「解密」要求 AWS KMS 中將加的資料金鑰傳回至。若要解密加密的資料金鑰, AWS KMS 必須使用外部金鑰的 ID 將加密的資料金鑰傳回外部金鑰存放區 Proxy。如果對外部金鑰存放區 Proxy 的解密要求因任何原因而失敗,則 AWS KMS 無法解密加密的資料金鑰,且 AWS 服務 無法解密加密的物件。