AWS KMS 中的多區域金鑰 - AWS Key Management Service

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

AWS KMS 中的多區域金鑰

AWS KMS 支援多區域金鑰,這是在不同 AWS 區域 中的 AWS KMS keys,可以互換使用 – 如同在多個區域中有相同的金鑰。每組相關的多區域金鑰具有相同的金鑰材料金鑰 ID,因此您可以在一個 AWS 區域 中加密資料並不同的 AWS 區域 中將其解密,而無需重新加密或跨區域呼叫 AWS KMS。

與所有 KMS 金鑰一樣,多區域金鑰永遠不會讓 AWS KMS 處於未加密狀態。您可以建立對稱或非對稱多區域金鑰以進行加密或簽署,或是建立 HMAC 多區域金鑰以產生和驗證 HMAC 標籤,或是建立含有匯入金鑰資料或 AWS KMS 產生之金鑰資料的多區域金鑰。您必須獨立管理每個多區域金鑰,包括建立別名和標籤、設定其金鑰政策和授予,以及選擇性地將其啟用和停用。您可以在所有可以使用單一區域金鑰執行的密碼編譯操作中使用多區域金鑰。

多區域金鑰是靈活且強大的解決方案,適用於許多常見的資料安全案例。

災難復原

在備份與復原架構中,多區域金鑰可讓您在不中斷的情況下處理加密資料,即使在 AWS 區域 中斷的情形下。備份區域中維護的資料可以在備份區域中解密,備份區域中新加密的資料可以在主要區域 (當該區域還原時) 中解密。

全域資料管理

全球營運的企業需要全球分散式資料,這些資料可一致地跨 AWS 區域 提供。您可以在資料所在的所有區域中建立多區域金鑰,然後將金鑰當作單一區域金鑰使用,以避免跨區域呼叫的延遲,或是在每個區域中不同金鑰下重新加密資料的成本。

分散式簽署應用程式

需要跨區域簽章功能的應用程式可以使用多區域非對稱簽署金鑰,在不同 AWS 區域 中一致且重複地產生相同的數位簽章。

如果您將憑證鏈結與單一全域信任存放區 (針對單一根憑證授權機構 (CA)) 和根 CA 簽署的區域中繼 CA,則不需要多區域金鑰。不過,如果您的系統不支援中繼 CA (例如應用程式簽署),則可以使用多區域金鑰來為區域認證提供一致性。

跨越多個區域的主動-主動應用程式

某些工作負載和應用程式可以跨越主動-主動架構中的多個區域。對於這些應用程式,透過為針對可能跨區域邊界移動之資料的同時加密和解密操作提供相同的金鑰材料,多區域金鑰可以降低複雜性。

您可以將多區域金鑰與用戶端加密程式庫搭配使用,例如 AWS Encryption SDKDynamoDB 加密用戶端Amazon S3 用戶端加密。如需將多區域金鑰搭配 Amazon DynamoDB 全域資料表和 DynamoDB 加密用戶端使用的範例,請參閱 AWS 安全部落格中的使用 AWS KMS 多區域金鑰加密全域資料用戶端中的安全部落格。

用於靜態加密或數位簽章之與 AWS KMS 整合的 AWS 服務,目前將多區域金鑰視為單一區域金鑰。其可能會重新包裝或重新加密在區域之間移動的資料。例如,Amazon S3 跨區域複寫會在目的地區域的 KMS 金鑰下解密和重新加密資料,即使複寫受多區域金鑰保護的物件也一樣。

多區域金鑰不適用於全域。您建立多區域主要金鑰,然後將其複寫到您在 AWS 分割區內選取的區域中。然後,您可以獨立管理每個區域中的多區域金鑰。AWS 或 AWS KMS 不會代表您自動建立或複寫多區域金鑰到任何區域。AWS 受管金鑰 (AWS 服務在您的帳戶中為您建立的 KMS 金鑰) 永遠是單一區域金鑰。

您無法將現有的單一區域金鑰轉換為多區域金鑰。此設計可確保所有受現有單一區域金鑰保護的資料都維持相同的資料落地和資料主權屬性。

對於大部分的資料安全需求,區域資源的區域隔離和容錯能力讓標準 AWS KMS 單一區域金鑰成為最適合的解決方案。不過,當您需要跨多個區域加密或簽署用戶端應用程式中的資料時,多區域金鑰可能就是解決方案。

區域

在所有 AWS KMS 支援的 AWS 區域 中,多區域金鑰均受支援,除了中國 (北京) 和中國 (寧夏) 以外。

定價和配額

