azure - Azure - 在设置之前为 VM 分配托管标识访问权限
问题描述
我正在用 Java 编写一个程序,它在 Azure 中创建一个 VM 实例,将脚本上传到容器,然后在 VM 中下载并执行脚本。但是,我目前在授予机器访问容器的权限方面遇到困难。当机器已经启动时,我可以手动转到 Azure 并分配一个具有访问权限的角色,但是我想在机器启动之前在我的程序(创建 VM 时)中执行此操作,以便程序可以不间断地运行。有没有办法做到这一点?从文档
目前,Azure 门户不支持在创建 VM 期间分配用户分配的托管标识。相反,请参阅以下 VM 创建快速入门文章之一以首先创建 VM,然后继续下一部分以了解有关将用户分配的托管标识分配给 VM 的详细信息
我是否正确理解这是不可能的?有解决方法吗?
解决方案
有可能,文档只是意味着您不能在门户中这样做,而不是在代码中。
就您而言,实际上我不确定您要使用系统分配的身份还是用户分配的身份。
这是一个示例,它通过启用系统分配的身份创建 Linux VM withSystemAssignedManagedServiceIdentity
,如果您想使用用户分配的身份,您可以更改要使用的代码WithUserAssignedManagedServiceIdentity
,您可以指定现有的或尚未创建的用户分配的身份,这取决于您的要求。
VirtualMachine virtualMachine = azureResourceManager.virtualMachines()
.define(linuxVMName)
.withRegion(region)
.withNewResourceGroup(rgName)
.withNewPrimaryNetwork("10.0.0.0/28")
.withPrimaryPrivateIPAddressDynamic()
.withNewPrimaryPublicIPAddress(pipName)
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUsername(userName)
.withRootPassword(password)
.withSize(VirtualMachineSizeTypes.STANDARD_DS2_V2)
.withOSDiskCaching(CachingTypes.READ_WRITE)
.withSystemAssignedManagedServiceIdentity()
.create();
推荐阅读
- .net - 正则表达式与数字之间的连字符和固定的整个长度
- c# - AutoFixture 中对延迟实例化的专门延迟支持
- ios - 如何在 ios 版本 14.7.1 中获得相机权限?
- java - 单个 Spring 应用程序可以在两个 kafka 集群上推送/生成消息吗?
- c++ - 如何检查文件指针是否有效?
- azure-active-directory - 是否可以使用来自现有服务主体的 Oauth 令牌连接到 Azure Databricks 中的雪花?
- r - 如果不重复则合并
- java - Azure Spring Boot 功能 - 如何将多个 OutputBinding 发送到 handleOutput 方法?
- java - 如何计算字母出现计数器的剩余大写字母 T?
- python - 无法同时导入 zipline 和 yfinance