【问题标题】:A query on repeated usage of AWS KMS Key programmatically以编程方式重复使用 AWS KMS 密钥的查询
【发布时间】:2023-02-22 18:10:31
【问题描述】:

我们有一个 Java 后端程序,每分钟处理数千个请求,其中涉及通过 AWS KMS 进行的加密和解密。我们要避免的是以编程方式多次调用 AWS KMS,这可能会对性能产生相当大的影响。

我们最初想到的是在启动时检索 AWSKMS 对象,然后将其存储在内存中,并使用同一对象进行所有后续的加密和解密。这行得通吗?是这样的:

AWSKMS kmsClient = AWSKMSClientBuilder.standard().withRegion(Regions.fromName(region)).withCredentials(new ProfileCredentialsProvider(filePath, profileName)).build();

//store kmsClient in memory (or as a static param in a parent class)

//for succeeding encrypts and decrypts, use this same object

AWSKMS kmsClient = ....retrieve from memory
EncryptRequest req = new EncryptRequest()
        .withKeyId(keyId)
        .withPlaintext(ByteBuffer.wrap(key.getBytes()));
EncryptResult res = kmsClient.encrypt(req);

我们尝试寻找这样的实现,但还没有找到。这行得通吗?

我们正在使用 aws sdk 版本 1.12.17

【问题讨论】:

    标签: encryption aws-sdk amazon-kms aws-sdk-java


    【解决方案1】:

    解密操作只能通过API来执行,但是可以缓存this guide后面的data key。

    【讨论】:

      猜你喜欢
      • 2019-11-18
      • 2018-03-01
      • 2022-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多