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

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

外部金鑰存放區

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

外部金鑰存放區自訂金鑰存放區,由您在 之外擁有和管理的外部金鑰管理員提供支援 AWS。您的外部金鑰管理器可以是實體或虛擬硬體安全模組 (HSMs),或任何能夠產生和使用密碼編譯金鑰的硬體型或軟體型系統。在外部KMS金鑰存放區中使用金鑰的加密和解密操作,是由您的外部金鑰管理員使用密碼編譯金鑰材料執行,此功能稱為保留您自己的金鑰 (HYOKs)。

AWS KMS 永遠不會直接與您的外部金鑰管理員互動,也無法建立、檢視、管理或刪除您的金鑰。相反地, 只會與您提供的外部金鑰存放區代理 (XKS 代理) 軟體 AWS KMS 互動。您的外部金鑰存放區代理會介導 AWS KMS 與外部金鑰管理器之間的所有通訊。它會將所有請求從 傳輸 AWS KMS 到您的外部金鑰管理器,並將回應從外部金鑰管理器傳輸回 AWS KMS。外部金鑰存放區代理也會將 的一般請求轉譯 AWS KMS 為外部金鑰管理員可以了解的廠商特定格式,可讓您將外部金鑰存放區與來自各種廠商的金鑰管理員搭配使用。

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

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

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

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

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

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

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

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

  • 您需要在內部部署金鑰管理器或 AWS 控制範圍之外的金鑰管理器中使用密碼編譯金鑰。

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

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

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

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

共同的責任模型

標準KMS金鑰使用在HSMs AWS KMS 擁有和管理的 中產生和使用的金鑰材料。您可以在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金鑰存放區中的金鑰的方式與管理其他客戶受管金鑰的方式大致相同,包括設定存取控制政策和監控金鑰使用 。您可以使用相同APIs參數來請求密碼編譯操作,並在您用於任何KMS金鑰的外部金鑰存放區中使用KMS金鑰。定價也與標準KMS金鑰相同。如需詳細資訊,請參閱 KMS 外部金鑰存放區中的金鑰AWS Key Management Service 定價

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

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

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

  • 您可以針對來自 的所有請求 AWS KMS ,實作對外部金鑰存放區代理的獨立授權

  • 您可以監控、稽核和記錄外部金鑰存放區代理的所有操作,以及與 AWS KMS 請求相關的外部金鑰管理器的所有操作。

從何處開始?

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

配額

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

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

區域

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

除了中國 (北京) 和中國 (寧夏) 以外,所有 AWS KMS AWS 區域 都支援外部金鑰存放區。

不支援的功能

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

進一步了解

外部金鑰存放區概念

了解外部金鑰存放區使用的基本術語和概念。

外部金鑰存放區

外部金鑰存放區是由外部金鑰管理員支援的 AWS KMS 自訂金鑰存放區 AWS ,其位於您擁有和管理的外部。外部KMS金鑰存放區中的每個金鑰都會與外部金鑰管理員中的外部金鑰建立關聯。當您在外部KMS金鑰存放區中使用金鑰進行加密或解密時,操作會在外部金鑰管理器中使用外部金鑰執行,該金鑰管理程式稱為保留您自己的金鑰 (HYOK)。此功能專為需要在其外部金鑰管理器中維護密碼編譯金鑰的組織而設計。

外部金鑰存放區可確保保護您 AWS 資源的密碼編譯金鑰和操作會保留在您的外部金鑰管理器中。 會向您的外部金鑰管理員 AWS KMS 傳送加密和解密資料的請求,但 AWS KMS 無法建立、刪除或管理任何外部金鑰。從 AWS KMS 向外部金鑰管理器提出的所有請求,都是由您提供、擁有和管理的外部金鑰存放區代理軟體元件所介導。

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金鑰存放區中建立金鑰會失敗。

外部金鑰存放區代理

外部金鑰存放區代理 ("XKS proxy") 是客戶擁有和客戶管理的軟體應用程式,可介導 AWS KMS 和外部金鑰管理器之間的所有通訊。它也會將一般 AWS KMS 請求轉譯為廠商特定的外部金鑰管理器所了解的格式。外部金鑰存放區需要外部金鑰存放區代理。每個外部金鑰存放區與一個外部金鑰存放區代理相關聯。

外部金鑰存放區代理

