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 鍵控

KMSMasterKey ( Java)

KMSMasterKeyProvider ( Java)

KMSMasterKey (Python)

KMSMasterKeyProvider (Python)

注意

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

AWS KMS 階層式鍵控

受下列程式設計語言和版本支援:

  • 3.x 版 適用於 JAVA 的 AWS Encryption SDK

  • AWS Encryption SDK 適用於 的 4.x 版。NET

  • 4.x 版 適用於 Python 的 AWS Encryption SDK,與選用的加密材料提供者程式庫 (MPL) 相依性搭配使用時。

AWS KMS ECDH 鍵控

受下列程式設計語言和版本支援:

  • 3.x 版 適用於 JAVA 的 AWS Encryption SDK

  • AWS Encryption SDK 適用於 的 4.x 版。NET

  • 4.x 版 適用於 Python 的 AWS Encryption SDK,與選用的加密材料提供者程式庫 (MPL) 相依性搭配使用時。

原始AES鍵控

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

JceMasterKey ( Java)

RawMasterKey (Python)

原始RSA鍵控

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

JceMasterKey ( Java)

RawMasterKey (Python)

注意

原始RSA金鑰環不支援非對稱KMS金鑰。如果您想要使用非對稱RSAKMS金鑰, AWS Encryption SDK 適用於 的 4.NETx 版。 支援使用對稱加密 (SYMMETRIC_DEFAULT) 或非對稱 RSA 的 AWS KMS 金鑰環 AWS KMS keys。

原始ECDH鍵控

受下列程式設計語言和版本支援:

  • 3.x 版 適用於 JAVA 的 AWS Encryption SDK

  • AWS Encryption SDK 適用於 的 4.x 版。NET

  • 4.x 版 適用於 Python 的 AWS Encryption SDK,與選用的加密材料提供者程式庫 (MPL) 相依性搭配使用時。