【问题标题】: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 pod 使用的实际存储/卷(提供者端对密钥的最少/零知识)?
【发布时间】:2020-11-19 05:44:24
【问题描述】:

我希望在我的 kubernetes 环境中拥有每个客户端的命名空间和存储,其中每个客户端运行一个专用的应用实例,并且只有客户端应该能够加密/解密该特定客户端的应用正在使用的存储。 我已经看到了数百个关于 Kubernetes 环境中秘密加密的示例,但很难实现由客户端控制的实际存储加密。是否可以在只有客户端知道加密密钥(而不是 k8s 管理员)的 K8s 环境中进行存储加密?

【问题讨论】:

  • 你检查过hashicorp vault吗?

标签: encryption kubernetes kubernetes-security


【解决方案1】:

按照评论中的建议,我唯一想到的是hashicorp vault

Vault 是一种用于安全访问秘密的工具。秘密就是任何东西 您想要严格控制访问权限,例如 API 密钥, 密码或证书。 Vault 为任何 秘密,同时提供严格的访问控制并记录详细的 审核日志。

您可能需要查看的一些功能:

  1. API 驱动的接口
    由于 HTTP API,您可以通过编程方式访问其所有功能。 此外,还有几个官方支持的编程语言库(Go 和 Ruby)。这些库使与 Vault API 的交互更加方便。还有一个命令行界面可用。
  2. 数据加密
    Vault 能够在不存储数据的情况下加密/解密数据。这样做的主要含义是,如果发生入侵,即使攻击成功,黑客也无法获得真正的秘密。
  3. 动态秘密
    Vault 可以为某些系统(例如 AWS 或 SQL 数据库)按需生成密钥。例如,当应用程序需要访问 S3 存储桶时,它会向 Vault 索取凭证,而 Vault 将根据需要生成具有有效权限的 AWS 密钥对。创建这些动态机密后,Vault 也会在租约到期后自动撤销它们。这意味着秘密在被读取之前不存在。
  4. 租赁和续订:保险柜中的所有秘密都有一个与之关联的租赁。在租约结束时,Vault 将自动撤销该机密。客户可以通过内置的续订 API 续订租约。
  5. 方便的身份验证
    Vault 支持使用令牌进行身份验证,既方便又安全。

Vault 还可以自定义并连接到各种插件以扩展其功能。这一切都可以通过网络图形界面进行控制。

【讨论】:

    猜你喜欢
    • 2017-09-14
    • 2022-01-27
    • 2021-06-23
    • 2020-08-22
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多