Udostępnij za pośrednictwem


Udzielanie uprawnień użytkownika do określonych zasad laboratorium

Omówienie

W tym artykule pokazano, jak przy użyciu programu PowerShell udzielić użytkownikom uprawnień do określonych zasad laboratorium. W ten sposób można stosować uprawnienia na podstawie potrzeb każdego użytkownika. Na przykład możesz przyznać określonemu użytkownikowi możliwość zmiany ustawień zasad maszyny wirtualnej, ale nie zasad kosztów.

Zasady jako zasoby

Zgodnie z opisem w artykule Kontrola dostępu oparta na rolach (RBAC) na platformie Azure kontrola dostępu na podstawie ról platformy Azure umożliwia szczegółowe zarządzanie dostępem do zasobów na platformie Azure. Korzystając z kontroli dostępu opartej na rolach platformy Azure, możesz segregować obowiązki w zespole DevOps i udzielać tylko użytkownikom, których potrzebują do wykonywania swoich zadań.

W usłudze DevTest Labs zasady są typem zasobu, który włącza akcję RBAC platformy Azure Microsoft.DevTestLab/labs/policySets/policies/. Każda zasada laboratorium jest zasobem w typie zasobu Zasady i może zostać przypisana jako zakres do roli platformy Azure.

Na przykład w celu udzielenia użytkownikom uprawnień do odczytu/zapisu w zasadach Dozwolone rozmiary maszyn wirtualnych należy utworzyć rolę niestandardową, która działa z akcją Microsoft.DevTestLab/labs/policySets/policies/ , a następnie przypisać odpowiednich użytkowników do tej roli niestandardowej w zakresie Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab.

Aby dowiedzieć się więcej na temat ról niestandardowych w kontroli dostępu opartej na rolach platformy Azure, zobacz Role niestandardowe platformy Azure.

Tworzenie roli niestandardowej laboratorium przy użyciu programu PowerShell

Aby rozpocząć pracę, musisz zainstalować program Azure PowerShell.

Po skonfigurowaniu poleceń cmdlet programu Azure PowerShell można wykonać następujące zadania:

  • Wyświetlanie listy wszystkich operacji/akcji dostawcy zasobów
  • Wyświetlanie listy akcji w określonej roli:
  • Tworzenie roli niestandardowej

Poniższy skrypt programu PowerShell ilustruje przykłady wykonywania tych zadań:

# List all the operations/actions for a resource provider.
Get-AzProviderOperation -OperationSearchString "Microsoft.DevTestLab/*"

# List actions in a particular role.
(Get-AzRoleDefinition "DevTest Labs User").Actions

# Create custom role.
$policyRoleDef = (Get-AzRoleDefinition "DevTest Labs User")
$policyRoleDef.Id = $null
$policyRoleDef.Name = "Policy Contributor"
$policyRoleDef.IsCustom = $true
$policyRoleDef.AssignableScopes.Clear()
$policyRoleDef.AssignableScopes.Add("/subscriptions/<SubscriptionID> ")
$policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/policySets/policies/*")
$policyRoleDef = (New-AzRoleDefinition -Role $policyRoleDef)

Przypisywanie uprawnień użytkownikowi dla określonych zasad przy użyciu ról niestandardowych

Po zdefiniowaniu ról niestandardowych możesz przypisać je do użytkowników. Aby przypisać rolę niestandardową do użytkownika, musisz najpierw uzyskać identyfikator ObjectId reprezentujący tego użytkownika. W tym celu użyj polecenia cmdlet Get-AzADUser .

W poniższym przykładzie identyfikator ObjectId użytkownika SomeUser to 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3.

PS C:\>Get-AzADUser -SearchString "SomeUser"

DisplayName                    Type                           ObjectId
-----------                    ----                           --------
someuser@hotmail.com                                          05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3

Po utworzeniu identyfikatora ObjectId użytkownika i niestandardowej nazwy roli możesz przypisać tę rolę do użytkownika za pomocą polecenia cmdlet New-AzRoleAssignment :

PS C:\>New-AzRoleAssignment -ObjectId 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3 -RoleDefinitionName "Policy Contributor" -Scope /subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroupName>/providers/Microsoft.DevTestLab/labs/<LabName>/policySets/default/policies/AllowedVmSizesInLab

W poprzednim przykładzie używane są zasady AllowedVmSizesInLab . Możesz użyć dowolnej z następujących zasad:

  • MaxVmsAllowedPerUser
  • MaxVmsAllowedPerLab
  • AllowedVmSizesInLab
  • LabVmsShutdown

Tworzenie roli, aby umożliwić użytkownikom wykonywanie określonego zadania

Ten przykładowy skrypt, który tworzy rolę DevTest Labs Advanced User, która ma uprawnienia do uruchamiania i zatrzymywania wszystkich maszyn wirtualnych w laboratorium:

    $policyRoleDef = Get-AzRoleDefinition "DevTest Labs User"
    $policyRoleDef.Actions.Remove('Microsoft.DevTestLab/Environments/*')
    $policyRoleDef.Id = $null
    $policyRoleDef.Name = "DevTest Labs Advanced User"
    $policyRoleDef.IsCustom = $true
    $policyRoleDef.AssignableScopes.Clear()
    $policyRoleDef.AssignableScopes.Add("/subscriptions/<subscription Id>")
    $policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/virtualMachines/Start/action")
    $policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/virtualMachines/Stop/action")
    $policyRoleDef = New-AzRoleDefinition -Role $policyRoleDef 

Rozpoczynanie pracy z usługą Azure DevTest Labs

Używasz platformy Azure po raz pierwszy? Tworzenie bezpłatnego konta platformy Azure.

Już masz konto na platformie Azure? Utwórz pierwsze laboratorium i rozpocznij pracę z usługą Azure DevTest Labs w ciągu kilku minut.

Następne kroki

Po udzieleniu uprawnień użytkownika do określonych zasad laboratorium poniżej przedstawiono kilka następnych kroków, które należy wziąć pod uwagę: