如何解决使用 Azure 密钥保管库机密中的 VM 管理员密码创建 Azure VM
我正在使用 Azure 门户 UI 在 Azure 中创建 Windows 虚拟机。
我在 Azure 密钥保管库中创建了一个密钥 adminpass
,用于指定要创建的 VM 的管理员密码。
当谈到在创建 VM 时使用 adminpass
秘密时,有一些教程描述了如果您使用 ARM 模板创建 VM 时如何做到这一点:
Securely Deploy Azure VM With Local Admin Password from Azure Key Vault and not in ARM Template
但是,如果我使用 Azure 门户 UI 创建 VM,我该如何使用该密钥保管库机密?这可能吗?
而且,将密码指定为秘密而不是原始文本有什么好处(安全性除外)?我的意思是,如果我们在 KeyVault 中添加 Windows 用户帐户,是否可以在需要时轻松修改或撤销对 VM 的访问权限?
编辑:
KeyVault 机密是否直接绑定到 VM? 我的意思是,如果我在 KeyVault 中修改 VM 密码的机密值,那不会自动更改 VM 的密码,只是因为它在部署期间使用了机密。实际发生的情况是,读取密钥库以获取凭据以对 VM 进行身份验证的应用程序将获得错误的凭据并且身份验证将失败。对吗?
以下是 2 个部署方案:
-
通过在 Azure 门户 UI 中指定管理员用户名和密码本身来创建 VM,在部署 VM 后,只需将凭据添加到 keyvault 机密,以便其他应用程序可以使用它们。
-
首先,将凭据添加到 Keyvault 机密,然后通过 ARM 模板部署 VM,该模板使用该机密读取 VM 管理员凭据。
我只想确保,在这两种情况下,keyvault 机密都旨在供其他想要对 VM 进行身份验证的应用程序使用。而且,从 VM 的角度来看,它仅在创建 VM 时读取密钥库。我在这里正确吗?
解决方法
不,不能在从 Keyvault 指定密码的同时从门户创建 Windows VM。由于微软在安全领域投入了大量精力,所以如果该功能尽快发布,我不会感到惊讶。
在 Windows VM 密码的 Secrets 上下文中,它通常保存在 Keyvault 中以便于管理和安全。假设您使用任何 IaC 工具进行部署,您不需要将密码存储为环境变量,也不需要将其存储在 Git 中。
将它保存在 Keyvault 中可以在创建 VM 时安全地检索它,并且还允许许多其他资源访问此密码以用于他们可能需要的任何其他用途。
其次,为了更轻松地管理权限。在 Keyvault 中,您拥有与任何其他 Azure 资源相同的 RBAC 概念,然后您拥有访问策略的概念,现在除了在 new Keyvault RBAC policies 下之外,它也可用于某些人。通过这种级别的控制,您可以决定谁可以或不能访问虚拟机/资源的凭据。
将密码保存到 Keyvault 并删除某人对机密的直接权限不会撤销对 VM 的访问权限。它只会阻止该人访问保存的密码。如果此人从 Keyvault 复制了密码,他们仍然可以登录。
但是,如果您的应用程序或资源每次需要执行某些操作时都会以编程方式从 Keyvault 中检索机密,那么是的 - 在这种情况下,删除对机密的访问权限将撤销对 VM 的访问权限。
KeyVault 机密是否直接绑定到 VM?我的意思是,如果我在 KeyVault 中修改 VM 密码的机密值,那不会自动更改 VM 的密码,只是因为它在部署期间使用了机密。实际发生的情况是,读取密钥库以获取凭据以对 VM 进行身份验证的应用程序将获得错误的凭据并且身份验证将失败。对吗?
Keyvault 未绑定到 VM。将 Keyvault 视为非常安全的 Excel 表。该 Excel 表未绑定到您的 VM。如果打开excel表删除或修改密码,不会修改VM密码。但是,依赖该密码对 VM 进行身份验证的任何其他人(或应用程序)将不再能够这样做,因为无法再找到该密码。
是的,您的两个部署方案是正确的,这就是它的行为方式 - 您理解了这个概念。再次,想想与许多人共享的安全 excel 表等...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。