Samouczek: udzielanie grupie dostępu do zasobów platformy Azure przy użyciu programu Azure PowerShell

Kontrola dostępu oparta na rolach Azure (Azure RBAC, Role Based Access Control) to sposób zarządzania dostępem do zasobów na platformie Azure. W tym samouczku przyznasz grupie dostęp z możliwością wyświetlania wszystkiego w ramach subskrypcji i zarządzania wszystkim w grupie zasobów przy użyciu programu Azure PowerShell.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Udzielanie dostępu grupie w innych zakresach
  • Lista dostępu
  • Usuwanie dostępu

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Wymagania wstępne

Do ukończenia tego samouczka niezbędne są następujące elementy:

Przypisania ról

Aby udzielić dostępu w kontroli dostępu na podstawie ról platformy Azure, należy utworzyć przypisanie roli. Przypisanie roli składa się z trzech elementów: podmiotu zabezpieczeń, definicji roli i zakresu. W tym samouczku utworzysz dwa przypisania ról:

Podmiot zabezpieczeń Definicja roli Scope
Grupuj
(Grupa samouczka kontroli dostępu opartej na rolach)
Czytelnik Subskrypcja
Grupuj
(Grupa samouczka kontroli dostępu opartej na rolach)
Współautor Grupa zasobów
(rbac-tutorial-resource-group)

Role assignments for a group

Tworzenie grupy

Do przypisania roli potrzebny jest użytkownik, grupa lub jednostka usługi. Jeśli nie masz jeszcze grupy, możesz ją utworzyć.

  • W usłudze Azure Cloud Shell utwórz nową grupę przy użyciu polecenia New-MgGroup .

    New-MgGroup -DisplayName "RBAC Tutorial Group" -MailEnabled:$false `
        -SecurityEnabled:$true -MailNickName "NotSet"
    
    DisplayName         Id                                   MailNickname Description GroupTypes
    -----------         --                                   ------------ ----------- ----------
    RBAC Tutorial Group 11111111-1111-1111-1111-111111111111 NotSet                   {}
    

Jeśli nie masz uprawnień do tworzenia grup, możesz wypróbować samouczek: udzielanie użytkownikowi dostępu do zasobów platformy Azure przy użyciu programu Azure PowerShell .

Tworzenie grupy zasobów

Za pomocą grupy zasobów można zademonstrować przypisywanie roli w zakresie grupy zasobów.

  1. Pobierz listę lokalizacji regionów za pomocą polecenia Get-AzLocation.

    Get-AzLocation | select Location
    
  2. Wybierz lokalizację w pobliżu i przypisz ją do zmiennej.

    $location = "westus"
    
  3. Utwórz nową grupę zasobów za pomocą polecenia New-AzResourceGroup.

    New-AzResourceGroup -Name "rbac-tutorial-resource-group" -Location $location
    
    ResourceGroupName : rbac-tutorial-resource-group
    Location          : westus
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
    

Udzielanie dostępu

Aby udzielić dostępu grupie, przypisz rolę za pomocą polecenia New-AzRoleAssignment. Musisz określić podmiot zabezpieczeń, definicję roli i zakres.

  1. Pobierz identyfikator obiektu grupy przy użyciu polecenia Get-MgGroup .

    Get-MgGroup -Filter "DisplayName eq 'RBAC Tutorial Group'"
    
    DisplayName         Id                                   MailNickname Description GroupTypes
    -----------         --                                   ------------ ----------- ----------
    RBAC Tutorial Group 11111111-1111-1111-1111-111111111111 NotSet                   {}
    
  2. Zapisz identyfikator obiektu grupy w zmiennej.

    $groupId = "11111111-1111-1111-1111-111111111111"
    
  3. Pobierz identyfikator subskrypcji za pomocą polecenia Get-AzSubscription.

    Get-AzSubscription
    
    Name     : Pay-As-You-Go
    Id       : 00000000-0000-0000-0000-000000000000
    TenantId : 22222222-2222-2222-2222-222222222222
    State    : Enabled
    
  4. Zapisz zakres subskrypcji w zmiennej.

    $subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
    
  5. Przypisz grupie rolę Czytelnik w zakresie subskrypcji.

    New-AzRoleAssignment -ObjectId $groupId `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/44444444-4444-4444-4444-444444444444
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
    DisplayName        : RBAC Tutorial Group
    SignInName         :
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : Group
    CanDelegate        : False
    
  6. Przypisz grupie rolę Współautor w zakresie grupy zasobów.

    New-AzRoleAssignment -ObjectId $groupId `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
    DisplayName        : RBAC Tutorial Group
    SignInName         :
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : Group
    CanDelegate        : False
    

Lista dostępu

  1. Aby zweryfikować dostęp do subskrypcji, wyświetl listę przypisań ról za pomocą polecenia Get-AzRoleAssignment.

    Get-AzRoleAssignment -ObjectId $groupId -Scope $subScope
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
    DisplayName        : RBAC Tutorial Group
    SignInName         :
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : Group
    CanDelegate        : False
    

    W danych wyjściowych widać, że do grupy samouczka kontroli dostępu opartej na rolach przypisano rolę Czytelnik w zakresie subskrypcji.

  2. Aby zweryfikować dostęp do grupy zasobów, wyświetl listę przypisań ról za pomocą polecenia Get-AzRoleAssignment.

    Get-AzRoleAssignment -ObjectId $groupId -ResourceGroupName "rbac-tutorial-resource-group"
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
    DisplayName        : RBAC Tutorial Group
    SignInName         :
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : Group
    CanDelegate        : False
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
    DisplayName        : RBAC Tutorial Group
    SignInName         :
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : Group
    CanDelegate        : False
    

    W danych wyjściowych widać, że do grupy samouczka kontroli dostępu opartej na rolach przypisano zarówno rolę Współautor, jak i rolę Czytelnik. Rola Współautor jest przypisana w zakresie rbac-tutorial-resource-group, a rola Czytelnik jest dziedziczona w zakresie subskrypcji.

Opcjonalnie: tworzenie listy dostępu przy użyciu witryny Azure Portal

  1. Aby sprawdzić, jak wyglądają przypisania ról w witrynie Azure Portal, należy wyświetlić blok Kontrola dostępu (IAM) dla subskrypcji.

    Role assignments for a group at subscription scope

  2. Wyświetl blok Kontrola dostępu (IAM) dla grupy zasobów.

    Role assignments for a group at resource group scope

Usuwanie dostępu

Aby usunąć dostęp dla użytkowników, grup i aplikacji, usuń przypisanie roli za pomocą polecenia Remove-AzRoleAssignment.

  1. Za pomocą następującego polecenia usuń przypisanie roli Współautor dla grupy w zakresie grupy zasobów.

    Remove-AzRoleAssignment -ObjectId $groupId `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
  2. Za pomocą następującego polecenia usuń przypisanie roli Czytelnik dla grupy w zakresie subskrypcji.

    Remove-AzRoleAssignment -ObjectId $groupId `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    

Czyszczenie zasobów

Aby wyczyścić zasoby utworzone w tym samouczku, usuń grupę zasobów i grupę.

  1. Usuń grupę zasobów za pomocą polecenia 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"):
    
  2. Po wyświetleniu monitu o potwierdzenie wpisz Y. Usunięcie potrwa kilka sekund.

  3. Usuń grupę przy użyciu polecenia Remove-MgGroup .

    Remove-MgGroup -GroupID $groupId
    

    Jeśli podczas próby usunięcia grupy wystąpi błąd, możesz także usunąć grupę w portalu.

Następne kroki