Azure Key Vault 为什么或如何安全?我需要在服务器上存储密钥 URI、客户端 ID 和客户端密钥,因此如果任何人授予对托管应用程序的服务器的访问权限,他将能够访问存储在 Key Vault 中的密钥和密钥。这意味着将它们存储在服务器上同样安全,对吗?
这对于 OP 来说已经晚了,但我希望它可以帮助其他人在使用 Azure Key Vault 时解决先有鸡还是先有蛋的问题。
在 Azure VM 上运行应用程序的上下文中,而不是使用client_secret
要进行身份验证,您可以使用客户端证书身份验证,如此处所述文档:使用证书而不是客户端密钥进行身份验证 https://learn.microsoft.com/en-us/azure/key-vault/key-vault-use-from-web-application#authenticate-with-a-certificate-instead-of-a-client-secret.
上图中:
- 应用程序通过证明其具有证书的私钥(基本上存储在如果您使用的是 Windows)。
- 应用程序取回
access_token
然后用它来访问 Key Vault。
开发人员不需要知道证书的私钥值即可成功验证其应用程序。相反,他们只需要知道导入的位置pfx
(私钥及其证书的容器)位于证书存储区中。
至少在 Windows 上,您作为秘密管理员可以将私钥和证书转换为pfx
格式是password受保护,然后将其部署到 Windows 证书存储中。这样一来,除非知道私钥,否则任何人都无法知道私钥password of the pfx
file.
Azure 计算的另一种方法细节是使用Azure 托管服务身份 https://learn.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview。使用 Azure MSI,Azure 将自动分配您的资源,例如具有身份/服务主体的 VM,并且您可以在只能由您的资源访问的特定端点处触发请求,以获取access_token
。但请注意,Azure MSI 仍处于公共预览阶段,因此请在使用之前查看已知问题。
上图解释了 Azure 资源管理器如何将服务主体身份分配给您的 VM。
- 在 VM 中启用 MSI 时,Azure 将在 AAD 中创建服务主体。
- 然后,Azure 会将新的 MSI VM 扩展部署到你的 VM。这提供了一个端点http://localhost:50432/oauth2/token http://localhost:50432/oauth2/token用于获取
access_token
对于服务主体。
- 然后您可以使用
access_token
访问授权服务主体访问的资源,例如 Key Vault。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)