使用服务主体登录到 azure linux vm

问题描述 投票:0回答:1

我在 azure 中创建了一个 linux VM。 为 VM 添加了扩展名

AADLoginForLinux

在 AAD 中创建服务主体。 为服务主体的应用程序 ID 添加了角色分配

Virtual Machine Administrator Login

现在我正在尝试使用该服务主体登录到 VM:

az login --service-principal -u <test-sp-app-id> -p <test-sp-secret-value> --tenant <tenant-id>

az ssh vm -n <vm-name> -g <resource-group-name>

但是报错:

Code: AuthorizationFailed

Message: The client '85da262dghfgjhj' with object id '85da262dghfgjhj' does not have authorization to perform action 'Microsoft.Network/networkInterfaces/read' over scope '/subscriptions/4753465465465/resourceGroups/rg-test/providers/Microsoft.Network/networkInterfaces/nic-jb-test' or the scope is invalid. If access was recently granted, please refresh your credentials.

服务主体需要能够登录到 VM 的实际 RBAC 角色是什么?

是否可以使用服务主体登录到azure VM?我在这里错过任何步骤吗?

  • 尝试1:

    在资源组级别为 VM 添加了

    Reader
    角色。

    az ssh
    命令现在在浏览器中触发设备登录https://microsoft.com/devicelogin。它不会接受服务主体作为用户。

  • 尝试2:

    使用参数

    --local-user
    ,CLI 仍然提示设备授权。 :

az ssh vm -n <vm-name> -g <resource-group-name> --local-user <test-sp-app-id> 

根据文档:

 az ssh vm : SSH into Azure VMs or Arc Servers.
    Users can login using AAD issued certificates or using local user credentials. We recommend
    login using AAD issued certificates. To SSH using local user credentials, you must provide
    the local user name using the --local-user parameter.
ssh azure-active-directory azure-virtual-machine rbac
1个回答
0
投票

可以尝试将

Network Contributor
角色分配给订阅级别的服务主体,或者虚拟机所在的资源组级别。这将授予服务主体读取虚拟机网络接口的权限。

  1. 转到 Azure 门户并导航到 VM 所在的订阅或资源组。

  2. Add
    上单击
    Access control (IAM)

  3. 从角色中选择角色

    Network Contributor

  4. Add members
    部分,输入服务主体的应用程序ID。

  5. 然后保存并将角色分配给服务主体。

角色分配完成后,您应该能够使用服务主体登录到 VM,没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.