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:
- DisplayName: o nome da função personalizada
- Descrição: uma breve descrição da função que resume o acesso que a função concede.
- Ações: o conjunto de operações ao qual a função personalizada concede acesso. 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. Usando AssignableScopes, você pode disponibilizar a função personalizada para atribuição apenas nas assinaturas ou grupos de recursos que precisam, e não desordenar 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 de rede. A definição de função de entrada PODE conter as seguintes propriedades:
- NotActions: o conjunto de operações que deve ser excluído 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 daquela operação específica em Ações.
- DataActions: o conjunto de operações de dados ao qual a função personalizada concede acesso.
- NotDataActions: o conjunto de operações que deve ser excluído das 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 daquela operação específica em Ações. OBSERVAÇÃO: se um usuário receber uma função que especifica uma operação no NotActions e também tiver outra função atribuída conceder acesso à mesma operação, o usuário poderá 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. Veja a seguir uma definição de função json de exemplo que pode ser fornecida como entrada { "Nome": "Função Atualizada", "Descrição": "Pode monitorar todos os recursos e iniciar e reiniciar máquinas virtuais", "Ações": [ "/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/xxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxx"] }
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 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