我正在探索一种将加密数据存储到S3的方法。我的后端是用Java构建的,我已经在使用JetS3t库进行一些简单的S3存储操作。因此,我的问题是:如何结合使用JetS3t和S3's Server Side Encryption with customer-provided keys (SSE-C)在S3上以加密格式存储文件?
我试图查阅JetS3t的程序员指南,但在这方面没有找到任何具体的东西。
发布于 2016-12-07 18:22:13
根据这里的文档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使用此标头提供256位base64编码的加密密钥,以便亚马逊S3用于加密或解密您的数据。x-amz-server-side-encryption-customer-key-MD5根据RFC1321使用此头来提供加密密钥的base64编码的128位MD5摘要。亚马逊S3使用此标头进行消息完整性检查,以确保加密密钥的传输没有错误。如果您使用Amazon Java SDK,执行此操作很容易,其文档中提供了示例。但要使用JetS3t执行此操作,您可以执行以下操作:
假设s3Object是您试图放在S3上的对象,使用适当的值为上面提到的每个headers调用以下代码。
s3Object.addMetadata("<header>", "<header_value>")https://stackoverflow.com/questions/35425734
复制相似问题