使用 Azure 密钥保管库机密中的 VM 管理员密码创建 Azure VM

如何解决使用 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 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res