基于角色的訪問控制(RBAC)是在Azure資源管理器基礎(chǔ)上構(gòu)建的授權(quán)系統(tǒng),針對(duì)Azure中的資源提供精細(xì)的訪問權(quán)限管理。RBAC提供了內(nèi)置角色和可以滿足特定需求的自定義角色。在創(chuàng)建自定義角色時(shí),需要為該角色指定一個(gè)可分配范圍,包括特定的訂閱或資源組。當(dāng)您添加了新的訂閱或資源組后,可能希望將該自定義角色的可分配范圍擴(kuò)展至新的訂閱或資源組內(nèi)。如果您嘗試在新的訂閱下創(chuàng)建配置完全相同的自定義角色,會(huì)收到如下報(bào)錯(cuò):
"New-AzureRmRoleDefinition:A role definition cannot be updated with a name that already exists."
這是因?yàn)樽远x角色信息存儲(chǔ)在Azure Active Directory(Azure AD)目錄中,即使是同一個(gè)Azure AD目錄中的不同訂閱也不允許出現(xiàn)重名的自定義角色。
當(dāng)然,您可以使用一個(gè)新的自定義角色名稱來避免這個(gè)報(bào)錯(cuò)。為了提供更好的管理體驗(yàn),是否可以更新已有的自定義角色的可分配范圍呢?答案是肯定的。請(qǐng)準(zhǔn)備好PowerShell的環(huán)境跟我們一起來試試吧。
1.登錄到Azure并切換至相應(yīng)的訂閱下(請(qǐng)?zhí)鎿Q為您的訂閱ID):
PowerShell
Login-AzureRmAccount-EnvironmentName AzureChinaCloud
$subscriptionid="00000000-0000-0000-0000-000000000000"
Select-AzureRmSubscription-SubscriptionId$subscriptionid
2.查看相應(yīng)自定義角色的配置,輸出中的AssignableScopes便是當(dāng)前的可分配范圍:
PowerShell
$role=Get-AzureRmRoleDefinition-Name"ROLE_DEFINITION_NAME"
$role
3.在AssignableScopes部分添加更多的訂閱ID或資源組,可多次重復(fù)此步驟以加入所有需要的訂閱ID或資源組:
PowerShell
$role.AssignableScopes.Add("/subscriptions/11111111-1111-1111-1111-111111111111")
4.更新自定義角色配置:
PowerShell
Set-AzureRmRoleDefinition-Role$role
等待至新配置生效后,便可以在新的范圍內(nèi)使用該自定義角色了。