如何使用客户端管理的密钥加密Kubernetes pod正在使用的实际存储/卷(提供商方面对密钥的了解最少/为零)



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

正如评论中所建议的那样,我脑海中唯一想到的是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中的所有机密都有与其关联的租赁。租约结束时,Vault将自动撤销该机密。客户端可以通过内置的续订API续订租约
  5. 方便的身份验证
    Vault支持使用令牌进行身份验证,既方便又安全

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

相关内容

  • 没有找到相关文章

最新更新