New-AzRoleDefinition

Cria um papel personalizado no 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. Finalmente, use este 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 New-AzRoleDefinition cmdlet cria um papel personalizado em Azure Role-Based Controlo 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 da função de entrada DEVE conter as seguintes propriedades:

  1. Nome: o nome do papel personalizado
  2. Descrição: uma breve descrição da função que resume o acesso que a função concede.
  3. Permissões: um conjunto de objetos de permissões, cada um contendo Ações e/ou DataAções. Use Get-AzProviderOperation para obter a operação para Azure fornecedores de recursos que possam ser assegurados usando Azure RBAC. Seguem-se algumas cadeias de operações válidas:
    • "*/read" concede acesso às operações de leitura de todos os fornecedores de recursos do Azure.
    • "Microsoft. Rede/*/leitura" concede acesso a operações de leitura para todos os tipos de recursos na Microsoft. Fornecedor de recursos de rede do Azure.
    • "Microsoft. "Compute/virtualMachines/*" concede acesso a todas as operações das máquinas virtuais e aos seus tipos de recursos filhos.
  4. AssignableScopes: o conjunto de scopes (subscrições do Azure ou grupos de recursos) em que o papel personalizado estará disponível para atribuição. Seguem-se alguns escopos atribuídos 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": torna a função disponível para atribuição apenas no grupo de recursos de rede.

Cada objeto de permissão no array de permissões PODE conter:

  1. Ações: o conjunto de operações do plano de controlo às quais o papel personalizado concede acesso.
  2. NotActions: o conjunto de operações que devem ser excluídas das Ações para determinar as ações efetivas.
  3. DataActions: o conjunto de operações no plano de dados ao qual o papel personalizado concede acesso.
  4. NotDataActions: o conjunto de operações que devem ser excluídas das DataActions.
  5. Condição: uma condição Attribute-Based Controlo 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 Condição for especificada).

Note

A API RBAC do Azure atualmente suporta apenas um único elemento no array de Permissões ao criar papéis personalizados. Embora o modelo de dados suporte múltiplas entradas de permissões, as operações de criação devem usar exatamente um objeto de permissão.

Segue-se um exemplo de definição de papel JSON que pode ser fornecido como entrada: { "Name": "Custom VM Operator", "Description": "Pode monitorizar todos os recursos e iniciar e reiniciar máquinas virtuais", "Permissões": [ { "Ações": [ "/read", "Microsoft. Computação/máquinas virtuais/reiniciar/ação", "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-xxxxxxxxxxxx"] }

Exemplos

Exemplo 1: Criar um papel personalizado 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 um papel personalizado chamado "Operador de Máquina Virtual" com as ações especificadas.

Exemplo 2: Criar um papel personalizado usando ficheiro JSON

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

Cria um papel personalizado a partir de um ficheiro de definição JSON.

Parâmetros

-DefaultProfile

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

Propriedades dos parâmetros

Tipo:IAzureContextContainer
Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:AzContext, AzureRmContext, AzureCredential

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-InputFile

Nome do arquivo contendo uma única definição de função json.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

InputFileParameterSet
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Role

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

Propriedades dos parâmetros

Tipo:PSRoleDefinition
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

RoleDefinitionParameterSet
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-SkipClientSideScopeValidation

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

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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

Notas

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