dask.dataframe的to_parquet支持服务器端加密?

时间:2017-04-12 03:49:50

标签: python encryption amazon-s3 dask

我们公司要求加密S3中静止的所有数据。通常当我们上传s3对象时,我们会执行以下操作:

aws s3 cp a.txt s3://b/test --sse

我正在玩dask.dataframe并希望将我的一个数据集导出到存储在S3中的拼贴画中,但找不到任何打开加密的选项。知道如何使用dask.dataframe应用加密吗?

2 个答案:

答案 0 :(得分:4)

这当前没有在s3fs中实现,后者是dask用来写入S3的后端。通过在S3FileSystem的构造函数中包含(某些)以下参数,并将它们包含在boto3 s3client上的少量调用中,并不难添加;然后,在调用storage_options=时,参数将包含在to_parquet()中。

ServerSideEncryption='AES256'|'aws:kms',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',

还应该有一个选项来设置这些每个文件以及默认情况下在文件系统实例上。随意尝试公关!请注意,SSE可能未在moto中实现,因此测试使用可能很困难。

请注意,在您的情况下,aws命令可能会从标准位置(例如~/.aws/)读取其中一些值。

答案 1 :(得分:1)

到目前为止,这是可能的:

df.to_csv(s3_path, storage_options={"s3_additional_kwargs":{"ServerSideEncryption": "AES256"}})