AWS KMS 無法建立、刪除或管理任何外部金鑰。您的密碼編譯金鑰材料永遠不會離開您的外部金鑰管理器。 AWS KMS 與外部金鑰管理器之間的所有通訊都由外部金鑰存放區代理所介導。 AWS KMS 會將請求傳送至外部金鑰存放區代理,並接收外部金鑰存放區代理的回應。外部金鑰存放區代理負責將請求從 傳輸 AWS KMS 到您的外部金鑰管理員,以及將回應從外部金鑰管理員傳輸回 AWS KMS

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

若要對 進行身分驗證 AWS KMS,代理會使用伺服器端TLS憑證。若要對您的代理進行身分驗證, 會使用 SigV4 代理身分驗證憑證 將所有請求 AWS KMS 簽署至外部金鑰存放區代理。或者,您的代理可以啟用相互 TLS(m TLS),以額外確保只接受來自 的請求 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_CHACHA20_POLY1305_SHA256。

  • TLS_ECDHE_RSA_WITHAES_256_GCM_SHA384 (TLS 1.2)

  • TLS_ECDHE_ECDSA_WITHAES__256_GCM_SHA384 (TLS 1.2)

若要在外部KMS金鑰存放區中建立和使用金鑰,您必須先將外部金鑰存放區連接至其外部金鑰存放區代理。您也可以視需求中斷外部金鑰存放區與其代理的連接。執行此操作時,外部KMS金鑰存放區中的所有金鑰都會變成無法使用的 ;這些金鑰無法用於任何密碼編譯操作。

外部金鑰存放區代理連接

外部金鑰存放區代理連線 ("XKS 代理連線") 描述 AWS KMS 了用於與外部金鑰存放區代理通訊的方法。

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

AWS KMS 支援下列連線選項:

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

  • VPC 端點服務連線:將請求 AWS KMS 傳送至您建立和維護的 Amazon Virtual Private Cloud (AmazonVPC) 端點服務。您可以在 Amazon 內部託管外部金鑰存放區代理VPC,或在 外部託管外部金鑰存放區代理, AWS 並VPC僅使用 Amazon 進行通訊。

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

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

若要對您的外部金鑰存放區代理進行身分驗證, 會使用 Signature V4 (SigV4) 身分驗證憑證,將所有請求 AWS KMS 簽署至您的外部金鑰存放區代理。您可以在代理上建立和維護身分驗證憑證,然後在建立外部存放區 AWS KMS 時將此憑證提供給 。

注意

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

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

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

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

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

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

為了協助您追蹤代理身分驗證憑證的時效, AWS KMS 會定義 Amazon CloudWatch 指標 XksProxyCredentialAge。您可以使用此指標來建立 CloudWatch 警示,以便在憑證的期限達到您建立的閾值時通知您。

為了提供額外的保證,確保您的外部金鑰存放區代理僅回應 AWS KMS,某些外部金鑰代理支援相互傳輸層安全 (m TLS)。如需詳細資訊,請參閱 mTLS 身分驗證 (選用)

Proxy APIs

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

下表列出並說明每個代理 APIs。它還包括觸發對代理的呼叫 AWS KMS 的操作,API以及與代理相關的任何 AWS KMS 操作例外狀況API。

Proxy 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金鑰存放區中由金鑰加密的資料會加密兩次。首先, 會使用金鑰特有的 AWS KMS 金鑰材料來 AWS KMS 加密資料KMS。然後,外部金鑰管理器使用外部金鑰對 AWS KMS加密的密文進行加密。此過程稱為雙重加密

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

雙重加密外部KMS金鑰存放區中受金鑰保護的資料

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

  • AWS KMS 金鑰的唯一KMS金鑰材料。此金鑰材料會產生,且僅用於 AWS KMS FIPS 140-2 安全層級 3 認證的硬體安全模組 (HSMs)。

  • 外部金鑰管理器中的外部金鑰

雙重加密具有以下效果:

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

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

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

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

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

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

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

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

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

  3. AWS KMS 會將加密請求傳送至與外部金鑰存放區相關聯的外部金鑰存放區代理。請求包含要加密的資料金鑰密碼文字,以及與 KMS key.signs 相關聯的外部金鑰 ID。 會使用外部金鑰存放區代理的代理身分驗證憑證來 AWS KMS 簽署請求。

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

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

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

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

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

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

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

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