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:
- Nome: o nome do papel personalizado
- Descrição: uma breve descrição da função que resume o acesso que a função concede.
- 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.
- 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:
- Ações: o conjunto de operações do plano de controlo às quais o papel personalizado concede acesso.
- NotActions: o conjunto de operações que devem ser excluídas das Ações para determinar as ações efetivas.
- DataActions: o conjunto de operações no plano de dados ao qual o papel personalizado concede acesso.
- NotDataActions: o conjunto de operações que devem ser excluídas das DataActions.
- Condição: uma condição Attribute-Based Controlo de Acesso (ABAC) que restringe as permissões.
- 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