【问题标题】:AWS S3 SSE : s3 managed keys encrypted object upload using pythonAWS S3 SSE:s3 托管密钥加密对象上传使用 python
【发布时间】:2020-04-08 15:06:44
【问题描述】:

我只是想将加密对象上传到 S3 存储桶。 我已经浏览了 SSE 上的 AWS 文档。 最令人困惑的部分是我不清楚: 1.如果我们需要在上传对象到s3之前为bucket设置默认的服务器端加密选项为AES256(我假设它是S3托管密钥) 或者 2.我们可以直接上传到s3 bucket而不需要为那个bucket设置任何服务器端加密选项吗?

假设第二点为真,我尝试在 S3 上上传对象并指定额外的参数:

s3_con.upload_file('abc.txt','s3_key_path/abc.txt',ExtraArgs={"ServerSideEncryption": "AES256"})

我可以使用上面的代码行上传文件,但文件没有加密。 所以我想在上传到存储桶之前我需要先尝试一下。

如何在 python 中使用 S3 托管密钥使用服务器端加密上传加密对象,为此我需要执行哪些步骤?

【问题讨论】:

  • 是什么让你说文件上传后没有加密?
  • @jarmod 我不确定如何检查它是否已加密。但是当我打开该文件时,我可以看到它的所有内容,就像上传前一样。
  • 如果我遗漏了什么,你能指导我吗?

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


【解决方案1】:

文件已加密。查看该 S3 对象的 AWS 控制台中的 Properties > Encryption 选项卡。

您可以看到内容,因为 SSE-S3 (AES-256) 是透明的静态加密。 S3 在对象写入磁盘时对其进行加密,并在从磁盘读取对象时对其进行解密。因为您有权获取该对象,所以该过程对您来说是透明的。

您还有其他加密选项,包括 KMS 托管密钥、您自己的托管密钥以及在发送到 S3 之前进行客户端加密。

【讨论】:

  • 所以不需要为 S3 存储桶启用默认 SSE 选项?我们可以直接使用 S3 托管密钥、客户托管密钥和 kms 等各种方式加密对象,然后将其直接上传到未设置任何加密选项的 S3 存储桶中?
  • SSE-KMS 和 SSE-S3 (AES256) 的服务器端选项是互斥的。您可以根据需要多次进行客户端加密,并且可以根据需要同时启用 SSE 选项(多层加密)。请参阅docs.aws.amazon.com/AmazonS3/latest/dev/UsingEncryption.html 了解更多信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 2019-09-03
相关资源
最近更新 更多