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:
- Nome: o nome da função personalizada
- Descrição: uma breve descrição da função que resume o acesso que a função concede.
- 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.
- 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:
- Ações: o conjunto de operações do painel de controle ao qual a função personalizada concede acesso.
- NotActions: o conjunto de operações que deve ser excluído das Ações para determinar as ações efetivas.
- DataActions: o conjunto de operações do plano de dados ao qual a função personalizada concede acesso.
- NotDataActions: o conjunto de operações que deve ser excluído dos DataActions.
- Condição: uma condição de Attribute-Based Controle de Acesso (ABAC) que restringe as permissões.
- 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