0

我们正在尝试使用基于配置文件的凭据设置在本地测试解密登录。我KMSMasterKeyProvider.withCredentialsProfileCredentialsProvider. 在这样做的过程中,我意识到aws-encryption-sdk-java 2.3.3版本内部使用aws-java-sdk 1.x版本。这是一种僵局,因为我们已经在aws-java-sdk 2.x

关于我们如何克服这个问题的任何建议?有趣的是,亚马逊仍然没有将 aws 加密 SDK 完全迁移到2.x.

4

1 回答 1

1

适用于 Java 的AWS 加密开发工具包 不是适用于 Java的 AWS 开发工具包的一部分。1.x2.x都不是。它们有不同的发布周期。因此,2.3.3AWS Encryption SDK for Java 的版本并不意味着您使用的是 AWS SDK for Java 2.x。

即使在自述文件中,他们也说:

您不需要 Amazon Web Services (AWS) 账户即可使用 AWS 加密开发工具包,但某些示例代码需要 AWS 账户、AWS KMS 密钥和适用于 Java 1.x 的 AWS 开发工具包。(适用于 Java 的 AWS 加密开发工具包不支持适用于 Java 的 AWS 开发工具包 2.x。)

文档重复说:

先决条件

在安装适用于 Java 的 AWS 加密开发工具包之前,请确保您具有以下先决条件。

…</p>

  • 适用于 Java 的 AWS 开发工具包(可选)

    适用于 Java 的 AWS 加密开发工具包不需要适用于 Java 的 AWS 开发工具包。 但是,AWS SDK for Java 1.x需要使用AWS Key Management Service (AWS KMS) 作为主密钥提供程序。本指南中 的一些Java 代码示例 也需要它。适用于 Java 的 AWS 加密开发工具包仅支持适用于 Java 的 AWS 开发工具包的 1.x 版本。

    要安装适用于 Java 1.x 的 AWS 开发工具包,请使用 Apache Maven。要将整个 AWS SDK for Java作为依赖项导入,请在您的pom.xml文件中声明它。要仅为 AWS KMS 模块创建依赖项,请按照指定特定模块artifactId的说明进行操作,并将aws-java-sdk-kms.

唉,您别无选择,只能使用 AWS SDK for Java 1.x。但这不应该是死锁或冲突:1.x并且2.x使用不同的包。

于 2022-02-11T17:29:55.743 回答