用于服务主体的Azure多订阅RBAC

tjjdgumg  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(90)

我有两个Azure订阅。Subscription_1用于创建VNET/SUBNET。Subscription_2用于在该VNET中创建VM。
为了进行部署,我创建了2个服务主体。SPN_1将部署VNET/SUBNET。SPN_2将部署VM。

az ad sp create-for-rbac --name SP_1  --role contributor  --scopes /subscriptions/mySubscriptionID_of_Subscription_1 

az ad sp create-for-rbac --name SP_2  --role contributor  --scopes /subscriptions/mySubscriptionID_of_Subscription_2

但是,对于SPN_2来说,要部署VM,我需要SP_2为Subscription_1提供“网络贡献者”RBAC。
我看了文档,它非常差,没有给出更新的例子:www.example.com https://learn.microsoft.com/en-us/cli/azure/ad/sp?view=azure-cli-latest#az-ad-sp-update
如何更新SP_1以实现此目标?实现这一目标的CLI是什么?

zbsbpyhn

zbsbpyhn1#

您不需要创建多个服务主体:

  • 使用az ad sp create-for-rbac创建一个服务主体。
  • 使用az role assignment create分配角色。

下面是一个PowerShell的例子:

# Create service principal
$spCredentials = az ad sp create-for-rbac --name SP_1 | ConvertFrom-Json

# Get SP details
$spDetails = az ad sp show --id $spCredentials.appId | ConvertFrom-Json

# Create contributor role assignment for subscription1
az role assignment create --assignee-principal-type ServicePrincipal --assignee-object-id $spDetails.id --role "contributor" --scope /subscriptions/mySubscriptionID_of_Subscription_1

# Create network contributor role assignment for subscription1
az role assignment create --assignee-principal-type ServicePrincipal --assignee-object-id $spDetails.id --role "network contributor" --scope /subscriptions/mySubscriptionID_of_Subscription_1

# Create contributor role assignment for subscription2
az role assignment create --assignee-principal-type ServicePrincipal --assignee-object-id $spDetails.id --role "contributor"--scope /subscriptions/mySubscriptionID_of_Subscription_2

相关问题