【问题标题】:Azure - assign managed identity access to VM before setupAzure - 在设置之前为 VM 分配托管标识访问权限
【发布时间】:2020-11-09 14:06:18
【问题描述】:

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

目前,Azure 门户不支持在创建 VM 期间分配用户分配的托管标识。相反,请参阅以下 VM 创建快速入门文章之一以首先创建 VM,然后继续下一部分以了解有关将用户分配的托管标识分配给 VM 的详细信息

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

【问题讨论】:

    标签: azure azure-virtual-machine


    【解决方案1】:

    有可能,文档只是意味着您不能在门户中这样做,而不是在代码中。

    在您的情况下,实际上我不确定您要使用系统分配的身份还是用户分配的身份。

    这是一个sample,它创建一个通过withSystemAssignedManagedServiceIdentity启用系统分配标识的Linux VM,如果你想使用用户分配的标识,你可以将代码更改为使用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();
    

    【讨论】:

    • 啊,我理解错了,根本不可能。感谢您解释并提供示例!
    猜你喜欢
    • 2019-03-04
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    相关资源
    最近更新 更多