将cloudsql数据导出到云存储时是否可以进行客户端加密

问题描述

我正在尝试将数据导出到云存储桶。我想了解:

如果我可以使用“客户管理的”或“客户提供的加密密钥”来利用客户端加密。

gcloud sql export sql命令中我看不到任何选项来提供文档[https://cloud.google.com/storage/docs/encryption/using-customer-managed-keys# add-object-key] [1]

认情况下,存储桶中的对象将被加密还是应该在导出命令中传递加密密钥ref !!

我还有一个查询: 在将数据导出到存储桶时,我们可以连接到数据库而没有任何问题吗?还是在非工作时间导出数据库更好?

解决方法

  • 服务器端加密:加密是在Cloud Storage接收数据之后,但在将数据写入磁盘并存储之前进行的。

  • 客户端加密:在将数据发送到Cloud Storage之前发生的加密。这些数据到达已经加密但又要经过服务器端加密的Cloud Storage。

详细信息:

Client-side encryption用于导出数据,是使用您自己的工具之前将其发送到Cloud Storage的。然后,您在客户端加密的数据将以加密状态到达Cloud Storage,但是Cloud Storage不知道您用来加密数据的密钥。

Cloud Storage收到您的数据时,将通过server-side encryption对其进行第二次加密,https://gitlab.com/exevio-open-source/digitalocean-spaces-transfer由Cloud Storage管理。检索数据时,Cloud Storage会删除服务器端加密层,但是您必须自己解密客户端层。

请记住,如果使用客户提供的加密密钥或客户端加密,则必须安全地管理密钥并确保它们不会丢失。如果丢失了密钥,则将无法再读取数据,并且在删除对象之前,将继续为存储对象收费。