Damit API-Aufrufe im Abonnement des Pods oder im optionalen Abonnement für externe Gateways durchgeführt und ihre VDI-bezogenen Vorgänge über die First-Gen-Horizon Cloud-App-Registrierung ausgeführt werden können, muss dieser eine Rolle zugewiesen werden. In der Regel wird zu diesem Zweck die Rolle Contributor
verwendet. Organisationen, die die Verwendung der Contributor
-Rolle vermeiden möchten, können eine benutzerdefinierte Rolle erstellen, die der Horizon Cloud-App-Registrierung die Fähigkeit verleiht, die erforderlichen API-Aufrufe auszuführen.
Zusätzlich zu einer benutzerdefinierten Rolle für die Horizon Cloud-App-Registrierung im Pod-Abonnement kann die benutzerdefinierte Rolle für das Gateway-Abonnement über präzisere, enger definierte Berechtigungen verfügen als die benutzerdefinierte Rolle für das Pod-Abonnement, wenn Ihre Organisation den Ansatz bevorzugt, ein separates Abonnement für die Konfiguration des externen Unified Access Gateway-Gateways zu haben und auch die Gateway-Ressourcen in einer spezifischen Ressourcengruppe bereitzustellen, die Ihre Organisation für diesen Zweck einrichtet.
Kurze Einführung in benutzerdefinierte Rollen
Das übergeordnete Konzept besteht darin, dass Horizon Cloud bestimmte Vorgänge im Abonnement des Pods und die zugehörigen Ressourcengruppen ausführen muss, um die Ressourcen erfolgreich zu erstellen und zu verwalten, die für einen Pod und die zugehörigen Gateway-Konfigurationen erforderlich sind.
Einfaches Beispiel: da die Architektur für Pod und Gateway virtuelle Maschinen mit Netzwerkkarten erfordert, muss Horizon Cloud virtuelle Maschinen und Netzwerkkarten in Ihrem Abonnement erstellen und diese Netzwerkkarten an Subnetze im VNet des Abonnements anhängen können.
In Microsoft Azure stellt eine Rolle eine Reihe von Verwaltungsvorgängen bereit, die vom Dienstprinzipal einer App-Registrierung durchgeführt werden können. Ein Verwaltungsvorgang ist eine Kombination aus der Ressource und der Aktion, die für diese Ressource durchgeführt wird.
Sie können die Funktionen der Horizon Cloud-App-Registrierung im Abonnement des Pods und im (optionalen) Gateway-Abonnement auf die erforderlichen Mindestvorgänge beschränken, indem Sie die unten beschriebenen Regeln befolgen.
Übersicht über die verfügbaren Anwendungsfälle
Bei der Erörterung der für Horizon Cloud erforderlichen Vorgänge in Abonnements und Ressourcengruppen gibt es folgende Anwendungsfälle.
Anwendungsfall | Beschreibung |
---|---|
Ein einzelnes Abonnement, das von Horizon Cloud für Pods und deren externe Unified Access Gateway-Konfigurationen verwendet wird. | In diesem Fall muss dem Dienstprinzipal auf der Pod-Abonnementebene Zugriff gewährt werden. Die dem Dienstprinzipal auf dieser Ebene zugewiesene Rolle muss die Aktionen zulassen, die Horizon Cloud in Ihrem Abonnement ausführen muss, um darin die erforderlichen Ressourcen erfolgreich erstellen und im Laufe der Zeit mit diesen Ressourcen arbeiten zu können. Beispiel: in diesem Fall muss die Rolle die Möglichkeit bieten, die Standard-Ressourcengruppen, Netzwerksicherheitsgruppen, virtuellen Maschinen und so weiter zu erstellen. |
Sie haben zwei Abonnements und möchten, dass Horizon Cloud die erforderlichen Ressourcengruppen und Ressourcen des Gateways im angegebenen Abonnement des externen Gateways automatisch erstellt, so wie es im Abonnement des Pods der Fall ist.
|
Bei Verwendung dieser Option muss dem Dienstprinzipal für die einzelnen Abonnements der Zugriff auf Abonnementebene gewährt werden, wobei Berechtigungen erteilt werden, die dieselben Aktionen wie für das oben beschriebene Anwendungsbeispiel eines einzelnen Abonnements zulassen. |
Zwei Abonnements wie oben. Anstatt jedoch Horizon Cloud die erforderlichen Ressourcengruppen und Ressourcen automatisch erstellen zu lassen, erstellen Sie vorab im angegebenen Abonnement dieses externen Gateways eine Ressourcengruppe. Zudem soll Horizon Cloud die Ressourcen des externen Gateways in dieser vorhandenen Ressourcengruppe bereitstellen. | Zwei Möglichkeiten zum Gewähren des Zugriffs auf den für die Bereitstellung des externen Gateways verwendeten Dienstprinzipals:
|
Wenn Ihr VNet über benutzerdefinierte Routen verfügt. Microsoft Azure Cloud verfügt über eine Funktion namens „Benutzerdefinierte Routen“. | Wenn Ihr VNet über benutzerdefinierte Routen verfügt, ist zusätzlich zu allen für die obigen Anwendungsfälle eine Berechtigung erforderlich: Microsoft.Network/routeTables/join/action . |
Bei Verwendung eines einzelnen Abonnements für den Pod und dessen Gateway-Konfigurationen oder eines separaten Abonnements für die externe Unified Access Gateway-Konfiguration mit auf Abonnementebene festgelegten Berechtigungen
Für diese Anwendungsfälle werden die Berechtigungen auf Ebene des Abonnements zugewiesen. Die benutzerdefinierte Rolle muss die in der folgenden Tabelle aufgeführten Vorgänge zulassen. *
(Platzhalterzeichen) gewährt Zugriff auf alle Vorgänge, die mit der Zeichenfolge innerhalb des aufgeführten Vorgangs übereinstimmen.
Der folgende JSON-Codeblock ist ein Beispiel zur Veranschaulichung, wie eine benutzerdefinierte Rollendefinition mit der Bezeichnung Horizon Cloud-Pod aussehen kann, wenn sie den Satz mit vorstehenden Vorgängen enthält. Die ID ist die eindeutige ID der benutzerdefinierten Rolle. Wenn Azure PowerShell oder Azure CLI zum Erstellen einer benutzerdefinierten Rolle verwendet wird, wird diese ID automatisch generiert. Ersetzen Sie die Variable mysubscriptionId1 durch die ID des Abonnements, in dem die benutzerdefinierte Rolle verwendet werden soll: das Abonnement des Pods oder das optionale Gateway-Abonnement.
{ "Name": "Horizon Cloud Pod", "Id": "uuid", "IsCustom": true, "Description": "Minimum set of Horizon Cloud pod required operations", "Actions": [ "Microsoft.Authorization/*/read" "Microsoft.Compute/*/read" "Microsoft.Compute/availabilitySets/*" "Microsoft.Compute/disks/*" "Microsoft.Compute/images/*" "Microsoft.Compute/locations/*" "Microsoft.Compute/virtualMachines/*" "Microsoft.Compute/virtualMachineScaleSets/*" "Microsoft.Compute/snapshots/*" "Microsoft.DBforPostgreSQL/*" "Microsoft.KeyVault/*/read" "Microsoft.KeyVault/vaults/*" "Microsoft.KeyVault/vaults/secrets/*" "Microsoft.Network/loadBalancers/*" "Microsoft.Network/networkInterfaces/*" "Microsoft.Network/networkSecurityGroups/*" "Microsoft.Network/publicIPAddresses/*" "Microsoft.Network/virtualNetworks/read" "Microsoft.Network/virtualNetworks/write" "Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read" "Microsoft.Network/virtualNetworks/subnets/*" "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read" "Microsoft.Resources/subscriptions/resourceGroups/*" "Microsoft.ResourceHealth/availabilityStatuses/read" "Microsoft.Resources/deployments/*" "Microsoft.Storage/*/read" "Microsoft.Storage/storageAccounts/*" "Microsoft.Compute/galleries/read" "Microsoft.Compute/galleries/write" "Microsoft.Compute/galleries/delete" "Microsoft.Compute/galleries/images/*" "Microsoft.Compute/galleries/images/versions/*" "Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read" "Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/mysubscriptionId1" ] } |
Wenn sich benutzerdefinierte Routen in Ihrem VNet und seinen Subnetzen befinden
Microsoft Azure Cloud verfügt über eine Funktion namens „Benutzerdefinierte Routen“.
Wenn Sie Ihrem VNet und seinen Subnetzen solche Routen hinzugefügt haben, ist diese zusätzliche Berechtigung erforderlich.
Vorgang | Beschreibung in der Microsoft Azure-Dokumentation |
---|---|
Microsoft.Network/routeTables/join/action |
https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork |
Bei Verwendung eines separaten Abonnements für die externe Unified Access Gateway-Konfiguration, bei Bereitstellung in einer benutzerdefinierten Ressourcengruppe mit der Rolle „Leser“ auf Abonnementebene und zusätzlichen erforderlichen Berechtigungen, die auf differenzierten Ebenen zugewiesen werden
Für diesen Anwendungsfall kann Ihre Organisation auf der Abonnementebene des Abonnements des externen Gateways die integrierte Rolle Reader
für die Horizon Cloud-App-Registrierung sowie eine benutzerdefinierte Rolle auf der Ebene der benannten Ressourcengruppe verwenden.
Ihre Organisation würde eine benutzerdefinierte Rolle erstellen, die die Berechtigungen in der folgenden Tabelle angibt. Diese benutzerdefinierte Rolle wird dann der Horizon Cloud-App-Registrierung zugewiesen, um mit der speziell benannten Ressourcengruppe im Abonnement des externen Gateways zu arbeiten. Sie oder Ihre Organisation würden diese benannte Ressourcengruppe in dem Abonnement, in dem Sie das externe Gateway bereitstellen, vorab erstellen.
Je nach den geplanten Bereitstellungsoptionen sind auch einige spezifische Berechtigungen für Subnetze und das VNet erforderlich:
- Wenn in der Bereitstellung dieses externen Gateways Subnetze verwendet werden, die vorab erstellt wurden, muss Horizon Cloud in diesen Subnetzen Netzwerkkarten und Netzwerksicherheitsgruppen (NSGs) erstellen können. Die für das VNet erforderlichen Berechtigungen, zu dem das Subnetz gehört, lauten
Microsoft.Network/virtualNetworks/subnets/*
undMicrosoft.Network/networkSecurityGroups/*
. - Wenn bei dieser externen Gateway-Bereitstellung durch Horizon Cloud Subnetze generiert werden, benötigt Horizon Cloud neben den zuvor genannten Berechtigungen
Microsoft.Network/virtualNetworks/subnets/*
undMicrosoft.Network/networkSecurityGroups/*
die Möglichkeit, die Subnetze zu erstellen. Die im VNet des Abonnements erforderliche Berechtigung lautetMicrosoft.Network/virtualNetworks/write
- Wenn die Bereitstellung unter Angabe einer öffentlichen IP-Adresse für die externe Gateway-Konfiguration erfolgt, muss Horizon Cloud öffentliche IP-Adressen in der benannten Ressourcengruppe erstellen können. Die für die benannte Ressourcengruppe erforderliche Berechtigung lautet
Microsoft.Network/publicIPAddresses
Die folgenden zulässigen Vorgänge sind in der benannten Ressourcengruppe erforderlich. *
(Platzhalterzeichen) gewährt Zugriff auf alle Vorgänge, die mit der Zeichenfolge innerhalb des aufgelisteten Ressourcenanbietervorgangs übereinstimmen.