一組相關多區域金鑰中的每個金鑰都會計為一個 KMS 金鑰,用於定價和配額。AWS KMS 配額會針對帳戶的每個區域個別計算。在每個區域中使用和管理多區域金鑰會計為該區域的配額。

支援的 KMS 金鑰類型

您可以建立以下類型的多區域 KMS 金鑰:

  • 對稱加密 KMS 金鑰

  • 非對稱 KMS 金鑰

  • HMAC KMS 金鑰

  • 包含匯入金鑰資料的 KMS 金鑰

您無法在自訂金鑰存放區建立多區域金鑰。

多區域金鑰的安全考量

只有在需要時才能使用 AWS KMS 多區域金鑰。多區域金鑰為在 AWS 區域 之間移動加密資料的工作負載或需要跨區域存取的工作負載提供靈活且可擴展的解決方案。如果您必須跨區域共用、移動或備份受保護的資料,或者需要建立在不同區域中運作之應用程式的相同數位簽章,請考慮使用多區域金鑰。

不過,建立多區域金鑰的程序會在 AWS KMS 內跨 AWS 區域 邊界移動您的金鑰材料。由多區域金鑰產生的加密文字可能會由多個地理位置中的多個相關金鑰進行解密。區域隔離的服務和資源也有顯著的優勢。每個 AWS 區域 都是隔離的,且與其他區域各自獨立。區域提供容錯能力、穩定性和恢復能力,也可降低延遲。它們可讓您建立冗餘資源,這些資源會保持可用且不受其他區域運行中斷的影響。在 AWS KMS 中,它們還會確保每份加密文字只能透過一個金鑰進行解密。

多區域金鑰也會引發新的安全考量:

  • 使用多區域金鑰,控制存取和強制執行資料安全政策會比較複雜。您需要確保會在多個隔離區域的金鑰上對政策進行一致地稽核。而且您需要使用政策來強制執行邊界,而不是依賴單獨的金鑰。

    例如,您需要針對資料設定政策條件,以防止一個區域的薪資團隊能夠讀取不同區域的薪資資料。此外,您必須使用存取控制來防止出現以下案例:一個區域中的多區域金鑰保護一個租用戶的資料,而另一個區域中的相關多區域金鑰保護不同租用戶的資料。

  • 跨區域稽核金鑰也比較複雜。使用多區域索引鍵,您需要檢查和協調多個區域的稽核活動,以完全了解受保護資料的金鑰活動。

  • 符合資料落地規定可能會更加複雜。透過隔離區域,您可以確保資料落地和資料主權的合規性。指定區域中的 KMS 金鑰只能解密該區域中的敏感資料。在一個區域中加密的資料可以在任何其他區域中保持處於完全保護且無法存取的狀態。

    若要使用多區域金鑰驗證資料落地和資料主權,您需要實作存取政策並編譯跨多個區域編譯 AWS CloudTrail 活動。

為了讓您更輕鬆地管理多區域金鑰的存取控制,複寫多區域金鑰 (kms: ReplicateKey) 的權限與建立金鑰的標準權限 (kms: CreateKey) 不同。另外,AWS KMS 支援多個區域金鑰的政策條件,包括 kms:MultiRegion,以允許或拒絕建立、使用或管理多區域金鑰和 kms:ReplicaRegion 的許可,將區域限制為可以複寫多區域金鑰的區域。如需詳細資訊,請參閱 控制對多區域金鑰的存取

多區域金鑰的運作方式

您首先在 AWS KMS 支援的 AWS 區域 中建立對稱或非對稱多區域主要金鑰,例如美國東部 (維吉尼亞北部)。只有在建立金鑰時,您才會決定是單一區域金鑰還是多區域金鑰;之後就無法變更此屬性。與任何 KMS 金鑰一樣,您可以設定多區域金鑰的金鑰政策,並建立授予,以及新增分類和授權的別名和標籤。(這些是獨立屬性,並未與其他金鑰共用或同步。) 您可以在密碼編譯操作中使用多區域主要金鑰進行加密或簽署。

您可以在主AWS KMS控台中建立多區域主索引鍵,或使用 CreateKeyAPI 並將MultiRegion參數設定為true。請注意,多區域金鑰具有開頭為 mrk- 的獨特金鑰 ID。您可以使用 mrk- 字首,以程式設計方式識別 MRK。

如果選擇,則您可以將多區域主要金鑰複寫為相同 AWS 分割區中的一個或多個不同 AWS 區域,例如歐洲 (愛爾蘭)。如此操作時,AWS KMS 會在具有與主要金鑰相同之金鑰 ID 和其他共用屬性的指定區域中建立複本金鑰。然後,它會安全地跨越區域邊界傳輸金鑰材料,並將其與目的地區域中的新 KMS 金鑰相關聯,全部在 AWS KMS 範圍內。其結果是兩個相關多區域金鑰 (主要金鑰和複本金鑰) 可以互換使用。

