Azure-在设置之前向VM分配托管身份访问权限

时间:2020-11-06 10:52:36

标签: azure azure-virtual-machine

我正在用Java编写程序,该程序在Azure中创建VM实例,将脚本上载到容器,然后在VM中下载并执行脚本。但是,我目前在授予机器访问容器的权限方面面临困难。当计算机已经启动时,我可以手动转到Azure并分配具有访问权限的角色,但是我想在计算机启动之前在程序中(创建VM时)执行此操作,以便程序可以不间断地运行。有没有办法做到这一点?从Documentation

当前,Azure门户不支持在创建VM期间分配用户分配的托管身份。相反,请参考以下虚拟机创建快速入门文章之一,以首先创建虚拟机,然后继续进行下一部分,以了解有关向虚拟机分配用户分配的托管身份的详细信息

我是否正确理解这是不可能的?有解决方法吗?

1 个答案:

答案 0 :(得分:1)

很有可能,文档只是意味着您不能在门户网站中做到这一点,而不是在代码中。

对于您而言,实际上我不确定您要使用系统分配的身份还是用户分配的身份。

这里是sample,它创建了一个通过withSystemAssignedManagedServiceIdentity启用了系统分配的身份的Linux VM,如果要使用用户分配的身份,则可以更改代码以使用{{3} },您可以根据您的要求来指定现有的或尚未创建的用户分配的身份。

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();