首页 > 解决方案 > 使用 Python Boto3 忽略 S3 上传的默认 AWS KMS 加密

问题描述

我们最近为我们的所有 Amazon S3 存储桶启用了 AWS KMS,默认情况下,它将服务器端加密应用于我们上传到我们自己的 S3 存储桶或其他人拥有的 S3 存储桶的所有文件。

有没有办法故意“忽略”默认的 KMS 加密,将未加密的文件上传到第三方拥有的 S3 存储桶?第 3 方团队无法打开我们发送给他们的任何文件。我知道一种解决方案是与第 3 方共享 KMS 密钥,但由于关系的性质,最好只提供未加密的文件而不是共享密钥。

这是我用来传递文件的 Python 代码。如何修改 ExtraArgs 参数以故意忽略默认的 KMS 加密?

from boto3 import client
from boto3.s3.transfer import TransferConfig


client = client('s3', ...)
config = TransferConfig(multipart_threshold=1024 * 25, multipart_chunksize=1024 * 25,
                        max_concurrency=10, use_threads=True)

client.upload_file(filename='test.csv', bucket='my-bucket', key='test.csv',
                   Config=config, ExtraArgs={'ACL': 'bucket-owner-full-control'})

标签: python-3.xencryptionamazon-s3boto3aws-kms

解决方案


推荐阅读