创建VM时Azure分配角色

时间:2020-11-10 09:47:13

标签: azure azure-virtual-machine azure-vm-role

我正在用Java编写程序,该程序在Azure中创建VM实例,将脚本上载到容器,然后在VM中下载并执行脚本。但是,我目前在授予机器访问容器的权限方面面临困难。我加了

.withSystemAssignedManagedServiceIdentity()

创建机器。但是,这还不够,显然我还必须向虚拟机添加角色(在我的情况下为Storage Reader)。在门户网站中手动完成设置机器后,通过SSH可以访问我。但是,在我的Java程序的VM创建过程中,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

有可能,您可以使用withSystemAssignedIdentityBasedAccessTo(String resourceId, BuiltInRole role)方法。

这是sample

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()
                        .withSystemAssignedIdentityBasedAccessTo("<storage-account-resource-id>", BuiltInRole.READER)
                        .create();