【发布时间】:2021-10-06 10:24:10
【问题描述】:
我当前的服务在 IIS 中的 Windows 上运行。我让它们作为我域中的服务帐户用户运行。此用户运行服务的应用程序池,并且还获得了对数据库的所需权限。然后我们的连接字符串可以使用集成的安全性来连接到我们的 SQL Server 数据库。
这样做的好处是可以提前设置,代码/连接字符串不需要任何密码。
当我转向 docker 容器时,我发现这种情况很难继续使用。我的容器以 root 或其他一些非公司用户身份运行。所以我不能只使用集成安全性。 (即使我可以让我的容器以域用户的身份运行,我也不知道这是一个好习惯。)
在容器中运行时,如何将密码从数据库连接字符串和配置中排除?
【问题讨论】:
-
我理解“集成安全”是微软所说的他们在 Kerberos 上的旋转是否正确?您确实意识到 Kerberos 在 Active Directory 存在之前很久就存在于 UNIX 世界中,并且它今天仍然存在并且可以使用。
-
...也就是说,一般来说,如果您正在寻找专为云使用而设计的更现代的秘密管理堆栈,我建议您使用 Hashicorp Vault。这是一个比这里通常的主题更广泛的问题(并且更接近于系统设计或安全性而不是编程;这两个领域都有自己的 Stack Exchange 站点)。
-
...无论如何,如果您使用的是本机 UNIX 数据库,则 krb5 连接/身份验证/加密方法是您可以找到 Kerberos 支持的地方。
标签: linux docker linux-containers integrated-security