【发布时间】:2022-08-13 23:55:00
【问题描述】:
我的应用程序在 Kubernetes 上运行,它需要一些敏感数据才能运行应用程序。例如,数据库用户名和密码。目前,我将这些敏感值作为 Kubernetes 定义文件中的环境变量传递。
由于这种方式不安全,我部署了 vault,现在我需要使用 vault 对我的应用程序进行身份验证。我还在保险库中创建了秘密,我正在使用 \'AppRole\' 方法进行身份验证。我获得了 RoleID 和 SecretID。
如何从我的应用程序中指定保险库并对其进行身份验证?在我的 Kubernetes 部署文件中将 RoleID 和 SecretID 作为环境变量传递是否足够?
-
为什么不使用 Kubernetes 身份验证引擎呢?
-
什么是“(安全)足够”取决于很多事情,即您的安全要求。 AppRole 身份验证比 K8S 更容易配置,尤其是如果您打算使用组和实体别名来管理权限。但是您将在哪里存储 AppRole 凭据以传递给您的部署文件?在 Vault 中 - 好主意 - 但是您首先将用于向 Vault 进行身份验证的凭据存储在哪里?安全秘密引入是一个难题,Kubernetes 身份验证是一个解决方案。但没有什么是免费的。
-
@ixe013 所以在代码中传递 AppRole 凭据是不够的?除了在代码中定义 AppRole 凭据之外,我们还需要在其他任何地方指定它们吗?就像在部署清单中一样?
-
是的,AppRole 身份验证工作就足够了。可能不足以满足查看您的部署代码的安全审计员。至少,不要存储凭据在代码,在您的源代码存储库中。
标签: kubernetes hashicorp-vault vault