azure - 使用 Azure keyvault key 中的 VM 管理员密码创建 Azure VM

标签 azure passwords azure-keyvault azureportal azure-vm

我正在使用 Azure 门户 UI 在 Azure 中创建 Windows 虚拟机。 我在 Azure keyvault 中创建了一个 secret adminpass,用于指定要创建的 VM 的管理员密码。

当谈到在创建 VM 时使用 adminpass key 时,如果您使用 ARM 模板创建 VM,有一些教程介绍了如何执行此操作: Securely Deploy Azure VM With Local Admin Password from Azure Key Vault and not in ARM Template

但是,如果我使用 Azure 门户 UI 创建 VM,如何使用该 keyvault key ?这可能吗?

而且,将密码指定为 secret 而不是原始文本有什么好处(除了安全性之外)吗?我的意思是,如果我们在 KeyVault 中添加 Windows 用户帐户,我们是否可以在需要时轻松修改或撤销对 VM 的访问权限?

编辑:

KeyVault secret 是否直接绑定(bind)到虚拟机? 我的意思是,如果我在 KeyVault 中修改 VM 密码的 secret 值,则不会自动更改 VM 的密码,因为它在部署期间使用了该 secret 。实际发生的情况是,读取 keystore 以获取对虚拟机进行身份验证的凭据的应用程序将获得错误的凭据,并且身份验证将失败。对吗?

以下是 2 个部署场景:

  • 通过 Azure 门户 UI 创建 VM,方法是在其中指定管理员用户名和密码,部署 VM 后,只需将凭据添加到 keyvault key 中,以便其他应用程序可以使用它们。

  • 首先,将凭据添加到 Keyvault key ,然后通过 ARM 模板部署虚拟机,该模板使用该 key 读取虚拟机管理凭据。

我只是想确保,在这两种情况下,keyvault secret 都旨在供其他想要对虚拟机进行身份验证的应用程序使用。并且,从VM的角度来看,它仅在创建VM时才读取keyvault。我这里说得对吗?

最佳答案

不,在从 KeyVault 指定密码时无法从门户创建 Windows VM。由于微软在安全领域投入了大量精力,因此如果该功能很快发布,我不会感到惊讶。

在 Windows VM 密码的 secret 上下文中,它通常保存在 KeyVault 中,以便于管理和安全。假设您正在使用任何 IaC 工具进行部署,则不需要将密码存储为环境变量,也不需要将其存储在 Git 中。

将其保存在 KeyVault 中,可以在创建 VM 需要时安全地检索它,并且还允许许多其他资源访问此密码以执行他们可能需要的任何其他操作。

其次,为了更方便地管理权限。在 KeyVault 中,您拥有与任何其他 Azure 资源相同的 RBAC 概念,然后您拥有访问策略的概念,现在除了 new KeyVault RBAC policies 之外的某些人也可以使用该概念。 。通过这种级别的控制,您可以决定谁可以或不可以访问虚拟机/资源的凭据。

将密码保存到 KeyVault 并删除某人对 secret 的直接权限不会撤销对虚拟机的访问权限。它只会阻止该人访问保存的密码。如果该人从 KeyVault 复制了密码,他们仍然可以登录。

但是,如果您有一个应用程序或资源,每次需要执行某些操作时都会以编程方式从 KeyVault 检索 secret ,那么可以 - 在这种情况下,删除对 secret 的访问权限将撤销对虚拟机的访问权限。

Is KeyVault secret directly binded to a VM ? I mean, If I modify the VM password's secret value in KeyVault, that doesn't automatically change the password of the VM just beacuse it used the secret during deployment time. What would actually happen is, the applications which reads the keyvault to get credentials to authenticate to the VM, will get a wrong crendetials and auth will fail. Right?

KeyVault 未绑定(bind)到虚拟机。将 KeyVault 视为一个非常安全的 Excel 工作表。该 Excel 工作表未绑定(bind)到您的虚拟机。如果您打开 Excel 工作表并删除或更改密码,则不会更改 VM 密码。但是,依赖该密码对虚拟机进行身份验证的任何其他人(或应用程序)将无法再执行此操作,因为无法再找到该密码。

是的,您的两个部署场景是正确的,这就是它的行为方式 - 您理解这个概念。再次,想想与许多人共享的安全 Excel 工作表等...

关于azure - 使用 Azure keyvault key 中的 VM 管理员密码创建 Azure VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67824390/

相关文章:

azure - 为什么无法访问 Azure API 管理策略中的内容类型?

c# - PDFsharp 1.50 测试版 3 : Empty owner password error when adding password to PDF

.net - 为什么 Azure Key Vault 安全?

Azure Key Vault如何识别访问策略中分配的不同身份

azure - 如何使用 Azure 资源管理器模板部署 Azure Function(及其代码)?

azure - 使用什么 Azure 消息服务?

azure - Blazor Web assembly Azure AD 身份验证托管在 Azure 存储帐户中

java - 在 gnupg-for-java 中提供 GnuPG key 的密码

c# - 从 int 到短字符串的 2 路加密

c# - 如何在托管于共享服务器上的 ASP.Net Core 3.1 应用程序中存储诸如连接字符串之类的生产 secret