Keyring 相容性 - AWS Encryption SDK

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

Keyring 相容性

雖然不同的語言實作AWS Encryption SDK有一些架構上的差異,但它們完全相容,但會受到語言限制的限制。您可以使用一種語言實現來加密數據,並使用任何其他語言實現對其進行解密。但是,您必須使用相同或對應的包裝金鑰來加密和解密資料金鑰。如需語言限制的相關資訊,請參閱有關每個語言實作的主題,例如 適用於 JavaScript 的 AWS Encryption SDK 主題中的 適用於 JavaScript 的 AWS Encryption SDK 的相容性

加密金鑰圈的不同需求

在除了以外的AWS Encryption SDK語言實作中適用於 C 的 AWS Encryption SDK,加密金鑰環 (或多重金鑰環) 或主要金鑰提供者中的所有包裝金鑰都必須能夠加密資料金鑰。如果有任何包裝金鑰無法加密,則加密方法會失敗。因此,呼叫者必須擁有金鑰環中所有金鑰的必要權限。如果您單獨使用探索金鑰環加密資料,或在多重金鑰環中加密資料,則加密作業會失敗。

例外情況是適用於 C 的 AWS Encryption SDK,加密作業會忽略標準探索金鑰環,但如果您單獨或在多重金鑰環中指定多區域探索金鑰環,則會失敗。

相容 Keyring 和主金鑰提供者

下表顯示哪些主要金鑰和主要金鑰提供者與提AWS Encryption SDK供的金鑰圈相容。任何由於語言限制而導致的輕微不相容,將在語言實作的相關主題中說明。

鑰匙圈: 主要金鑰提供者:
AWS KMS鑰匙圈

爪哇 MasterKey

爪哇 MasterKeyProvider

Python MasterKey

Python MasterKeyProvider

注意

適用於 Python 的 AWS Encryption SDK和適用於 JAVA 的 AWS Encryption SDK不包含等同於AWS KMS地區探索金鑰圈的主金鑰或主要金鑰提供者。

AWS KMS分層鑰匙圈 僅適用於版本 4。 AWS Encryption SDK適用於 .NET 和版本 3 的 x。 的 x 的適用於 JAVA 的 AWS Encryption SDK。
原始 AES keyring

搭配對稱加密金鑰使用時:

JceMasterKey(爪哇)

RawMasterKey(Python)

原始 RSA keyring

搭配非對稱加密金鑰使用時:

JceMasterKey(爪哇)

RawMasterKey(Python)

注意

原始 RSA 金鑰圈不支援非對稱 KMS 金鑰。如果您想要使用非對稱的 RSA KMS 金鑰,請參閱第 4 版。 .NET 的 AWS Encryption SDKx 支援使用對稱加密 (SYMMETRIC_DEFAULT) 或非對稱 RSA 的AWS KMS金鑰圈。AWS KMS keys