如何使用客户端管理的密钥(least/zero 提供商端的密钥知识)对 Kubernetes pods 使用的实际 storage/volume 进行加密?
How to encrypt actual storage/volume being used by Kubernetes pods using client managed keys(least/zero knowledge of keys on the provider side)?
我想在我的 kubernetes 环境中为每个客户端命名空间和存储,其中每个客户端运行一个专用的应用程序实例,并且只有客户端应该能够 encrypt/decrypt 该特定客户端的应用程序正在使用的存储。
我已经看到数百个关于 kubernetes 环境中的秘密加密的例子,但努力实现由客户端控制的实际存储加密。是否可以在只有客户端知道加密密钥(而不是 k8s 管理员)的 K8s 环境中进行存储加密?
根据评论中的建议,我唯一想到的是 hashicorp vault。
Vault is a tool for securely accessing secrets. A secret is anything
that you want to tightly control access to, such as API keys,
passwords, or certificates. Vault provides a unified interface to any
secret, while providing tight access control and recording a detailed
audit log.
您可能要检查的一些功能:
- API驱动接口
由于 HTTP API,您可以通过编程方式访问其所有功能。
此外,还有几个官方支持的编程语言库(Go 和 Ruby)。这些库使与 Vault 的 API 的交互更加方便。还有一个 command-line 接口可用。
- 数据加密
Vault 能够 encrypting/decrypting 数据而不存储它。这主要意味着如果发生入侵,即使攻击成功,黑客也无法访问真正的秘密。
- 动态秘密
Vault 可以为某些系统生成机密 on-demand,例如 AWS 或 SQL 数据库。例如,当应用程序需要访问 S3 存储桶时,它会向 Vault 请求凭据,Vault 将按需生成具有有效权限的 AWS 密钥对。创建这些动态秘密后,Vault 也会在租约到期后自动撤销它们。这意味着秘密在被读取之前不存在。
- 租赁和续订:Vault 中的所有机密都有与之关联的租赁。在租约结束时,Vault 将自动撤销该秘密。客户可以通过 built-in renew APIs.
续租
- 便捷认证
Vault支持token认证,方便安全
Vault 还可以自定义并连接到各种插件以扩展其功能。这一切都可以通过网络图形界面进行控制。
我想在我的 kubernetes 环境中为每个客户端命名空间和存储,其中每个客户端运行一个专用的应用程序实例,并且只有客户端应该能够 encrypt/decrypt 该特定客户端的应用程序正在使用的存储。 我已经看到数百个关于 kubernetes 环境中的秘密加密的例子,但努力实现由客户端控制的实际存储加密。是否可以在只有客户端知道加密密钥(而不是 k8s 管理员)的 K8s 环境中进行存储加密?
根据评论中的建议,我唯一想到的是 hashicorp vault。
Vault is a tool for securely accessing secrets. A secret is anything that you want to tightly control access to, such as API keys, passwords, or certificates. Vault provides a unified interface to any secret, while providing tight access control and recording a detailed audit log.
您可能要检查的一些功能:
- API驱动接口
由于 HTTP API,您可以通过编程方式访问其所有功能。 此外,还有几个官方支持的编程语言库(Go 和 Ruby)。这些库使与 Vault 的 API 的交互更加方便。还有一个 command-line 接口可用。 - 数据加密
Vault 能够 encrypting/decrypting 数据而不存储它。这主要意味着如果发生入侵,即使攻击成功,黑客也无法访问真正的秘密。 - 动态秘密
Vault 可以为某些系统生成机密 on-demand,例如 AWS 或 SQL 数据库。例如,当应用程序需要访问 S3 存储桶时,它会向 Vault 请求凭据,Vault 将按需生成具有有效权限的 AWS 密钥对。创建这些动态秘密后,Vault 也会在租约到期后自动撤销它们。这意味着秘密在被读取之前不存在。 - 租赁和续订:Vault 中的所有机密都有与之关联的租赁。在租约结束时,Vault 将自动撤销该秘密。客户可以通过 built-in renew APIs. 续租
- 便捷认证
Vault支持token认证,方便安全
Vault 还可以自定义并连接到各种插件以扩展其功能。这一切都可以通过网络图形界面进行控制。