- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 awssdk v2:https://sdk.amazonaws.com/java/api/latest/
我想使用客户管理的 KMS key 将对象放入 S3 中进行静态加密,我使用 sse-c 来实现此目的。然而,它似乎总是默认使用 AWS 托管 key ,而不是客户托管 key 。
以下是我的代码:
PutObjectRequest putObjectRequest =
PutObjectRequest.builder()
.bucket(bucket)
.key(key)
.serverSideEncryption(ServerSideEncryption.AWS_KMS)
.ssekmsKeyId(this.s3KmsKeyId) // my key alias
.build();
s3Client.putObject(putObjectRequest, RequestBody.fromString(data)); // data = some string value
我正在使用PutObjectRequest配置我的请求和 S3Client将其发送到 S3。
由于 key 设置为旋转,我无法使用 arn 或 keyId
本身。我似乎也找不到如何使用此 sdk 实现此目的的示例。
最佳答案
为了能够从 KMS 检索 KMS key ID,您需要使用 KmsClient 。 sseKmsKeyId
不会接受别名,因为它无法使用别名计算出 key ID。
您可以执行以下操作:
KmsClient kmsClient = KmsClient.builder().build();
DescribeKeyRequest req = DescribeKeyRequest.builder().keyId("alias/your_kms_alias").build();
DescribeKeyResponse res = kmsClient.describeKey(req);
// See https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html
// For the response you will get back from DescribeKey
// Then create the request to S3
PutObjectRequest putObjectRequest =
PutObjectRequest.builder()
.bucket(bucket)
.key(key)
.serverSideEncryption(ServerSideEncryption.AWS_KMS)
.ssekmsKeyId(res.keyMetadata().keyId()) // the actual keyId from KMS CMK
.build();
s3Client.putObject(putObjectRequest, RequestBody.fromString(data));
If you specify a predefined AWS alias (an AWS alias with no key ID), KMS associates the alias with an AWS managed CMK and returns its KeyId and Arn in the response.
希望有帮助。
关于java - 如何使用别名获取KMS KeyId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59106620/
我无法弄清楚 keyId 是什么适用于 iOS 推送通知。 我看到了this问题,但它似乎有点过时了。苹果似乎没有给出 .p8用于开发的文件不再提及 keyId下载时。 另外,我正在使用 this库发
我正在使用 awssdk v2:https://sdk.amazonaws.com/java/api/latest/ 我想使用客户管理的 KMS key 将对象放入 S3 中进行静态加密,我使用 ss
我进行了 Google 搜索,但没有找到任何对我有帮助的内容。我正在尝试在 Microsoft Azure 中验证我的应用 ,所以我创建了一些自签名的证书。他们提供了如何解析 crt 的教程,但它是在
通常我需要提供 3 条信息才能使用 Apple APN:key、keyId、teamId,例如 here . 我了解 key(pem 文件位置)和 teamId,但是我在哪里可以找到 keyId?这是
我的布局是这样的 @locationRef | @---LtFirstKeyUqABC123 | |--key1:val1 | |--key2:
我已经设置了 Yosup 的 Echoclient。但是,在读取传入消息时,我会随机收到错误“91XXXXXXXXXX 的 InvalidMessage 或 KeyId,将发送重试”。一段时间后,它会
已安装 gpg4win 2.2 版。我已经使用 gpgsm --gen-key > test.p10 成功创建了证书 我想使用 gpgsm --export-secret-key-p12 将创建的证书
我正在尝试生成一个 Maven 签名的 jar,但如果我收到此异常 groovy.lang.MissingPropertyException: Could not set unknown proper
我继承了一些 WSS4J 安全网络服务代码。它基于这个流行的教程:http://distributedsenses.blogspot.com/2008/09/configuring-cxf-for-w
我是一名优秀的程序员,十分优秀!