GKE (GCP)和EKS (AWS)都支持对动态配置的PV进行加密,使用客户自己的加密密钥。此客户密钥位于Cloud KMS (GCP)/AWS KMS中。
本机集成意味着,我只需指向存储类中的KMS ID。
但我不清楚内部行为。其中数据加密密钥创建并存储在集群中?(KMS为密钥加密密钥而不是DEK)。
这个实现在哪里完成-在KMS插件?这个插件的源代码开放吗?
- 默认情况下,Google Cloud对静态客户内容进行加密,GKE为您管理加密,而无需您采取任何操作。磁盘内容的加密和解密不是在Kubernetes中完成的,加密密钥也不是存储在k8或etc中。相反,加密、解密和密钥管理是GCP Persistent Disk的特性。
- 当你谈论使用客户管理的加密密钥来加密附加的GCP持久磁盘时,Kubernetes不参与,这完全由Google计算引擎持久磁盘CSI驱动程序管理。,云KMS和持久磁盘. KMS插件、DEK和信封加密方案只涉及Kubernetes的秘密实现。CSI插件提供的磁盘级加密使用类似的机制,但是在Kubernetes之外。
- 换句话说,
pd.csi.storage.k8s.io
CSI将收集云KMS密钥的名称并不加更改地传递它(参见文件gce-compute)。到GCP的v1. computer .disks.insert API调用,作为DiskEncryptionKey
参数。然后GCE PD驱动程序负责要求Cloud KMS生成磁盘加密密钥,密钥材料永远不会到达Kubernetes,所有秘密谈判都在Google的网络中进行。