您可以在AWS KMS主控台或使用 ReplicateKeyAPI 建立多區域複本金鑰

由此產生的多區域複本金鑰是功能齊全的 KMS 金鑰,具有與主要金鑰相同的共用屬性。在所有其他方面,它是獨立的 KMS 金鑰,具有自己的描述、金鑰政策、授予、別名和標籤。啟用或停用多區域金鑰不會影響相關的多區域金鑰。您可以在密碼編譯操作中獨立使用主要金鑰和複本金鑰,或協調其使用。例如,您可以使用美國東部 (維吉尼亞北部) 區域的主要金鑰來加密資料、將資料移至歐洲 (愛爾蘭) 區域,然後使用複本金鑰來解密資料。

相關的多區域金鑰具有相同的金鑰 ID。其金鑰 ARN (Amazon Resource Name) 僅在區域字段中不同。例如,多區域主要金鑰和複本金鑰可能具有下列範例金鑰 ARN。金鑰 ID (金鑰 ARN 中的最後一個元素) 是相同的。兩個金鑰都有多區域金鑰的獨特金鑰 ID,開頭為 mrk-

Primary key: arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab Replica key: arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab

具有相同的金鑰 ID 才能交互操作。加密時,AWS KMS 會將 KMS 金鑰的金鑰 ID 繫結至加密文字,因此只能使用該 KMS 金鑰或具有相同金鑰 ID 的 KMS 金鑰來解密加密文字。這項功能也讓相關的多區域金鑰易於識別,並且可以更輕鬆地對其進行互換使用。例如,在應用程式中使用時,您可以透過其共用金鑰 ID 來引用相關的多區域金鑰。然後,如有必要,請指定區域或 ARN 來區分這些金鑰。

您的資料需要變更時,您可以將主要金鑰複寫至位於相同分割區中的其他 AWS 區域,例如美國西部 (奧勒岡) 和亞太區域 (雪梨)。其結果是具有相同金鑰材料和金鑰 ID 的四個相關多區域金鑰,如下圖所示。您可以獨立管理金鑰。您可以獨立或以協調的方式使用這些金鑰。例如,您可以使用亞太區域 (雪梨) 中的複本金鑰來加密資料、將資料移至美國西部 (奧勒岡),然後使用美國西部 (奧勒岡) 的複本金鑰來解密資料。


                多區域金鑰中的主要金鑰和複本金鑰

多區域金鑰的其他考量包括下列各項。

同步共用屬性 – 如果多區域金鑰的共用屬性發生變更,AWS KMS 會自動將主要金鑰的變更同步至其所有複本金鑰。您無法請求或強制執行共用屬性同步。AWS KMS 會為您偵測並同步所有變更。不過,您可以使用 CloudTrail 記錄檔中的SynchronizeMultiRegionKey事件來稽核同步處理。

例如,如果您在對稱多區域主要金鑰上啟用自動金鑰輪換,則 AWS KMS 會將該設定複製到其所有複本金鑰。輪換金鑰材料時,所有相關多區域金鑰之間的輪換會同步,因此其仍然具有相同的當前金鑰材料,並存取所有舊版的金鑰材料。如果您建立新的複本金鑰,則該金鑰具有與所有相關多區域金鑰相同的當前金鑰材料,並可存取所有舊版金鑰材料。如需詳細資訊,請參閱 輪換多區域金鑰

變更主要金鑰 – 每組多區域金鑰必須只有一個主要金鑰。主要金鑰是唯一可以複寫的金鑰。它也是其複本金鑰共用屬性的來源。但是您可以將主要金鑰變更為複本,並將其中一個複本金鑰升級為主要金鑰。您可以這樣做,以便您可以從特定區域刪除多區域主要金鑰,或者在更接近專案管理員的區域找到主要金鑰。如需詳細資訊,請參閱 更新主要區域

刪除多區域金鑰 – 與所有 KMS 金鑰一樣,您必須在 AWS KMS 將其刪除之前排程刪除多區域金鑰。當金鑰正在等待刪除時,您無法在任何密碼編譯操作中使用金鑰。然而,AWS KMS 不會刪除多區域主要金鑰,直到刪除其所有複本金鑰為止。如需詳細資訊,請參閱 刪除多區域金鑰

概念

下列術語和概念與多區域金鑰搭配使用。

多區域金鑰

