Udostępnij za pośrednictwem


New-AzRoleDefinition

Tworzy rolę niestandardową w kontroli dostępu opartej na rolach platformy Azure. Podaj plik definicji roli JSON lub obiekt PSRoleDefinition jako dane wejściowe. Najpierw użyj polecenia Get-AzRoleDefinition, aby wygenerować obiekt definicji roli punktu odniesienia. Następnie zmodyfikuj jego właściwości zgodnie z potrzebami. Na koniec użyj tego polecenia, aby utworzyć rolę niestandardową przy użyciu definicji roli.

Składnia

New-AzRoleDefinition
   [-InputFile] <String>
   [-SkipClientSideScopeValidation]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzRoleDefinition
   [-Role] <PSRoleDefinition>
   [-SkipClientSideScopeValidation]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Opis

Polecenie cmdlet New-AzRoleDefinition tworzy rolę niestandardową w kontroli dostępu opartej na rolach platformy Azure. Podaj definicję roli jako dane wejściowe polecenia jako plik JSON lub obiekt PSRoleDefinition. Definicja roli wejściowej MUSI zawierać następujące właściwości:

  1. DisplayName: nazwa roli niestandardowej
  2. Opis: krótki opis roli, która podsumowuje dostęp udzielany przez rolę.
  3. Akcje: zestaw operacji, do których rola niestandardowa udziela dostępu. Użyj polecenia Get-AzProviderOperation, aby uzyskać operację dla dostawców zasobów platformy Azure, które można zabezpieczyć przy użyciu kontroli dostępu opartej na rolach platformy Azure. Poniżej przedstawiono kilka prawidłowych ciągów operacji:
  • "*/read" przyznaje dostęp do operacji odczytu wszystkich dostawców zasobów platformy Azure.
  • Program "Microsoft.Network/*/read" udziela dostępu do operacji odczytu dla wszystkich typów zasobów w dostawcy zasobów Microsoft.Network platformy Azure.
  • Wyrażenie "Microsoft.Compute/virtualMachines/*" przyznaje dostęp do wszystkich operacji maszyn wirtualnych i ich podrzędnych typów zasobów.
  1. AssignableScopes: zestaw zakresów (subskrypcji platformy Azure lub grup zasobów), w których rola niestandardowa będzie dostępna do przypisania. Za pomocą funkcji AssignableScopes można udostępnić rolę niestandardową do przypisania tylko w subskrypcjach lub grupach zasobów, które jej potrzebują, a nie zaśmiecać środowisko użytkownika dla pozostałych subskrypcji lub grup zasobów. Poniżej przedstawiono kilka prawidłowych zakresów możliwych do przypisania:
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": udostępnia rolę do przypisania w dwóch subskrypcjach.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": udostępnia rolę do przypisania w jednej subskrypcji.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": udostępnia rolę do przypisania tylko w sieciowej grupie zasobów. Definicja roli wejściowej MOŻE zawierać następujące właściwości:
  1. NotActions: zestaw operacji, które należy wykluczyć z akcji, aby określić skuteczne akcje dla roli niestandardowej. Jeśli istnieje określona operacja, do której nie chcesz udzielać dostępu w roli niestandardowej, wygodnie jest użyć notActions do wykluczenia, zamiast określać wszystkie operacje inne niż ta konkretna operacja w obszarze Akcje.
  2. DataActions: zestaw operacji danych, do których rola niestandardowa udziela dostępu.
  3. NotDataActions: zestaw operacji, które należy wykluczyć z funkcji DataActions, aby określić skuteczne akcje danych dla roli niestandardowej. Jeśli istnieje określona operacja danych, do której nie chcesz udzielać dostępu w roli niestandardowej, wygodnie jest użyć funkcji NotDataActions, aby je wykluczyć, zamiast określać wszystkie operacje inne niż określona operacja w obszarze Akcje. UWAGA: Jeśli użytkownik ma przypisaną rolę określającą operację w notActions, a także przypisaną inną rolę przyznaje dostęp do tej samej operacji — użytkownik będzie mógł wykonać tę operację. NotActions nie jest regułą odmowy — jest to po prostu wygodny sposób tworzenia zestawu dozwolonych operacji, gdy trzeba wykluczyć określone operacje. Poniżej przedstawiono przykładową definicję roli JSON, którą można podać jako dane wejściowe { "Name": "Zaktualizowana rola", "Description": "Może monitorować wszystkie zasoby i uruchamiać i uruchamiać ponownie maszyny wirtualne", "Actions": [ "/read", "Microsoft.ClassicCompute/virtualmachines/restart/action", "Microsoft.ClassicCompute/virtualmachines/start/action" ], "NotActions": [ "/write" ], "DataActions": [ "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"], "NotDataActions": [ "Microsoft. Storage/storageAccounts/blobServices/containers/blobs/write" ], "AssignableScopes": ["/subscriptions/xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx"] }

Przykłady

Przykład 1. Tworzenie przy użyciu obiektu PSRoleDefinitionObject

$role = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition 
$role.Name = 'Virtual Machine Operator'
$role.Description = 'Can monitor, start, and restart virtual machines.'
$role.IsCustom = $true
$role.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
$role.Actions = @(
    "Microsoft.Compute/*/read"
    "Microsoft.Compute/virtualMachines/start/action"
    "Microsoft.Compute/virtualMachines/restart/action"
    "Microsoft.Compute/virtualMachines/downloadRemoteDesktopConnectionFile/action"
    "Microsoft.Network/*/read"
    "Microsoft.Storage/*/read"
    "Microsoft.Authorization/*/read"
    "Microsoft.Resources/subscriptions/resourceGroups/read"
    "Microsoft.Resources/subscriptions/resourceGroups/resources/read"
    "Microsoft.Insights/alertRules/*"
    "Microsoft.Support/*"
)

New-AzRoleDefinition -Role $role

Przykład 2. Tworzenie przy użyciu pliku JSON

New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json

Parametry

-DefaultProfile

Poświadczenia, konto, dzierżawa i subskrypcja używane do komunikacji z platformą Azure

Typ:IAzureContextContainer
Aliasy:AzContext, AzureRmContext, AzureCredential
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-InputFile

Nazwa pliku zawierająca pojedynczą definicję roli JSON.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Role

Obiekt definicji roli.

Typ:PSRoleDefinition
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-SkipClientSideScopeValidation

Jeśli zostanie określony, pomiń walidację zakresu po stronie klienta.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

Dane wyjściowe

PSRoleDefinition

Uwagi

Słowa kluczowe: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment