基于角色的訪問控制(RBAC)是在Azure資源管理器基礎(chǔ)上構(gòu)建的授權(quán)系統(tǒng),針對Azure中的資源提供精細(xì)的訪問權(quán)限管理。RBAC提供了內(nèi)置角色和可以滿足特定需求的自定義角色。在創(chuàng)建自定義角色時,需要為該角色指定一個可分配范圍,包括特定的訂閱或資源組。當(dāng)您添加了新的訂閱或資源組后,可能希望將該自定義角色的可分配范圍擴(kuò)展至新的訂閱或資源組內(nèi)。如果您嘗試在新的訂閱下創(chuàng)建配置完全相同的自定義角色,會收到如下報錯:
"New-AzureRmRoleDefinition:A role definition cannot be updated with a name that already exists."
這是因為自定義角色信息存儲在Azure Active Directory(Azure AD)目錄中,即使是同一個Azure AD目錄中的不同訂閱也不允許出現(xiàn)重名的自定義角色。
當(dāng)然,您可以使用一個新的自定義角色名稱來避免這個報錯。為了提供更好的管理體驗,是否可以更新已有的自定義角色的可分配范圍呢?答案是肯定的。請準(zhǔn)備好PowerShell的環(huán)境跟我們一起來試試吧。
1.登錄到Azure并切換至相應(yī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)使用該自定義角色了。