Le rôle Contributor
est généralement utilisé pour activer le processus d'enregistrement d'applications Horizon Cloud afin d'effectuer des appels d'API dans l'abonnement Microsoft Azure. Si vous préférez éviter l'utilisation du rôle Contributor
, vous pouvez créer un rôle personnalisé à cette fin. Le rôle personnalisé dispose de certaines autorisations requises et facultatives que vous devez connaître lorsque vous créez un principal de service.
Pour créer un rôle personnalisé, utilisez un outil, tel qu'Azure PowerShell ou Azure CLI, et créez une définition de rôle personnalisé qui, au minimum, inclut les autorisations obligatoires répertoriées dans cette rubrique. Reportez-vous à l'exemple JSON ci-après. Pour plus d'informations sur les autorisations Microsoft Azure spécifiques répertoriées sur cette page, reportez-vous à la section Opérations du fournisseur de ressources Azure.
Autorisations obligatoires
Opération |
---|
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/* |
Si vous prévoyez d'utiliser App Volumes, assurez-vous d'avoir configuré les autorisations répertoriées dans le tableau au niveau de l'abonnement. Pour plus d'informations sur ces autorisations, reportez-vous à la section Point de terminaison privé Azure pour un compte de stockage d'applications App Volumes.
Opération |
---|
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 |
Autorisations facultatives
Les autorisations suivantes ne sont pas obligatoires pour le déploiement d'Horizon Edge dans Microsoft Azure. Cependant, les fonctionnalités d'Horizon Universal Console qui reposent sur ces autorisations facultatives ne fonctionnent pas si vous ne les incluez pas.
Opération | |
---|---|
Microsoft.KeyVault/*/read Microsoft.KeyVault/vaults/* Microsoft.KeyVault/vaults/secrets/* |
Des autorisations du coffre de clés sont requises pour le chiffrement du disque des VM de pool. |
Microsoft.Network/natGateways/join/action |
Cette autorisation est requise lorsque le type de connectivité Azure Private Link est sélectionné lors de la création d'Horizon Edge et qu'une passerelle NAT est associée au sous-réseau de gestion. L'autorisation est requise pour créer les ressources de point de terminaison privé. |
Microsoft.Network/natGateways/read |
Cette autorisation est requise pour confirmer que la passerelle NAT du sous-réseau de gestion est, le cas échéant, correctement configurée, lorsque le type de cluster sortant est sélectionné comme passerelle NAT pour Horizon Edge. |
Microsoft.Network/privateEndpoints/write Microsoft.Network/privateEndpoints/read |
Des autorisations de point de terminaison privé sont requises pour déployer Horizon Edge avec Azure Private Link. |
Microsoft.Network/publicIPAddresses/* |
Une autorisation d'adresse IP publique est requise pour déployer une instance d'Horizon Edge avec des instances d'Unified Access Gateway derrière un équilibrage de charge avec une adresse IP publique. En outre, cette autorisation est requise. pour déployer et pour ajouter une adresse IP publique à une image. |
Microsoft.Network/routeTables/join/action |
Cette autorisation est requise lorsque le type de connectivité Azure Private Link est sélectionné lors de la création d'Horizon Edge et qu'une table de routage est associée au sous-réseau de gestion. L'autorisation est requise pour créer les ressources de point de terminaison privé. |
Microsoft.Network/routeTables/read |
Cette autorisation est requise si le type de cluster sortant sélectionné pour Horizon Edge correspond aux routes définies par l'utilisateur. Il est nécessaire de valider la table de routage associée du sous-réseau de gestion pour s'assurer que la route par défaut est configurée correctement. |
Les autorisations sont les suivantes :
Portée : https://graph.microsoft.com/
Autorisation : Device.ReadWrite.All Read and write devices
Consentement administrateur : Yes
L'autorisation peut être accordée en accédant à l'emplacement suivant :
Exemple JSON de rôle personnalisé Microsoft Azure
Le bloc de code JSON suivant est un exemple permettant d'illustrer l'apparence éventuelle d'une définition de rôle personnalisé nommée Rôle Horizon Cloud personnalisé - Titan lorsqu'elle dispose de l'ensemble des opérations obligatoires et facultatives précédentes. L'ID est l'ID unique du rôle personnalisé. Lorsque vous utilisez Azure PowerShell ou Azure CLI pour créer un rôle personnalisé, le processus génère automatiquement cet ID. Pour la variable my_subscription_ID, remplacez les ID des abonnements dans lesquels le rôle personnalisé sera utilisé.
Dans la section assignableScopes, vous pouvez utiliser plusieurs ID d'abonnements « /subscriptions/my_subscription_ID » pour permettre l'utilisation du rôle personnalisé dans plusieurs abonnements.
{ “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”: [] } ] } } |