Python 从S3读取KMS加密文件
如何使用boto3资源从S3存储桶读取KMS加密文件 下面是我用来读取非加密文件的代码段-Python 从S3读取KMS加密文件,python,amazon-web-services,amazon-s3,aws-lambda,boto3,Python,Amazon Web Services,Amazon S3,Aws Lambda,Boto3,如何使用boto3资源从S3存储桶读取KMS加密文件 下面是我用来读取非加密文件的代码段- s3 = boto3.resource('s3') obj = s3.Object(bucket_name, key) body = obj.get()['Body'].read() print(' body = {}'.format(body)) 这里有一个有用的答案 不,下载时不需要指定AWS KMS密钥ID SSE KMS来自S3存储桶的加密对象。相反,你需要 解密AWS KMS密钥的权限 因此,
s3 = boto3.resource('s3')
obj = s3.Object(bucket_name, key)
body = obj.get()['Body'].read()
print(' body = {}'.format(body))
这里有一个有用的答案 不,下载时不需要指定AWS KMS密钥ID SSE KMS来自S3存储桶的加密对象。相反,你需要 解密AWS KMS密钥的权限 因此,您不需要在GetObject请求上提供KMS信息(这是boto3资源级方法在幕后所做的),除非您正在这样做。您只需要拥有访问KMS密钥进行解密的权限。S3/KMS将为您完成其余工作
您可以根据链接文章配置与Lambda函数的IAM角色关联的IAM策略。将KMS权限(针对相关KMS密钥)添加到凭据并针对KMS加密对象重新运行此代码时会发生什么情况?我在Lambda函数中运行此操作,你能告诉我怎么做吗?配置Lambda函数的IAM角色的策略以包含kms:*(暂时),然后使用kms加密对象进行测试。谢谢@jarmod。这也有帮助。我正在寻找传递KMS键以读取数据的方法。然而,它看起来不需要,对-你不需要在GetObject请求上提供任何KMS信息(这是boto3资源级方法在幕后所做的),除非你在做CMK。您只需要拥有访问KMS密钥进行解密的权限。很高兴你能让它工作。如果有帮助的话,我可以写下来作为答案。