多區域金鑰是在不同 AWS 區域 中具有相同金鑰 ID 和金鑰材料 (以及其他共用屬性) 的一組 KMS 金鑰之一。每個多區域金鑰都是功能完善的 KMS 金鑰,可完全獨立於其相關的多區域金鑰之外使用。由於所有相關多區域金鑰都具有相同的金鑰 ID 和金鑰材料,所以這些金鑰是互通的,即任何 AWS 區域 中任何相關的多區域金鑰都可以透過任何其他相關的多區域金鑰解密已加密的文字。

您在建立 KMS 金鑰時會設定其多區域屬性。您無法在現有金鑰上變更多區域屬性。您無法將單一區域金鑰轉換為多區域金鑰,或將多區域金鑰轉換為單一區域金鑰。若要將現有的工作負載移至多區域案例,您必須重新加密資料,或使用新的多區域金鑰建立新的簽章。

多區域金鑰可以是對稱或非對稱的,其可以使用 AWS KMS 金鑰材料或匯入的金鑰材料。您無法在自訂金鑰存放區建立多區域金鑰。

在一組相關的多區域金鑰中,任何時候都只有一個主要金鑰。您可以在其他 AWS 區域 建立該主要金鑰的複本金鑰。您也可以更新主要區域,它會將主要金鑰變更為複本金鑰,並將指定的複本金鑰變更為主要金鑰。不過,您在每個 AWS 區域 只能維護一個主要金鑰或複本金鑰。所有區域必須在相同的 AWS 分割區中。

您可以在相同或不同的 AWS 區域 中擁有多組相關的多區域金鑰。雖然相關的多區域金鑰可互通操作,但不相關的多區域金鑰無法互通操作。

主索引鍵

多區域主要金鑰是 KMS 金鑰,可以複寫到相同分割區的其他 AWS 區域 中。每組多區域金鑰只有一個主要金鑰。

主要金鑰與複本金鑰有下列幾點不同之處:

不過,主要和複本金鑰在任何密碼編譯屬性中都沒有差異。您可以互換使用主要金鑰及其複本金鑰。

您不需要複寫主要金鑰。您可以像使用任何 KMS 金鑰一樣使用它,並在有用時對其進行複寫。不過,由於多區域金鑰與單一區域金鑰具有不同的安全屬性,建議您只在計劃複寫時建立多區域金鑰。

複本金鑰

多區域複本金鑰是 KMS 金鑰,具有與其主要金鑰和相關複本金鑰相同的金鑰 ID金鑰材料,但存在於不同的 AWS 區域 中。

複本金鑰是功能完善的 KMS 金鑰,具有自己的金鑰政策、授予、別名、標籤和其他屬性。它不是主要金鑰或任何其他金鑰的指標複本。您可以使用複本金鑰,即使其主要金鑰和所有相關的複本金鑰已停用。您也可以將複本金鑰轉換為主要金鑰,將主要金鑰轉換為複本金鑰。建立後,複本金鑰僅依賴其主要金鑰進行金鑰輪換更新主要區域

主要和複本金鑰在任何密碼編譯屬性中都沒有差異。您可以互換使用主要金鑰及其複本金鑰。透過主要金鑰或複本金鑰加密的資料可以透過相同的金鑰或任何相關的主要金鑰或複本金鑰進行解密。

複寫

您可以將多區域主要金鑰複寫至相同分割區的不同 AWS 區域 中。如此操作時,AWS KMS 會在具有與主要金鑰相同之金鑰 ID 和其他共用屬性的指定區域中建立多區域複本金鑰。然後,它會安全地跨越區域邊界傳輸金鑰材料,並將其與新複本金鑰相關聯,全部在 AWS KMS 範圍內。

共用屬性

共用屬性是與其複本金鑰共用之多區域主要金鑰的屬性。AWS KMS 會建立具有與這些主要金鑰相同之共用屬性值的複本金鑰。然後,它會定期將主要金鑰的共用屬性值同步至其複本金鑰。您無法在複本金鑰上設定這些屬性。

以下是多區域金鑰的共用屬性。

您也可以將相關多區域金鑰的主要和複本指定視為共用屬性。當您建立新的複本金鑰更新主要金鑰時,AWS KMS 會將變更同步至所有相關的多區域金鑰。完成這些變更後,所有相關的多區域金鑰都會準確地列出其主要金鑰和複本金鑰。

多區域金鑰的所有其他屬性都是獨立屬性,包括描述、金鑰政策授予已啟用和已停用的金鑰狀態別名,以及標籤。您可以在所有相關的多區域金鑰上為這些屬性設定相同的值,但是如果您變更獨立屬性的值,則 AWS KMS 不會將其同步。

您可以追蹤多區域金鑰之共用屬性的同步。在記AWS CloudTrail錄檔中尋找SynchronizeMultiRegionKey事件。