New-AzureRmRoleDefinition

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-AzureRmRoleDefinition, 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.

Ostrzeżenie

Moduł AzureRM PowerShell został oficjalnie przestarzały od 29 lutego 2024 r. Zaleca się migrowanie użytkowników z modułu AzureRM do modułu Az programu PowerShell w celu zapewnienia ciągłej obsługi i aktualizacji.

Mimo że moduł AzureRM może nadal działać, nie jest już utrzymywany ani obsługiwany, umieszczając wszelkie dalsze zastosowania według uznania i ryzyka użytkownika. Zapoznaj się z naszymi zasobami migracji, aby uzyskać wskazówki dotyczące przejścia do modułu Az.

Składnia

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

Opis

Polecenie cmdlet New-AzureRmRoleDefinition 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-AzureRmProviderOperation, aby uzyskać operację dla dostawców zasobów platformy Azure, których 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 działania 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

Tworzenie przy użyciu obiektu PSRoleDefinitionObject

PS C:\> $role = Get-AzureRmRoleDefinition -Name "Virtual Machine Contributor"
          PS C:\> $role.Id = $null
          PS C:\> $role.Name = "Virtual Machine Operator"
          PS C:\> $role.Description = "Can monitor, start, and restart virtual machines."
          PS C:\> $role.Actions.RemoveRange(0,$role.Actions.Count)
          PS C:\> $role.Actions.Add("Microsoft.Compute/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/start/action")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/restart/action")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/downloadRemoteDesktopConnectionFile/action")
          PS C:\> $role.Actions.Add("Microsoft.Network/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Storage/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Authorization/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/read")
          PS C:\> $role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/resources/read")
          PS C:\> $role.Actions.Add("Microsoft.Insights/alertRules/*")
          PS C:\> $role.Actions.Add("Microsoft.Support/*")
          PS C:\> $role.AssignableScopes.Clear()
          PS C:\> $role.AssignableScopes.Add("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")

          PS C:\> New-AzureRmRoleDefinition -Role $role

Tworzenie przy użyciu pliku JSON

PS C:\> New-AzureRmRoleDefinition -InputFile C:\Temp\roleDefinition.json

Parametry

-DefaultProfile

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

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputFile

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

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Role

Obiekt definicji roli.

Type:PSRoleDefinition
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

None

Dane wyjściowe

PSRoleDefinition

Uwagi

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