本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立KMS金鑰
您可以使用 CreateKey操作 AWS Management Console或 AWS::KMS::Key AWS CloudFormation 資源,在 或 AWS KMS keys 中建立 。在此過程中,您可以設定金鑰的KMS金鑰政策,您可以隨時變更。您也可以選取下列值來定義您建立的KMS金鑰類型。您無法在建立KMS金鑰後變更這些屬性。
- KMS 金鑰類型
-
金鑰類型是決定建立哪種類型密碼編譯金鑰的屬性。 AWS KMS 提供三種金鑰類型來保護資料:
-
進階加密標準 (AES) 對稱金鑰
在 Galois 計數器模式 (GCM) 模式下使用的 256 位元金鑰AES,可提供大小小於 4KB 的資料經過驗證的加密/解密。這是最常見的金鑰類型,用於保護應用程式中使用的其他資料加密金鑰 AWS 服務 ,以及代表您加密資料的方式。
-
RSA、橢圓曲線或 SM2(僅限中國區域) 非對稱金鑰
這些金鑰有多種大小,並支援許多演算法。它們可用於加密和解密、簽署和驗證,或根據演算法選擇衍生共用秘密操作。
-
用於執行雜湊型訊息驗證碼 (HMAC) 操作的對稱金鑰
這些金鑰是用於簽署和驗證操作的 256 位元金鑰。
KMS 金鑰無法以純文字從服務匯出。它們由 產生,且只能在 服務使用的硬體安全模組 (HSMs) 內使用。這是 的基本安全屬性 AWS KMS ,以確保金鑰不會遭到入侵。
-
- 金鑰用量
-
金鑰用途是決定該金鑰支援之密碼編譯操作的屬性。KMS 金鑰可以具有
ENCRYPT_DECRYPT
、SIGN_VERIFY
、GENERATE_VERIFY_MAC
或 的金鑰用量KEY_AGREEMENT
。每個KMS金鑰只能有一個金鑰用量。將KMS金鑰用於多種類型的操作,會讓這兩個操作的產品更容易受到攻擊。 - 金鑰規格
-
金鑰規格是一種代表金鑰密碼編譯組態的屬性。金鑰規格的含義與金鑰類型不同。
對於KMS金鑰,金鑰規格會決定KMS金鑰是對稱或非對稱。其也會決定其金鑰材料的類型,及其支援的演算法。
預設金鑰規格 SYMMETRIC_DEFAULT 代表 256 位元對稱加密金鑰。如需所有支援金鑰規格的詳細說明,請參閱 金鑰規格參考。
- 金鑰材料來源
-
金鑰材料來源是金鑰KMS屬性,可識別KMS金鑰中金鑰材料的來源。您可以在建立金鑰時選擇KMS金鑰材料來源,而且無法變更。金鑰材料的來源會影響KMS金鑰的安全性、耐久性、可用性、延遲和輸送量特性。
每個KMS金鑰都會在其中繼資料中包含其金鑰資料的參考。對稱加密金鑰的KMS金鑰材料來源可能會有所不同。您可以使用 AWS KMS 產生的金鑰材料、自訂金鑰存放區中產生的金鑰材料,或匯入您自己的金鑰材料。
根據預設,每個KMS金鑰都有唯一的金鑰材料。不過,您可以建立一組具有相同金鑰材料的多區域金鑰。
KMS 金鑰可以具有下列其中一個金鑰材料來源值:
AWS_KMS
、EXTERNAL
(匯入的金鑰材料 )、AWS_CLOUDHSM
(KMS 金鑰存放區中的 AWS CloudHSM 金鑰) 或EXTERNAL_KEY_STORE
( KMS外部金鑰存放區中的金鑰 )。
主題
建立KMS金鑰的許可
若要在主控台中或使用 建立KMS金鑰APIs,您必須在 IAM政策中擁有下列許可。盡可能使用條件金鑰以限制許可。例如,您可以使用IAM政策中的 km:KeySpec 條件金鑰,允許主體僅建立對稱加密金鑰。
如需建立金鑰之主體IAM的政策範例,請參閱 允許使用者建立KMS金鑰。
注意
授予主體管理標籤和別名的許可時,請務必謹慎。變更標記或別名可允許或拒絕客戶受管金鑰的許可。如需詳細資訊,請參閱 ABAC 適用於 AWS KMS。
-
kms:CreateKey 為必要項目。
-
kms:CreateAlias在 主控台中建立KMS金鑰所需的 ,每個新KMS金鑰都需要別名。
-
kms:TagResource在建立KMS金鑰時需要新增標籤。
-
iam:CreateServiceLinkedRole建立多區域主金鑰所需的 。如需詳細資訊,請參閱 控制對多區域金鑰的存取。
kms:PutKeyPolicy建立KMS金鑰不需要許可。kms:CreateKey
許可包含設定初始金鑰政策的許可。但是,您必須在建立金鑰時將此許可新增至KMS金鑰政策,以確保您可以控制對KMS金鑰的存取。替代方案是使用 BypassLockoutSafetyCheck 參數,不建議使用。
KMS 金鑰屬於建立金鑰 AWS 的帳戶。建立KMS金鑰IAM的使用者不被視為金鑰擁有者,而且他們沒有自動使用或管理所建立KMS金鑰的許可。如同任何其他主體,金鑰建立者需要透過金鑰政策、IAM政策或授予取得許可。不過,擁有 kms:CreateKey
許可的主體可以設定初始金鑰政策,並授予自己使用或管理金鑰的許可。
選擇要建立的KMS金鑰類型
您建立的KMS金鑰類型主要取決於您計劃如何使用KMS金鑰、您的安全需求和您的授權需求。金鑰的KMS金鑰類型和金鑰用量決定金鑰可執行哪些密碼編譯操作。每個KMS金鑰只有一個金鑰用量。將KMS金鑰用於多種類型的操作,會讓所有操作的產品更容易受到攻擊。
若要允許主體僅針對特定KMS金鑰使用量建立金鑰,請使用 km:KeyUsage 條件金鑰。您也可以使用 kms:KeyUsage
條件金鑰,允許主體根據KMS金鑰用量呼叫金鑰API的操作。例如,只有在KMS金鑰用量為 SIGN_ 時,您才能允許 停用金鑰VERIFY。
使用下列指引,根據使用案例判斷您需要的KMS金鑰類型。
- 加密和解密資料
-
針對大多數需要加密和解密資料的使用案例,請使用對稱KMS金鑰。 AWS KMS 使用的對稱加密演算法快速又有效率,並可確保資料的機密性和真實性。它支援使用其他已驗證資料 (AAD) 進行驗證加密,定義為加密內容 。這種類型的KMS金鑰需要加密資料的寄件者和收件人擁有有效的 AWS 憑證,才能呼叫 AWS KMS。
如果您的使用案例需要在 之外 AWS 由無法呼叫 的使用者加密 AWS KMS,非對稱KMS金鑰是不錯的選擇。您可以分發非對稱金鑰的公KMS有金鑰,以允許這些使用者加密資料。而且需要解密資料的應用程式可以使用 內非對稱金鑰的私有KMS金鑰 AWS KMS。
- 簽署訊息及驗證簽章
-
若要簽署訊息並驗證簽章,您必須使用非對稱KMS金鑰 。您可以使用KMS金鑰搭配代表RSA金鑰對、橢圓曲線 (ECC) 金鑰對或SM2金鑰對的金鑰規格 (僅限中國區域)。您選擇的金鑰規格取決於您要使用的簽署演算法。建議使用ECC金鑰對支援的ECDSA簽署演算法取代RSA簽署演算法。不過,您可能需要使用特定的金鑰規格和簽署演算法,以支援驗證 外部簽章的使用者 AWS。
- 使用非對稱金鑰對加密
-
若要使用非對稱金鑰對加密資料,您必須使用非對稱KMS金鑰搭配RSA金鑰規格或SM2金鑰規格 (僅限中國區域)。若要 AWS KMS 使用KMS金鑰對的公有金鑰加密 中的資料,請使用加密操作。您也可以下載公有金鑰,並與需要加密 外部資料的各方共用 AWS KMS。
當您下載非對稱金鑰的公有KMS金鑰時,您可以在 之外使用它 AWS KMS。但是,它不再受保護 中KMS金鑰的安全控制所約束 AWS KMS。例如,您不能使用 AWS KMS 金鑰政策或授予來控制公有金鑰的使用。您也無法控制金鑰是否僅用於使用 AWS KMS 支援的加密演算法進行加密和解密。如需詳細資訊,請參閱下載公有金鑰的特殊考量。
若要解密在 外部使用公有金鑰加密的資料 AWS KMS,請呼叫解密操作。如果資料是在公有金鑰下加密,且金鑰使用量為 的KMS金鑰,
Decrypt
則操作會失敗SIGN_VERIFY
。如果使用 AWS KMS 不支援您所選金鑰規格的演算法加密,也會失敗。如需金鑰規格和支援演算法的詳細資訊,請參閱 金鑰規格參考。為了避免這些錯誤,在 之外使用公有金鑰的任何人 AWS KMS 都必須存放金鑰組態。 AWS KMS 主控台和GetPublicKey回應提供您在共用公有金鑰時必須包含的資訊。
- Derive 共用秘密
-
若要衍生共用密碼,請使用具有 NIST建議的橢圓曲線或 SM2(僅限中國區域) 金鑰材料的KMS金鑰。 AWS KMS 使用橢圓曲線密碼編譯 Cofactor Diffie-Hellman Primitive
(ECDH),透過從橢圓曲線公有私有金鑰對衍生共用密碼,在兩個對之間建立金鑰協議。您可以使用 DeriveSharedSecret操作傳回的原始共用密碼,來衍生對稱金鑰,以加密和解密在兩方之間傳送的資料,或產生和驗證 HMACs. AWS KMS recommends,表示您在使用原始共用密碼衍生對稱金鑰時遵循NIST金鑰衍生的建議 。 - 產生並驗證HMAC程式碼
-
若要產生和驗證雜湊型訊息驗證碼,請使用 HMACKMS金鑰。當您在 中建立HMAC金鑰時 AWS KMS, 會 AWS KMS 建立並保護您的金鑰材料,並確保您使用正確的金鑰MAC演算法。HMAC 代碼也可以用作虛擬隨機數字,在某些情況下用於對稱簽署和權杖化。
HMAC KMS 金鑰是對稱金鑰。在主控台中建立HMACKMS金鑰時 AWS KMS ,請選擇
Symmetric
金鑰類型。 - 搭配 AWS 服務使用
-
若要建立 KMS金鑰,以便與與 AWS 整合的服務 AWS KMS搭配使用,請參閱 service. AWS services 的文件。加密資料的 需要對稱加密KMS金鑰 。
除了這些考量之外,對具有不同KMS金鑰規格的金鑰進行密碼編譯操作時,其價格和請求配額也不同。如需 AWS KMS
定價的資訊,請參閱 AWS Key Management Service 定價