New-AzRoleDefinition

Cria uma função personalizada no RBAC do Azure. Forneça um arquivo de definição de função JSON ou um objeto PSRoleDefinition como entrada. Primeiro, use o comando Get-AzRoleDefinition para gerar um objeto de definição de função de linha de base. Em seguida, modifique suas propriedades conforme necessário. Finalmente, use este comando para criar uma função personalizada usando a definição de função.

Syntax

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

Description

O cmdlet New-AzRoleDefinition cria uma função personalizada no Controle de Acesso Baseado em Função do Azure. Forneça uma definição de função como uma entrada para o comando como um arquivo JSON ou um objeto PSRoleDefinition. A definição de função de entrada DEVE conter as seguintes propriedades:

  1. DisplayName: o nome da função personalizada
  2. Descrição: uma breve descrição da função que resume o acesso que a função concede.
  3. Ações: o conjunto de operações às quais a função personalizada concede acesso. Use Get-AzProviderOperation para obter a operação para provedores de recursos do Azure que podem ser protegidos usando o RBAC do Azure. A seguir estão algumas cadeias de operação válidas:
  • "*/read" concede acesso a operações de leitura de todos os provedores de recursos do Azure.
  • "Microsoft.Network/*/read" concede acesso a operações de leitura para todos os tipos de recursos no provedor de recursos Microsoft.Network do Azure.
  • "Microsoft.Compute/virtualMachines/*" concede acesso a todas as operações de máquinas virtuais e seus tipos de recursos filho.
  1. AssignableScopes: o conjunto de escopos (assinaturas do Azure ou grupos de recursos) no qual a função personalizada estará disponível para atribuição. Usando AssignableScopes, você pode disponibilizar a função personalizada para atribuição somente nas assinaturas ou grupos de recursos que precisam dela, e não bagunçar a experiência do usuário para o restante das assinaturas ou grupos de recursos. A seguir estão alguns escopos atribuíveis válidos:
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": disponibiliza a função para atribuição em duas assinaturas.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": disponibiliza a função para atribuição em uma única assinatura.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": disponibiliza a função para atribuição somente no grupo de recursos Rede. A definição de função de entrada PODE conter as seguintes propriedades:
  1. NotActions: o conjunto de operações que devem ser excluídas das Ações para determinar as ações efetivas para a função personalizada. Se houver uma operação específica à qual você não deseja conceder acesso em uma função personalizada, é conveniente usar NotActions para excluí-la, em vez de especificar todas as operações diferentes dessa operação específica em Ações.
  2. DataActions: o conjunto de operações de dados ao qual a função personalizada concede acesso.
  3. NotDataActions: o conjunto de operações que devem ser excluídas do DataActions para determinar as ações de dados efetivas para a função personalizada. Se houver uma operação de dados específica à qual você não deseja conceder acesso em uma função personalizada, é conveniente usar NotDataActions para excluí-la, em vez de especificar todas as operações diferentes dessa operação específica em Ações. Observação : se um usuário é atribuído uma função que especifica uma operação em NotActions e também atribuído outra função concede acesso à mesma operação - o usuário será capaz de executar essa operação. NotActions não é uma regra de negação - é simplesmente uma maneira conveniente de criar um conjunto de operações permitidas quando operações específicas precisam ser excluídas. A seguir está um exemplo de definição de função json que pode ser fornecida como entrada { "Name": "Updated Role", "Description": "Can monitor all resources and start and restart virtual machines", "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-xxxx-xxxxxxxxxxxx"] }

Exemplos

Exemplo 1: Criar usando 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

Exemplo 2: Criar usando o arquivo JSON

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

Parâmetros

-DefaultProfile

As credenciais, a conta, o locatário e a assinatura usados para comunicação com o azure

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

-InputFile

Nome do arquivo que contém uma única definição de função json.

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

-Role

Objeto de definição de função.

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

-SkipClientSideScopeValidation

Se especificado, ignore a validação do escopo do lado do cliente.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

Saídas

PSRoleDefinition

Observações

Palavras-chave: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment