A função Contributor
é geralmente usada para ativar o processo de registro de aplicativos do Horizon Cloud para fazer chamadas de API na assinatura do Microsoft Azure. Se preferir evitar o uso da função Contributor
, você poderá criar uma função personalizada para essa finalidade. A função personalizada tem determinadas permissões necessárias e opcionais das quais você deve estar ciente ao criar uma entidade de serviço.
Para criar uma função personalizada, use uma ferramenta, como o Azure PowerShell ou a interface de linha de comando do Azure, e crie uma definição de função personalizada que, no mínimo, inclua as permissões obrigatórias listadas neste tópico. Consulte o exemplo de JSON a seguir. Para obter detalhes sobre as permissões específicas do Microsoft Azure listadas nessa página, consulte Operações do provedor de recursos do Azure.
Permissões obrigatórias
Operação |
---|
Microsoft.Authorization/*/read |
Microsoft.Compute/*/read |
Microsoft.Compute/availabilitySets/* |
Microsoft.Compute/disks/* |
Microsoft.Compute/galleries/read Microsoft.Compute/galleries/write Microsoft.Compute/galleries/delete Microsoft.Compute/galleries/images/* Microsoft.Compute/galleries/images/versions/* |
Microsoft.Compute/images/* |
Microsoft.Compute/locations/* |
Microsoft.Compute/snapshots/* |
Microsoft.Compute/virtualMachines/* |
Microsoft.Compute/virtualMachineScaleSets/* |
Microsoft.ContainerService/managedClusters/delete |
Microsoft.ContainerService/managedClusters/read |
Microsoft.ContainerService/managedClusters/write |
Microsoft.ContainerService/managedClusters/commandResults/read |
Microsoft.ContainerService/managedClusters/runcommand/action |
Microsoft.ContainerService/managedClusters/upgradeProfiles/read |
Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action |
Microsoft.ManagedIdentity/userAssignedIdentities/*/read |
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write |
Microsoft.Network/loadBalancers/* |
Microsoft.Network/networkInterfaces/* |
Microsoft.Network/networkSecurityGroups/* |
Microsoft.Network/virtualNetworks/read |
Microsoft.Network/virtualNetworks/write |
Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read |
Microsoft.Network/virtualNetworks/subnets/* |
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read |
Microsoft.ResourceGraph/* |
Microsoft.Resources/deployments/* |
Microsoft.Resources/subscriptions/read |
Microsoft.Resources/subscriptions/resourceGroups/* |
Microsoft.ResourceHealth/availabilityStatuses/read |
Microsoft.Storage/*/read |
Microsoft.Storage/storageAccounts/* |
Se você pretende usar o App Volumes, certifique-se de ter configurado as permissões, listadas na tabela, no nível da assinatura. Para obter mais informações sobre essas permissões, consulte Endpoint privado do Azure para uma conta de armazenamento de aplicativo do App Volumes.
Operação |
---|
Microsoft.Network/locations/availablePrivateEndpointTypes/read |
Microsoft.Network/privateEndpoints/read |
Microsoft.Network/privateEndpoints/write |
Microsoft.Network/privateEndpoints/delete |
Microsoft.Network/virtualNetworks/read |
Microsoft.Network/virtualNetworks/subnets/read |
Microsoft.Network/virtualNetworks/subnets/write |
Microsoft.Network/virtualNetworks/subnets/join/action |
Microsoft.Resources/deployments/* |
Microsoft.Resources/subscriptions/read |
Microsoft.Resources/subscriptions/resourceGroups/read |
Permissões opcionais
As seguintes permissões não são obrigatórias para a implantação do Horizon Edge no Microsoft Azure. No entanto, a funcionalidade no Horizon Universal Console que depende dessas permissões opcionais não funcionará se você não as incluir.
Operação | |
---|---|
Microsoft.KeyVault/*/read Microsoft.KeyVault/vaults/* Microsoft.KeyVault/vaults/secrets/* |
As permissões do repositório de chaves são necessárias para a criptografia de disco das VMs do pool. |
Microsoft.Network/natGateways/join/action |
Essa permissão é necessária quando o tipo de conectividade Link Privado do Azure é selecionado no momento em que o Horizon Edge é criado e a sub-rede de gerenciamento tem um gateway NAT associado. A permissão é necessária para criar os recursos do endpoint privado. |
Microsoft.Network/natGateways/read |
Essa permissão é necessária para validar se o gateway NAT da sub-rede de gerenciamento está, se presente, configurado corretamente quando o tipo de saída do cluster é selecionado como gateway NAT para o Horizon Edge. |
Microsoft.Network/privateEndpoints/write Microsoft.Network/privateEndpoints/read |
São necessárias permissões de Endpoint Privado para implementar o Horizon Edge com Link Privado do Azure. |
Microsoft.Network/publicIPAddresses/* |
É necessária permissão de IP público para implantar uma instância do Horizon Edge com instâncias do Unified Access Gateway atrás de um balanceador de carga com um endereço IP público. Além disso, essa permissão é obrigatória. para implantar e para adicionar um endereço IP público a uma imagem. |
Microsoft.Network/routeTables/join/action |
Essa permissão é necessária quando o tipo de conectividade Link Privado do Azure é selecionado no momento em que o Horizon Edge é criado e a sub-rede de gerenciamento tem uma tabela de caminhos anexada. A permissão é necessária para criar os recursos do endpoint privado. |
Microsoft.Network/routeTables/read |
Essa permissão será necessária se o tipo de saída do cluster selecionado para o Horizon Edge for Rotas definidas pelo usuário. É necessário validar a tabela de rotas associada da sub-rede de gerenciamento para garantir que a rota padrão esteja configurada corretamente. |
As permissões são das seguintes:
Escopo: https://graph.microsoft.com/
Permissão: Device.ReadWrite.All Read and write devices
Consentimento do Administrador: Yes
A permissão pode ser dada navegando até o seguinte local:
Exemplo de JSON da função personalizada do Microsoft Azure
O bloco de código JSON a seguir é um exemplo para ilustrar a aparência de uma definição de função personalizada chamada Função Personalizada do Horizon Cloud: Titan quando tem o conjunto de operações obrigatórias e opcionais anteriores. A ID é a ID exclusiva da função personalizada. Quando você usa o Azure PowerShell ou a CLI do Azure para criar uma função personalizada, o processo gera automaticamente essa ID. Para a variável my_subscription_ID, substitua as IDs das assinaturas nas quais a função personalizada será usada.
Na seção assignableScopes, você pode usar várias IDs de assinatura, /subscriptions/my_subscription_ID, para permitir que a função personalizada seja usada em várias assinaturas.
{ “id”: “uuid”, “properties”: { “roleName”: “Horizon Cloud Custom Role - Titan”, “description”: “All permissions required for deployment and operation of a Horizon Edge in Azure”, “assignableScopes”: [ “/subscriptions/my_subscription_ID” ], “permissions”: [ { “actions”: [ “Microsoft.Authorization/*/read”, “Microsoft.Compute/*/read”, “Microsoft.Compute/availabilitySets/*“, “Microsoft.Compute/disks/*“, “Microsoft.Compute/galleries/read”, “Microsoft.Compute/galleries/write”, “Microsoft.Compute/galleries/delete”, “Microsoft.Compute/galleries/images/*”, “Microsoft.Compute/galleries/images/versions/*”, “Microsoft.Compute/images/*”, “Microsoft.Compute/locations/*”, “Microsoft.Compute/snapshots/*”, “Microsoft.ContainerService/managedClusters/delete”, “Microsoft.ContainerService/managedClusters/read”, “Microsoft.ContainerService/managedClusters/write”, “Microsoft.ContainerService/managedClusters/commandResults/read”, “Microsoft.ContainerService/managedClusters/runcommand/action”, “Microsoft.ContainerService/managedClusters/upgradeProfiles/read”, “Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action”, “Microsoft.ManagedIdentity/userAssignedIdentities/*/read”, “Microsoft.Compute/virtualMachines/*”, “Microsoft.Compute/virtualMachineScaleSets/*”, “Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read”, “Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write”, “Microsoft.Network/loadBalancers/*”, “Microsoft.Network/networkInterfaces/*”, “Microsoft.Network/networkSecurityGroups/*”, “Microsoft.Network/virtualNetworks/read”, “Microsoft.Network/virtualNetworks/write”, “Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read”, “Microsoft.Network/virtualNetworks/subnets/*”, “Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read”, “Microsoft.ResourceGraph/*”, “Microsoft.Resources/deployments/*”, “Microsoft.Resources/subscriptions/read”, “Microsoft.Resources/subscriptions/resourceGroups/*”, “Microsoft.ResourceHealth/availabilityStatuses/read”, “Microsoft.Storage/*/read”, “Microsoft.Storage/storageAccounts/*”, “Microsoft.KeyVault/*/read”, “Microsoft.KeyVault/vaults/*”, “Microsoft.KeyVault/vaults/secrets/*”, “Microsoft.Network/natGateways/join/action”, “Microsoft.Network/natGateways/read”, “Microsoft.Network/privateEndpoints/write”, “Microsoft.Network/privateEndpoints/read”, “Microsoft.Network/publicIPAddresses/*”, “Microsoft.Network/routeTables/join/action", "Microsoft.Network/routeTables/read" ], “notActions”: [], “dataActions”: [], “notDataActions”: [] } ] } } |