谷歌云代理商:‌如何加密谷歌云服务器的存储数据?‌

185 阅读3分钟

本文由【云老大】 TG@yunlaoda360 撰写

服务器端加密

  • 默认加密:Google Cloud Storage会自动对上传的对象进行服务器端加密。所有数据被分解成多个块,每个块使用唯一的加密密钥(DEK)进行加密,DEK又被加密密钥(KEK)加密后存储在Google的存储系统中。
  • 客户提供的加密密钥(CSEK) :用户自己生成AES 256对称密钥,并将其提供给Google Cloud Storage用于数据的加密和解密操作。CSEK只存储在存储系统内存中,不会在Google Cloud的设备上持久化存储。用户在每次云存储操作时提供密钥,Google 使用该密钥加密数据块、对象的校验和和哈希值,而对象的元数据(包括对象名称)则使用标准服务器端密钥加密。
  • 客户管理的加密密钥(CMEK) :密钥由Cloud Key Management Service(KMS)为用户生成,用户可自行管理这些密钥。数据上传至Google Cloud后被分解成多个块,每个数据块使用唯一的DEK加密,DEK被发送至Google KMS用关联的KEK加密,加密后的DEK与加密后的数据块一同存储在Google Cloud Storage中。

客户端加密

  • 操作方法:用户自己创建和管理加密密钥,并在将数据发送到云存储之前进行加密。加密后的数据以加密状态到达云存储,之后还会再被Google Cloud Storage进行服务器端加密。在检索数据时,Google Cloud Storage会移除服务器端加密层,但用户需要自行解密客户端加密层。

使用第三方加密工具

  • 工具选择与使用:可以使用如Boxcryptor、Cryptomator和VeraCrypt等第三方加密工具对文件进行加密,再将加密后的文件上传至谷歌云盘。

Google Cloud Datastore 数据加密

  • 步骤:首先生成AES-256密钥,然后对数据进行加密,将数据分为多个块并逐块加密,最后将加密后的数据存储到Google Cloud Datastore中。读取数据时,先读取加密数据,再将其分为多个块并逐块解密,最后组合成明文数据。

端到端加密

  • 实现方式:要实现真正的端到端加密,需要在客户端对数据进行加密,并且自行管理加密密钥。可以使用Python和google-cloud-storage客户端库,结合cryptography.fernet模块生成对称加密密钥并加密数据,再将加密后的数据上传至Google Cloud Storage。解密时使用相同的密钥。也可以利用Google Cloud KMS来管理加密密钥。

加密密钥管理

  • Google Cloud KMS:可用于存储和管理用于加密的密钥,支持将加密密钥与Google Cloud的其他服务(如Cloud Functions)集成,实现自动化加密和解密流程。通过KMS,可以将加密密钥的管理责任转移给Google Cloud,同时确保加密过程的安全性和可扩展性。

访问控制

  • 重要性:即使数据已加密,控制对数据的访问权限仍然至关重要。Google Cloud Storage提供了使用IAM角色和权限的细粒访问控制。在端到端加密中,访问控制更侧重于谁能获取加密密钥。