Der von Horizon Cloud verwendete Dienstprinzipal zum Ausführen von Vorgängen in Ihrem Microsoft Azure-Abonnement und in Ressourcengruppen benötigt eine zugewiesene Rolle, die die zulässigen Vorgänge festlegt, die der Dienstprinzipal in diesem Abonnement und dessen Ressourcengruppen durchführen kann. Auch wenn die Verwendung der in Microsoft Azure integrierten Rolle Mitwirkender alle Vorgänge abdeckt, die von Horizon Cloud benötigt werden, erfolgt dies durch die Gewährung der größtmöglichen Anzahl Berechtigungen. Anstatt diese in Microsoft Azure integrierte Rolle Mitwirkender auf Abonnementebene zu verwenden, können Sie eine benutzerdefinierte Rolle mit dem Minimalsatz an Berechtigungen erstellen – für die die minimale Anzahl Vorgänge festgelegt ist, die Horizon Cloud im zugehörigen Abonnement benötigt – und diese benutzerdefinierte Rolle dem Dienstprinzipal auf Abonnementebene zuweisen. Wenn Sie für die externe Unified Access Gateway-Konfiguration des Pods ein separates Abonnement verwenden und die Gateway-Ressourcen in einer Ressourcengruppe bereitstellen möchten, die Sie erstellen und verwalten, können Sie dem Dienstprinzipal präzisere, eng gefasste Berechtigungen innerhalb dieses gesonderten Abonnements zuweisen.

Das übergeordnete Konzept besteht darin, dass Horizon Cloud bestimmte Vorgänge für Ihr Abonnement 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. Einige der Optionen, die Sie für Ihre Pod- und Gateway-Bereitstellungen auswählen, bestimmen den spezifischen Satz mit Vorgängen, die Horizon Cloud ausführen muss. Sie können die Möglichkeiten von Horizon Cloud in Ihrem Abonnement auf die erforderlichen Mindestvorgänge beschränken, indem Sie die unten beschriebenen Regeln befolgen und sich dabei an die Optionen halten, die Sie für die Bereitstellung eines Pods und für die Konfiguration des externen Gateways übernehmen.

Detaillierte Informationen zu benutzerdefinierten Rollen in Microsoft Azure und zu den Schritten, die Sie zum Erstellen einer benutzerdefinierten Rolle ausführen, finden Sie im Microsoft Azure-Dokumentationsthema Benutzerdefinierte Rollen für Azure-Ressourcen. Detaillierte Informationen zur Funktionsweise einer Rolle, ihrer Struktur und der Struktur der Verwaltungsvorgänge finden Sie unter Grundlegendes zu Rollendefinitionen für Azure-Ressourcen in der Microsoft Azure-Dokumentation. Wie in diesem Dokumentationsthema beschrieben, handelt es sich bei einer Rollendefinition um eine Sammlung von Berechtigungen. Diese Rollendefinition wird kurzgesagt als Rolle bezeichnet. Die Rolle listet Verwaltungsvorgänge auf, die vom Dienstprinzipal, dem diese Rolle zugewiesen ist, ausgeführt bzw. nicht ausgeführt werden können. Ein Verwaltungsvorgang ist eine Kombination aus der Ressource und der Aktion, die für diese Ressource durchgeführt wird.

Dieses Thema enthält die folgenden Abschnitte.

Übersicht über die verfügbaren Anwendungsfälle

Bei der Diskussion über die für Horizon Cloud erforderlichen Vorgänge in Ihren Microsoft Azure-Abonnements und -Ressourcengruppen gibt es folgende Anwendungsfälle.

Hinweis: Die Rolle für den Dienstprinzipal, der für das Abonnement erstellt wurde, das im Anwendungsfall mit zwei Abonnements für die restlichen Pod-Ressourcen festgelegt ist, muss dieselben Regeln erfüllen, die für den Anwendungsfall mit einem Abonnement erforderlich sind.
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 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.

