aws_s3.query_export_to_s3 上传数据到s3时,是否可以避免使用'aws/s3'进行加密

0

【以下的问题经过翻译处理】 'aws_s3.query_export_to_s3'的默认行为对于跨账户的s3对象共享是有问题的。 如果RDS在账户A中,'aws_s3.query_export_to_s3'将使用账户A的'aws/s3'密钥加密数据。来自其他AWS账户的用户无法访问账户A的'aws/s3'密钥,因此无法访问由rds导出的数据。

现在我想知道是否有一种方法使'aws_s3.query_export_to_s3'上传未加密的数据,并且s3可以使用自定义密钥进行sse。我们可以将自定义KMS密钥与来自其他账户的用户共享,以便他们可以正确读取s3数据。

1 回答
0

【以下的回答经过翻译处理】 你好,

我了解到您正在尝试使用aws_s3扩展将数据从RDS导出到S3,您已经注意到它始终使用默认的AWS托管KMS密钥来加密数据,即使S3存储桶设置了默认的KMS密钥进行加密。

根据官方文档,上传到Amazon S3默认使用服务器端加密。如果您使用了加密,Amazon S3存储桶必须使用AWS托管密钥进行加密。目前,您无法将数据导出到使用客户托管密钥加密的存储桶。

[+] 从RDS for PostgreSQL DB实例导出数据到Amazon S3:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/postgresql-s3-export.html#postgresql-s3-export-examples

首先,我想让您知道,当使用“aws_s3.query_export_to_s3”函数从RDS PostgreSQL实例导出表数据到S3存储桶时,对象(即包含表数据的文件)将使用默认的AWS托管密钥进行加密(SSE-KMS加密),即“aws/s3”,无论以下两点是否成立:

  1. RDS PostgreSQL实例是否加密。
  2. 目标S3存储桶是否已加密。 因此,目前不支持使用S3托管密钥或客户托管密钥进行加密的选项。话虽如此,我想告诉您,目前唯一的解决方法是再次使用所需的KMS密钥对文件进行加密。可以遵循以下博客来执行此解决方法:

[+] 使用AWS CLI加密现有的Amazon S3对象:https://aws.amazon.com/jp/blogs/storage/encrypting-existing-amazon-s3-objects-with-the-aws-cli/

我了解到,缺乏本地功能实现您的用例可能会给您带来不便。

祝您度过美好的一天!

profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则