Security Kubernetes EncryptionConfiguration中的“identity”提供程序提供什么样的安全性?
参考: 根据文件 资源按原样写入而不加密。当设置为第一个提供程序时,资源将在写入新值时解密Security Kubernetes EncryptionConfiguration中的“identity”提供程序提供什么样的安全性?,security,encryption,kubernetes,storage,etcd,Security,Encryption,Kubernetes,Storage,Etcd,参考: 根据文件 资源按原样写入而不加密。当设置为第一个提供程序时,资源将在写入新值时解密 当设置为第一个提供程序时,资源将在写入新值时解密。听起来很混乱。如果资源按原样写入etcd而没有加密,为什么解密为写入的新值意味着什么 然后呢 默认情况下,身份提供程序用于保护etcd中的机密,etcd不提供加密 如果未进行加密,identity提供商提供什么样的安全性?如果进行加密,它是什么样的加密?如etcd中所述 etcd是否加密存储在磁盘驱动器上的数据 否。etcd不加密存储在磁盘驱动器上的密钥/
当设置为第一个提供程序时,资源将在写入新值时解密。
听起来很混乱。如果资源按原样写入etcd而没有加密,为什么解密为写入的新值
意味着什么
然后呢
默认情况下,身份提供程序用于保护etcd中的机密,etcd不提供加密
如果未进行加密,
identity
提供商提供什么样的安全性?如果进行加密,它是什么样的加密?如etcd
中所述
etcd是否加密存储在磁盘驱动器上的数据
否。etcd不加密存储在磁盘驱动器上的密钥/值数据。如果用户需要加密存储在etcd上的数据,有一些选项:
- 让客户端应用程序加密和解密数据
- 使用底层存储系统的一项功能加密存储的数据,如dm crypt
身份提供程序
用于保护etcd中的机密,etcd不提供加密。
这意味着默认情况下,k8s api在etcd
中存储机密时使用身份提供程序
,并且不提供任何加密。
仅与一个提供程序一起使用:identity
与根本不使用EncryptionConfiguration
的结果相同(假设您以前没有任何加密的机密)。
所有机密数据将以明文形式存储在etcd
中
例如:
providers:
- identity: {}
问题的第二部分:
资源按原样写入而不加密。
问题的第一部分对此进行了描述和解释
当设置为第一个提供程序时,资源将在写入新值时解密
看看这个例子:
providers:
- aescbc:
keys:
- name: key1
secret: <BASE 64 ENCODED SECRET>
- identity: {}
- 在这种情况下,您将在
中混合使用加密和未加密的数据etcd
- 从该配置开始,所有新的
机密将以纯文本形式保存
- 对于前缀为k8s:enc:aescbc:v1:key1的etcd中的所有现有机密,提供程序:aescbc配置将用于解密存储在etcd中的现有机密
$kubectl获取机密--所有名称空间-o json | kubectl替换-f-
如果它不提供加密,但文档似乎在谈论解密以及它如何保护,为什么会出现呢
如果您同时拥有加密和未加密的数据,则必须将提供者类型设置为identity
或者,如果您想解密由其他提供商加密的所有现有机密
(存储在etcd中)
以下命令读取所有机密,然后更新它们以应用服务器端加密。有关更多详细信息,请参阅
$kubectl获取机密--所有名称空间-o json | kubectl替换-f-
根据您的加密配置
,所有机密
都将保存为未加密-如果第一个提供程序是:标识
,或者如果第一个提供程序是不同类型,则将其加密
此外
EncryptionConfig
作为默认设置被禁用。要使用它,您必须在kube apiserver
配置中添加--encryption provider config
Identity
没有加密任何数据,因为它有3个N/A
要澄清,您是在问Identity EncryptionConfiguration
如何工作,或者它与其他提供商有什么不同?我想我想问的是,Identity
提供商到底有什么帮助,如果它不提供加密,但文档似乎在谈论解密
,以及它如何保护etcd中的机密,那么它为什么会存在呢。这是一种什么样的保护,解密如何适应?
providers:
- identity: {}
- aescbc:
keys:
- name: key1
secret: <BASE 64 ENCODED SECRET>