如何使用boto3资源从S3存储桶中读取KMS加密文件?
下面是我用来读取未加密文件的代码段-
s3 = boto3.resource('s3')
obj = s3.Object(bucket_name, key)
body = obj.get()['Body'].read()
print(' body = {}'.format(body))
答案 0 :(得分:1)
Do I need to specify the AWS KMS key when I download a KMS-encrypted object from Amazon S3?
有一个有用的答案否,您无需在下载以下内容时指定AWS KMS密钥ID: 来自S3存储桶的SSE-KMS加密对象。相反,您需要 解密AWS KMS密钥的权限。
因此,除非您正在执行CMK,否则无需在GetObject请求上提供KMS信息(这是boto3资源级方法在幕后所做的事情)。您只需要具有访问KMS密钥以进行解密的权限。 S3 / KMS将为您完成其余的工作。
您可以根据链接的文章配置与Lambda函数的IAM角色关联的IAM策略。