【问题标题】:Using AWS S3 encryption with inputstreams对输入流使用 AWS S3 加密
【发布时间】:2016-07-29 12:07:39
【问题描述】:

我有一项将内容流式传输到 AWS S3 存储桶的休息服务。我想知道将流加密到存储桶的替代方法是什么,我的主要要求是加密密钥是自动管理的(例如 KMS),然后是性能方面的。

是否可以使用 KMS 加密输入流,而无需使用 byte[] 并将整个内容缓存在内存中?

我打算上传一些大于 1GB 的大文件(这就是为什么要使用流媒体来避免 OOM 错误)对此的首选建议是什么,与小于 10MB 的小文件相比有什么显着差异吗?

谢谢

【问题讨论】:

    标签: java rest amazon-web-services encryption amazon-s3


    【解决方案1】:

    我假设你使用的是PutObjectRequestthis 版本,它采用InputStream

    1. 到 S3 的数据传输是通过 SSL 进行的,因此网络传输是加密的。

    2. 要使用 KMS 密钥加密存储在 S3 上的数据,您只需指定希望 S3 使用的 KMS 密钥。创建 PutObjectRequest 后,只需在调用 s3Client.putObject() 之前调用:putObjectRequest.withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams(keyID));

    或者,如果您想在客户端进行所有加密,您可以使用 Java AWS SDK 中的 AmazonS3EncryptionClientEncryptedPutObjectRequest 类。

    【讨论】:

      猜你喜欢
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多