0

当我使用跟随演示加密密钥材料时,我在 AwsKmsClient().getAead() 方法中得到了 NullPointerException。

String masterKeyUri = "aws-kms://arn:aws:kms:us-east-1:007084425826:key/84a65985-f868-4bfc-83c2-366618acf147";
KeysetHandle keysetHandle = KeysetHandle.read(
        JsonKeysetReader.withFile(new File(keysetFilename)),
        new AwsKmsClient().getAead(masterKeyUri));

我调试并发现 AwsKmsClientthis.client中的 AWSKMS client() is null.

public Aead getAead(String uri) throws GeneralSecurityException {
        if (this.keyUri != null && !this.keyUri.equals(uri)) {
            throw new GeneralSecurityException(String.format("this client is bound to %s, cannot load keys bound to %s", this.keyUri, uri));
        } else {
            return new AwsKmsAead(this.client, Validators.validateKmsKeyUriAndRemovePrefix("aws-kms://", uri));
        }
    }

你知道如何处理这个问题吗?或者如何正确使用 AWS KMS?提前致谢。

4

1 回答 1

0

抱歉回复慢。您似乎忘记添加凭据?

请试试这个,让我知道它是否有效:

String masterKeyUri = "aws-kms://arn:aws:kms:us-east-1:007084425826:key/84a65985-f868-4bfc-83c2-366618acf147";
KeysetHandle keysetHandle = KeysetHandle.read(
        JsonKeysetReader.withFile(new File(keysetFilename)),
        new AwsKmsClient().withDefaultCredentials().getAead(masterKeyUri))

不过 API 可以改进。我会看看如何做到这一点。

于 2019-01-17T23:15:17.427 回答