【问题标题】:JetS3t and Server Side Encryption with Customer-Provided Keys使用客户提供的密钥进行 JetS3t 和服务器端加密
【发布时间】:2016-05-27 07:54:11
【问题描述】:

我正在探索一种将加密数据存储到 S3 的选项。我的后端是用 Java 构建的,我已经在使用 JetS3t 库进行一些简单的 S3 存储操作。所以,我的问题是:如何使用 JetS3t 和 S3's Server Side Encryption with customer-provided keys (SSE-C) 在 S3 上以加密格式存储文件?

我试图查看 JetS3t 的程序员指南,但没有找到任何具体的内容。

【问题讨论】:

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


    【解决方案1】:

    根据http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html 此处的文档,您需要在请求中添加以下标头:

    • x-amz-server-side​-encryption​-customer-algorithm 使用此标头指定加密算法。标头值必须是“AES256”。
    • x-amz-server-side​-encryption​-customer-key 使用此标头为 Amazon S3 提供 256 位、base64 编码的加密密钥,用于加密或解密您的数据。
    • x-amz-server-side​-encryption​-customer-key-MD5 使用此标头根据 RFC 1321 提供加密密钥的 base64 编码的 128 位 MD5 摘要。Amazon S3 使用此标头进行消息完整性检查,以确保加密密钥的传输没有错误。

    如果您使用 Amazon Java 开发工具包,这样做很容易,并且在其文档中提供了示例。但要使用 JetS3t,您可以执行以下操作:

    假设 s3Object 是您尝试放在 S3 上的对象,请为上述每个具有适当值的标头调用以下代码。

    • s3Object.addMetadata("<header>", "<header_value>")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 2016-10-16
      • 2020-01-19
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多