Die Rolle Contributor
wird üblicherweise verwendet, um den Registrierungsvorgang der Horizon Cloud-App für API-Aufrufe im Microsoft Azure-Abonnement zu ermöglichen. Wenn Sie die Verwendung der Contributor
-Rolle vermeiden möchten, können Sie eine benutzerdefinierte Rolle für diesen Zweck erstellen. Die benutzerdefinierte Rolle verfügt über bestimmte erforderliche und optionale Berechtigungen, die Sie beim Erstellen eines Dienstprinzipals beachten müssen.
Um eine benutzerdefinierte Rolle zu erstellen, verwenden Sie ein Tool wie Azure PowerShell oder Azure CLI und erstellen eine benutzerdefinierte Rollendefinition, die mindestens die in diesem Thema aufgeführten obligatorischen Berechtigungen enthält. Siehe das folgende JSON-Beispiel. Weitere Informationen zu den spezifischen Microsoft Azure-Berechtigungen, die auf dieser Seite aufgeführt sind, finden Sie unter Azure-Ressourcenanbietervorgänge.
Obligatorische Berechtigungen
Vorgang |
---|
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/* |
Wenn Sie App Volumes verwenden möchten, stellen Sie sicher, dass Sie die in der Tabelle aufgeführten Berechtigungen auf Abonnementebene konfiguriert haben. Weitere Informationen zu diesen Berechtigungen finden Sie unter Privater Azure-Endpoint für ein App Volumes-Anwendungsspeicherkonto.
Vorgang |
---|
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 |
Optionale Berechtigungen
Die folgenden Berechtigungen sind für die Bereitstellung von Horizon Edge in Microsoft Azure nicht obligatorisch. Funktionen in der Horizon Universal Console, die sich auf diese optionalen Berechtigungen stützen, funktionieren jedoch nicht, wenn Sie sie nicht angeben.
Vorgang | |
---|---|
Microsoft.KeyVault/*/read Microsoft.KeyVault/vaults/* Microsoft.KeyVault/vaults/secrets/* |
Schlüsseltresor-Berechtigungen sind für die Festplattenverschlüsselung von Pool-VMs erforderlich. |
Microsoft.Network/natGateways/join/action |
Diese Berechtigung ist erforderlich, wenn zum Zeitpunkt der Erstellung von Horizon Edge der Konnektivitätstyp Privater Azure-Link ausgewählt wird und dem Verwaltungssubnetz ein NAT-Gateway zugeordnet ist. Die Berechtigung ist erforderlich, um die privaten Endpoint-Ressourcen zu erstellen. |
Microsoft.Network/natGateways/read |
Diese Berechtigung ist erforderlich, um zu überprüfen, ob das NAT-Gateway des Management-Subnetzes, falls vorhanden, richtig konfiguriert ist, wenn der ausgehende Clustertyp als NAT-Gateway für Horizon Edge ausgewählt ist. |
Microsoft.Network/privateEndpoints/write Microsoft.Network/privateEndpoints/read |
Berechtigungen für private Endpoints sind für die Bereitstellung von Horizon Edge mit Azure Private Link erforderlich. |
Microsoft.Network/publicIPAddresses/* |
Die Berechtigung „Öffentliche IP“ ist für die Bereitstellung einer Horizon Edge-Instanz mit Unified Access Gateway-Instanzen hinter einem Lastausgleichsdienst mit einer öffentlichen IP-Adresse erforderlich. Außerdem ist diese Berechtigung für die Bereitstellung und das Hinzufügen einer öffentlichen IP-Adresse zu einem Image erforderlich. |
Microsoft.Network/routeTables/join/action |
Diese Berechtigung ist erforderlich, wenn der Konnektivitätstyp Privater Azure-Link zum Zeitpunkt der Erstellung von Horizon Edge ausgewählt wird und dem Verwaltungssubnetz eine Routentabelle angehängt ist. Die Berechtigung ist erforderlich, um die privaten Endpoint-Ressourcen zu erstellen. |
Microsoft.Network/routeTables/read |
Diese Berechtigung ist erforderlich, wenn der für Horizon Edge ausgewählte ausgehende Clustertyp „Benutzerdefinierte Routen“ ist. Sie ist erforderlich, um die zugehörige Routentabelle des Management-Subnetzes zu überprüfen, um sicherzustellen, dass die Standardroute korrekt konfiguriert ist. |
Die Berechtigungen lauten wie folgt:
Bereich: https://graph.microsoft.com/
Berechtigung: Device.ReadWrite.All Read and write devices
Administratorzustimmung: Yes
Die Berechtigung kann erteilt werden, indem Sie zum folgenden Speicherort navigieren:
JSON-Beispiel für eine benutzerdefinierte Microsoft Azure-Rolle
Der folgende JSON-Codeblock ist ein Beispiel zur Veranschaulichung, wie eine benutzerdefinierte Rollendefinition mit dem Namen Benutzerdefinierte Horizon Cloud-Rolle – Titan aussehen könnte, wenn sie die oben genannten obligatorischen und optionalen Vorgänge enthält. Die ID ist die eindeutige ID der benutzerdefinierten Rolle. Wenn Sie Azure PowerShell oder Azure CLI zum Erstellen einer benutzerdefinierten Rolle verwenden, generiert der Prozess automatisch diese ID. Ersetzen Sie für die Variable my_subscription_ID die IDs der Abonnements, in denen die benutzerdefinierte Rolle verwendet wird.
Im Abschnitt assignableScopes können Sie mehrere Abonnement-IDs verwenden, „/subscriptions/my_subscription_ID“, damit die benutzerdefinierte Rolle für mehrere Abonnements verwendet werden kann.
{ “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”: [] } ] } } |