New-AzRoleDefinition

Cria uma função personalizada em Azure RBAC. 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. Por fim, use esse comando para criar uma função personalizada usando a definição de função.

Sintaxe

InputFileParameterSet

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

RoleDefinitionParameterSet

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

Description

O cmdlet New-AzRoleDefinition cria uma função personalizada em Azure Role-Based Controle de Acesso. 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. Nome: 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. Permissões: uma matriz de objetos de permissão, cada um contendo Ações e/ou DataActions. Use Get-AzProviderOperation para obter a operação para provedores de recursos Azure que podem ser protegidos usando Azure RBAC. A seguir estão algumas cadeias de caracteres de operação válidas:
    • "*/read" concede acesso a operações de leitura de todos os provedores de recursos Azure.
    • "Microsoft. A rede/*/leitura" concede acesso a operações de leitura para todos os tipos de recursos no Microsoft. Provedor de recursos de rede de Azure.
    • "Microsoft. Computação/virtualMachines/*" concede acesso a todas as operações de máquinas virtuais e seus tipos de recursos filho.
  4. AssignableScopes: o conjunto de escopos (Azure assinaturas ou grupos de recursos) em que a função personalizada estará disponível para atribuição. 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 de rede.

Cada objeto de permissão na matriz Permissions PODE conter:

  1. Ações: o conjunto de operações do painel de controle ao qual a função personalizada concede acesso.
  2. NotActions: o conjunto de operações que deve ser excluído das Ações para determinar as ações efetivas.
  3. DataActions: o conjunto de operações do plano de dados ao qual a função personalizada concede acesso.
  4. NotDataActions: o conjunto de operações que deve ser excluído dos DataActions.
  5. Condição: uma condição de Attribute-Based Controle de Acesso (ABAC) que restringe as permissões.
  6. ConditionVersion: a versão da sintaxe da condição, por exemplo, "2.0" (necessária se a condição for especificada).

Note

O Azure API RBAC atualmente dá suporte apenas a um único elemento na matriz Permissions ao criar funções personalizadas. Embora o modelo de dados dê suporte a várias entradas de permissão, as operações de criação devem usar exatamente um objeto de permissão.

Veja a seguir uma definição de função JSON de exemplo que pode ser fornecida como entrada: { "Nome": "Operador de VM personalizado", "Descrição": "Pode monitorar todos os recursos e iniciar e reiniciar máquinas virtuais", "Permissões": [ { "Ações": [ "/read", "Microsoft. Computação/virtualMachines/restart/action", "Microsoft. Compute/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-xxxx-xxxxxxx"] }

Exemplos

Exemplo 1: criar uma função personalizada usando o objeto PSRoleDefinition

$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")
$permission = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSPermission
$permission.Actions = @(
    "Microsoft.Compute/*/read"
    "Microsoft.Compute/virtualMachines/start/action"
    "Microsoft.Compute/virtualMachines/restart/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/*"
)
$role.Permissions = @($permission)

New-AzRoleDefinition -Role $role

Cria uma função personalizada chamada "Operador de Máquina Virtual" com as ações especificadas.

Exemplo 2: Criar uma função personalizada usando o arquivo JSON

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

Cria uma função personalizada a partir de um arquivo de definição JSON.

Parâmetros

-DefaultProfile

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

Propriedades do parâmetro

Tipo:IAzureContextContainer
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:AzContext, AzureRmContext, AzureCredential

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-InputFile

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

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

InputFileParameterSet
Cargo:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Role

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

Propriedades do parâmetro

Tipo:PSRoleDefinition
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

RoleDefinitionParameterSet
Cargo:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-SkipClientSideScopeValidation

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

None

Saídas

PSRoleDefinition

Observações

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