Zwei Abonnements und Sie möchten, dass Horizon Cloud die erforderlichen Ressourcengruppen und Ressourcen des Gateways im angegebenen Abonnement des externen Gateways erstellt wie im Abonnement für die restlichen Pod-Ressourcen.
  • Ein angegebenes Abonnement zur Verwendung für die Ressourcen der externen Unified Access Gateway-Konfiguration
  • Ein Abonnement für die restlichen Pod-Ressourcen

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:

  • Gewähren Sie Zugriff auf Abonnementebene wie im obigen Anwendungsfall.
  • Verwenden Sie die folgende Kombination:
    • Gewähren Sie den Zugriff auf Abonnementebene mithilfe der integrierten Rolle Leser.
    • Gewähren Sie den Zugriff auf Ebene der benannten Ressourcengruppe mithilfe von Berechtigungen, die in einer benutzerdefinierten Rolle definiert sind. Die auf Ebene der Ressourcengruppe gewährten Berechtigungen müssen die Vorgänge bereitstellen, die Horizon Cloud in der Ressourcengruppe ausführen muss, um dort die Ressourcen des externen Gateways bereitzustellen und zu konfigurieren.

      Zusätzlich zu den Berechtigungen für die Ressourcengruppe benötigt Horizon Cloud je nach Ihren Bereitstellungsplänen die Berechtigungen zum Durchführen der folgenden Aktionen:

      • Wenn in dieser Bereitstellung Subnetze verwendet werden, die Sie vorab im VNet dieses Abonnements erstellen, 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/* und Microsoft.Network/networkSecurityGroups/*
      • Wenn bei dieser Bereitstellung durch Horizon Cloud Subnetze generiert werden, benötigt Horizon Cloud neben den zuvor genannten Berechtigungen Microsoft.Network/virtualNetworks/subnets/* und Microsoft.Network/networkSecurityGroups/* die Möglichkeit, die Subnetze zu erstellen. Die im VNet erforderliche Berechtigung lautet Microsoft.Network/virtualNetworks/write
      • Wenn die externe Gateway-Bereitstellung unter Angabe einer öffentlichen IP-Adresse 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

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. Für die auf dem Dienstprinzipal festgelegte benutzerdefinierte Rolle, den Sie im Schritt „Abonnement“ in den Horizon Cloud-Workflows angeben, sind die folgenden Aktionen in der Definition der benutzerdefinierten Rolle erforderlich. * (Platzhalterzeichen) gewährt Zugriff auf alle Vorgänge, die mit der Zeichenfolge innerhalb des aufgelisteten Ressourcenanbietervorgangs übereinstimmen. Die Beschreibungen der Vorgänge finden Sie in der Microsoft Azure-Dokumentation unter den unten aufgeführten Links.

Tabelle 1. Microsoft Azure-Ressourcenvorgänge, die in der benutzerdefinierten Rolle bei der Zuweisung von Berechtigungen auf Abonnementebene zulässig sein müssen
Vorgang Beschreibung in der Microsoft Azure-Dokumentation
Microsoft.Authorization/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftauthorization
Microsoft.Compute/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/availabilitySets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/disks/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/images/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/locations/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/snapshots/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/virtualMachines/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/virtualMachineScaleSets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.DBforPostgreSQL/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftdbforpostgresql
Microsoft.KeyVault/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.KeyVault/vaults/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.KeyVault/vaults/secrets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.Network/loadBalancers/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/networkInterfaces/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/networkSecurityGroups/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/publicIPAddresses/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/write https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/subnets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.ResourceHealth/availabilityStatuses/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresourcehealth
Microsoft.Resources/subscriptions/resourceGroups/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresources
Microsoft.Resources/deployments/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresources
Microsoft.Storage/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftstorage
Microsoft.Storage/storageAccounts/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftstorage

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. Eine Beschreibung der Eigenschaften und Nutzungsinformationen finden Sie im Abschnitt zu den benutzerdefinierten Rolleneigenschaften im Microsoft Azure-Dokumentationsthema Benutzerdefinierte Rollen für Azure-Ressourcen. Die ID ist die eindeutige ID der benutzerdefinierten Rolle. Wenn Sie die benutzerdefinierte Rolle mit Azure PowerShell oder Azure CLI erstellen, wird diese ID beim Erstellen einer neuen Rolle automatisch generiert. Gemäß Beschreibung im Lernprogramm: Erstellen einer benutzerdefinierten Rolle für Azure-Ressourcen mithilfe der Azure-CLI ist mysubscriptionId1 die ID Ihres eigenen Abonnements.

Tabelle 2. JSON-Beispiel für eine Rolle, die die für Horizon Cloud erforderlichen Vorgänge bei der Zuweisung von Berechtigungen auf Abonnementebene zulässt
{
"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/*"
  ],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
  "/subscriptions/mysubscriptionId1"
  ]
}

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 können Sie dem Dienstprinzipal auf Abonnementebene die integrierte Rolle Leser zuweisen und anschließend auf der Ebene der benannten Ressourcengruppe Zugriff gewähren, indem Sie eine benutzerdefinierte Rolle verwenden, in der die Berechtigungen in der folgenden Tabelle angegeben sind. Je nach geplanten Bereitstellungsoptionen sind einige zusätzliche Berechtigungen für Subnetze und das VNet erforderlich:

  • Wenn in dieser externen Gateway-Bereitstellung Subnetze verwendet werden, die Sie vorab erstellen, 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/* und Microsoft.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/* und Microsoft.Network/networkSecurityGroups/* die Möglichkeit, die Subnetze zu erstellen. Die im VNet des Abonnements erforderliche Berechtigung lautet Microsoft.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. Die Beschreibungen der Vorgänge finden Sie in der Microsoft Azure-Dokumentation unter den unten aufgeführten Links.

Tabelle 3. Microsoft Azure-Ressourcenvorgänge, die in der angegebenen Ressourcengruppe zulässig sein müssen
Vorgang Beschreibung in der Microsoft Azure-Dokumentation
Microsoft.Authorization/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftauthorization
Microsoft.Compute/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/availabilitySets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/disks/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/images/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/locations/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/snapshots/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/virtualMachines/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/virtualMachineScaleSets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.DBforPostgreSQL/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftdbforpostgresql
Microsoft.KeyVault/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.KeyVault/vaults/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.KeyVault/vaults/secrets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.Network/loadBalancers/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/networkInterfaces/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/publicIPAddresses/*, wenn die Bereitstellung unter Angabe einer öffentlichen IP-Adresse für die externe Gateway-Bereitstellung erfolgt. https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.ResourceHealth/availabilityStatuses/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresourcehealth
Microsoft.Resources/subscriptions/resourceGroups/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresources
Microsoft.Resources/deployments/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresources
Microsoft.Storage/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftstorage
Microsoft.Storage/storageAccounts/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftstorage