教學課程:使用 Azure PowerShell 將 Azure 資源的存取權授與群組
Azure 角色型存取控制 (Azure RBAC) 是您可用來管理 Azure 資源存取權的方法。 在本教學課程中,您會授與群組存取權,以檢視訂用帳戶中的所有內容,並使用 Azure PowerShell 管理資源群組中的所有內容。
在本教學課程中,您會了解如何:
- 授與不同範圍群組的存取權
- 列出存取權
- 移除存取權
如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
注意
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱 安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
必要條件
若要完成本教學課程,您將會需要:
- 在 Microsoft Entra ID 中建立群組的許可權(或具有現有的群組)
- Azure Cloud Shell
- Microsoft Graph PowerShell SDK
角色指派
在 Azure RBAC 中,若要授與存取權,您可以建立角色指派。 角色指派由三項元素所組成:安全性主體、角色定義和範圍。 以下是您將在本教學課程中執行的兩個角色指派:
安全性主體 | 角色定義 | 範圍 |
---|---|---|
群組 (RBAC 教學課程群組) |
讀取者 | 訂用帳戶 |
群組 (RBAC 教學課程群組) |
參與者 | 資源群組 (rbac-tutorial-resource-group) |
建立群組
若要指派角色,您需要使用者、群組或服務主體。 如果您還沒有群組,您可以建立群組。
在 Azure Cloud Shell 中,使用 New-MgGroup 命令建立新的群組。
New-MgGroup -DisplayName "RBAC Tutorial Group" -MailEnabled:$false ` -SecurityEnabled:$true -MailNickName "NotSet"
DisplayName Id MailNickname Description GroupTypes ----------- -- ------------ ----------- ---------- RBAC Tutorial Group aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NotSet {}
如果您沒有建立群組的許可權,您可以嘗試教學 課程:改為使用 Azure PowerShell 將 Azure 資源的存取權授與使用者。
建立資源群組
您可以使用資源群組來示範如何在資源群組範圍指派角色。
使用 Get-AzLocation 命令取得區域位置清單。
Get-AzLocation | select Location
選取您附近的位置,並將它指派給變數。
$location = "westus"
使用 New-AzResourceGroup 命令建立新的資源群組。
New-AzResourceGroup -Name "rbac-tutorial-resource-group" -Location $location
ResourceGroupName : rbac-tutorial-resource-group Location : westus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group
授予存取權
若要授與群組的存取權,您可以使用 New-AzRoleAssignment 命令來指派角色。 您必須指定安全性主體、角色定義和範圍。
使用 Get-MgGroup 命令取得群組的物件識別碼。
Get-MgGroup -Filter "DisplayName eq 'RBAC Tutorial Group'"
DisplayName Id MailNickname Description GroupTypes ----------- -- ------------ ----------- ---------- RBAC Tutorial Group aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NotSet {}
將群組物件識別碼儲存在變數中。
$groupId = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
使用 Get-AzSubscription 命令取得訂用帳戶的識別碼。
Get-AzSubscription
Name : Pay-As-You-Go Id : 00000000-0000-0000-0000-000000000000 TenantId : aaaabbbb-0000-cccc-1111-dddd2222eeee State : Enabled
將訂用帳戶範圍儲存在變數中。
$subScope = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
-
New-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Reader" ` -Scope $subScope
RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial Group SignInName : RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : Group CanDelegate : False
-
New-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial Group SignInName : RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : Group CanDelegate : False
列出存取權
若要驗證訂用帳戶的存取權,請使用 Get-AzRoleAssignment 命令來列出角色指派。
Get-AzRoleAssignment -ObjectId $groupId -Scope $subScope
RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial Group SignInName : RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : Group CanDelegate : False
在輸出中,您可以看到讀取者角色已指派給訂用帳戶範圍的 RBAC 教學課程群組。
若要確認資源群組的存取權,請使用 Get-AzRoleAssignment 命令來列出角色指派。
Get-AzRoleAssignment -ObjectId $groupId -ResourceGroupName "rbac-tutorial-resource-group"
RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial Group SignInName : RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : Group CanDelegate : False RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial Group SignInName : RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : Group CanDelegate : False
在輸出中,您可以看到參與者和讀者角色都已指派給 RBAC 教學課程群組。 參與者角色位於 rbac-tutorial-resource-group 範圍,且讀取者角色繼承於訂用帳戶範圍。
(選擇性)使用 Azure 入口網站列出存取權
若要查看角色指派在 Azure 入口網站 中的外觀,請檢視訂用帳戶的 [存取控制 (IAM)] 刀鋒視窗。
檢視資源群組的 [存取控制 (IAM)] 刀鋒視窗。
移除存取權
若要移除使用者、群組和應用程式的存取權,請使用 Remove-AzRoleAssignment 移除角色指派。
使用下列命令,移除資源群組範圍群組的參與者角色指派。
Remove-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
使用下列命令,移除訂用帳戶範圍群組的讀取者角色指派。
Remove-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Reader" ` -Scope $subScope
清除資源
若要清除本教學課程所建立的資源,請刪除資源群組和群組。
使用 Remove-AzResourceGroup 命令刪除資源群組。
Remove-AzResourceGroup -Name "rbac-tutorial-resource-group"
Confirm Are you sure you want to remove resource group 'rbac-tutorial-resource-group' [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
當系統要求您確認時,請輸入 Y。刪除需要幾秒鐘的時間。
使用 Remove-MgGroup 命令刪除群組。
Remove-MgGroup -GroupID $groupId
如果您在嘗試刪除群組時收到錯誤,您也可以在入口網站中刪除群組。