Citrix Virtual Apps and Desktops

Verbindung zu AWS EC2

Erstellen und Verwalten von Verbindungen und Ressourcen beschreibt die Assistenten, die eine Verbindung erstellen. Die folgenden Informationen behandeln Details, die spezifisch für AWS Cloud-Umgebungen sind.

  • Voraussetzungen

Führen Sie die folgenden Schritte aus, bevor Sie eine Verbindung zu AWS EC2 herstellen:

IAM-Berechtigungen definieren

Vor dem Erstellen einer Hostverbindung muss eine IAM-Berechtigungsrichtlinie für einen IAM-Benutzer oder eine IAM-Rolle ordnungsgemäß definiert werden, die Citrix die entsprechenden Berechtigungen zum Bereitstellen und Verwalten von Ressourcen in Ihrem AWS-Konto in Ihrem Namen erteilt. Verwenden Sie die Informationen in diesem Abschnitt, um IAM-Berechtigungen für Citrix Virtual Apps and Desktops unter AWS zu definieren. Der IAM-Dienst von Amazon ermöglicht Konten mit mehreren Benutzern, die weiter in Gruppen organisiert werden können. Diese Benutzer können unterschiedliche Berechtigungen besitzen, um ihre Fähigkeit zur Durchführung von Vorgängen im Zusammenhang mit dem Konto zu steuern. Weitere Informationen zu IAM-Berechtigungen finden Sie in der IAM JSON-Richtlinienreferenz.

So wenden Sie die IAM-Berechtigungsrichtlinie auf eine neue Benutzergruppe an:

  1. Melden Sie sich bei der AWS-Verwaltungskonsole an und wählen Sie den IAM-Dienst aus der Dropdown-Liste aus.
  2. Wählen Sie Create a New Group of Users (Neue Benutzergruppe erstellen).
  3. Geben Sie einen Namen für die neue Benutzergruppe ein und wählen Sie Continue (Weiter).
  4. Wählen Sie auf der Seite Permissions (Berechtigungen) die Option Custom Policy (Benutzerdefinierte Richtlinie) und dann Select (Auswählen).
  5. Geben Sie einen Namen für die Permissions policy (Berechtigungsrichtlinie) ein.
  6. Geben Sie im Abschnitt Policy Document (Richtliniendokument) die relevanten Berechtigungen ein.

Nachdem Sie die Richtlinieninformationen eingegeben haben, wählen Sie Continue (Weiter), um die Anwendung der IAM-Berechtigungsrichtlinie auf die Benutzergruppe abzuschließen. Benutzern in der Gruppe werden nur die Aktionen gestattet, die für Citrix Virtual Apps and Desktops erforderlich sind.

Wichtig:

Verwenden Sie den in diesem Artikel bereitgestellten Beispielrichtlinientext, um die Aktionen aufzulisten, die ein Citrix Virtual Apps and Desktops zur Durchführung von Aktionen innerhalb eines AWS-Kontos verwendet, ohne diese Aktionen auf bestimmte Ressourcen zu beschränken. Citrix empfiehlt, das Beispiel zu Testzwecken zu verwenden. Für Produktionsumgebungen können Sie weitere Einschränkungen für Ressourcen hinzufügen.

  • IAM-Berechtigungen hinzufügen

Fügen Sie die Berechtigungen im Abschnitt IAM der AWS-Verwaltungskonsole hinzu:

  1. Wählen Sie im Bereich Summary (Zusammenfassung) die Registerkarte Permissions (Berechtigungen).
  2. Wählen Sie Add permissions (Berechtigungen hinzufügen).

    Identity and Access Management (IAM)

  3. Gewähren Sie im Bildschirm Add Permissions to (Berechtigungen hinzufügen zu) die Berechtigungen:

    Berechtigungen für IAM-Richtlinien gewähren

  4. Fügen Sie im JSON-Abschnitt die Erforderlichen AWS-Berechtigungen für Ihre Umgebung hinzu.

    -  ![JSON-Beispiel](/en-us/citrix-virtual-apps-desktops/media/aws-iam-json-example.png)
    

Verbindung erstellen

Sie können eine Verbindung zu Amazon EC2 erstellen mit:

    -  [Web Studio](#create-a-connection-using-web-studio)

Hinweis:

  • Überprüfen Sie Ihre Proxy-Server- oder Firewall-Einschränkungen und stellen Sie sicher, dass die folgende Adresse erreichbar ist: https://*.amazonaws.com. Stellen Sie außerdem sicher, dass alle in Citrix Gateway-Dienstkonnektivität genannten Adressen erreichbar sind.

  • Wenn diese nicht erreichbar sind, kann dies zu einem Fehler beim Erstellen oder Aktualisieren der Hostverbindung führen.

Verbindung mit Web Studio erstellen

  1. Navigieren Sie zur Seite Hosting > Verbindung und Ressourcen hinzufügen.
  2. Führen Sie auf der Seite Verbindung die folgenden Schritte aus, um die Verbindung zu konfigurieren:

    1. Wählen Sie Eine neue Verbindung erstellen.
    2. Wählen Sie unter Zone den Ressourcenstandort aus, den Sie für Ihre AWS-Umgebung eingerichtet haben.
    3. Wählen Sie Amazon EC2 als Verbindungstyp.
    4. Wählen Sie eine der Methoden zur Bereitstellung der Ressourcen:

      • Wenn Sie Dieses AWS-Konto zur Bereitstellung von Ressourcen verwenden auswählen, wählen Sie entweder IAM-Benutzerzugriffsschlüssel verwenden oder IAM-Rolle verwenden. Für den IAM-Benutzerzugriffsschlüssel geben Sie Ihren API-Schlüssel und Geheimschlüssel für den IAM-Benutzer an, der über die entsprechende IAM-Berechtigungsrichtlinie verfügt, damit Citrix Ressourcen in Ihrem AWS-Konto verwalten kann. Für die IAM-Rolle stellen Sie sicher, dass Sie der Delivery Controller-Instanz eine IAM-Rolle zugewiesen haben, die über die entsprechende IAM-Berechtigungsrichtlinie verfügt, damit Citrix Ressourcen in Ihrem AWS-Konto verwalten kann. Weitere Informationen finden Sie im Leitfaden zur rollenbasierten Authentifizierung.
      • Wenn Sie Cross-Account-Zugriff zur Bereitstellung von Ressourcen verwenden auswählen, geben Sie den ARN der IAM-Rolle in Konto B an, die die Delivery Controller in Konto A übernehmen und Bereitstellungsvorgänge durchführen müssen.
    5. Geben Sie einen Verbindungsnamen ein und klicken Sie auf Weiter.
  3. Geben Sie auf der Seite Speicherort der virtuellen Maschine den Speicherort an, an dem die VMs bereitgestellt werden sollen. Wählen Sie die Cloud-Region, VPC und Verfügbarkeitszone für die Erstellung neuer VMs aus.
  4. Auf der Seite Netzwerk:

    1. Geben Sie einen Namen für die Ressourcen ein, die Sie zuvor in der Verfügbarkeitszone oder lokalen Zone ausgewählt haben.
    2. Wählen Sie ein oder mehrere Subnetze in der VPC aus, die Sie im vorherigen Menü konfiguriert haben.
  5. Klicken Sie sich durch die verbleibenden Seiten bis zur Seite Zusammenfassung.
  6. Klicken Sie auf Fertig stellen, um die Hostverbindung zu Amazon EC2 zu erstellen.

Wichtige Überlegungen

Wenn Sie eine Verbindung mit Studio erstellen:

-  Definieren Sie die entsprechenden IAM-Berechtigungen, damit Citrix Ihre AWS-Ressourcen verwalten kann.
-  Wenn Sie einen IAM-Benutzerzugriffsschlüssel verwenden, damit Citrix Ihre AWS-Ressourcen verwalten kann, müssen Sie die Werte für den API-Schlüssel und den Geheimschlüssel angeben. Sie können die Schlüsseldatei mit diesen Werten aus AWS exportieren und dann importieren. Sie müssen auch die Region, Verfügbarkeitszone, den VPC-Namen, Subnetzadressen, den Domänennamen, die Namen der Sicherheitsgruppen und die Anmeldeinformationen angeben.
-  Wenn Sie eine IAM-Rolle verwenden, damit Citrix Ihre AWS-Ressourcen verwalten kann, müssen Sie sicherstellen, dass Sie allen Ihren Delivery Controllern eine Rolle mit den entsprechenden IAM-Berechtigungen zugewiesen haben. Weitere Informationen finden Sie im [Leitfaden zur rollenbasierten Authentifizierung](https://www.citrix.com/blogs/2019/02/04/role-based-authentication-for-citrix-virtual-apps-and-desktops-in-aws/?srsltid=AfmBOorMOzQipGk-r-n__SwFPJxzmbb5HZl9mDHmlTLRLv5o4w7-uCwD).
-  Die Anmeldeinformationsdatei für das AWS-Root-Konto (aus der AWS-Konsole abgerufen) ist nicht im selben Format wie die für Standard-AWS-Benutzer heruntergeladenen Anmeldeinformationsdateien. Daher kann Citrix Virtual Apps and Desktops die Datei nicht verwenden, um die Felder für den API-Schlüssel und den Geheimschlüssel zu füllen. Stellen Sie sicher, dass Sie AWS Identity Access Management (IAM)-Anmeldeinformationsdateien verwenden.
  • Die Zone kann eine Verfügbarkeitszone oder eine lokale Zone sein.

Verbindung über PowerShell erstellen

  1. Öffnen Sie ein PowerShell-Fenster.
  2. Führen Sie asnp citrix* aus, um die Citrix-spezifischen PowerShell-Module zu laden.
  3. Führen Sie die folgenden Befehle aus. Es folgt ein Beispiel:

    $connectionName = "demo-hostingconnection"
    $cloudRegion = "us-east-1"
    $apiKey = "aaaaaaaaaaaaaaaaaaaa"
    $apiSecret = “bbbbb”
    -  $secureKey = ConvertTo-SecureString -String $apiSecret
    -  $zoneUid = "00000000-0000-0000-0000-000000000000"
    $connectionPath = "XDHyp:\Connections\" + $connectionName
    
    $connection = New-Item -Path $connectionPath -ConnectionType "<name of the connection>" -HypervisorAddress " "@("https://ec2.cn-north-1.amazonaws.com.cn") -Persist -Scope @() -UserName $apiKey -SecurePassword $secureKey -ZoneUid $zoneUid
    
    New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid
    
    -  $hostingUnitName = "demo-hostingunit"
    -  $availabilityzone = "us-east-1a"
    $vpcName = "Default VPC"
    $jobGroup = [Guid]::NewGuid()
    $hostingUnitPath = "XDHyp:\HostingUnits\" + $HostingUnitName
    $rootPath = $connectionPath + "\" + $vpcName + ".virtualprivatecloud\"
    $availabilityZonePath = @($rootPath + $availabilityzone + ".availabilityzone")
    $networkPaths = (Get-ChildItem $availabilityZonePath[0] | Where ObjectType -eq "Network") | Select-Object -ExpandProperty FullPath # will select all the networks in the availability zone
    
    New-Item -Path $hostingUnitPath -AvailabilityZonePath $availabilityZonePath -HypervisorConnectionName $connectionName -JobGroup $jobGroup -PersonalvDiskStoragePath @() -RootPath $rootPath -NetworkPath $networkPaths
    <!--NeedCopy-->
    

Hinweis:

Um eine Verbindung mithilfe der rollenbasierten Authentifizierung zu erstellen, geben Sie apiKey und apiSecret als role_based_auth an.

Einschränkung

Wenn Sie den Namen einer AWS Virtual Private Cloud (VPC) in der AWS-Konsole ändern, wird die vorhandene Hosting-Einheit in Citrix Cloud™ unterbrochen. Wenn die Hosting-Einheit unterbrochen ist, können Sie keine Kataloge erstellen oder Maschinen zu vorhandenen Katalogen hinzufügen. Um das Problem zu beheben, ändern Sie den Namen der AWS-VPC wieder in den ursprünglichen Namen.

Kontoübergreifende Bereitstellung

  • Es gibt Anwendungsfälle, in denen der Delivery Controller in einem separaten AWS-Konto (Shared Services-Konto oder Site Components-Konto) mit IAM-Rollen platziert werden soll, die kontoübergreifenden Zugriff (kontoübergreifende IAM-Rolle) haben, und MCS-bereitgestellte Maschinenkataloge in einem separaten sekundären AWS-Konto (Workload-Konten), ohne dass zusätzliche Delivery Controller in den separaten Konten erforderlich sind. Um solche Szenarien zu unterstützen, verwendet diese Funktion VPC-Peering und kontoübergreifenden Zugriff mithilfe von IAM-Rollen, um die Bereitstellung über verschiedene AWS-Konten hinweg für Unternehmen zu ermöglichen, die mehrere AWS-Konten verwalten.

Mit VPC-Peering können Ihr Delivery Controller und bereitgestellte VMs in verschiedenen Regionen oder Konten miteinander kommunizieren.

Mit kontoübergreifendem Zugriff mithilfe von IAM-Rollen ermöglichen Sie dem primären Konto (Delivery Controller-Konto), eine IAM-Rolle zu übernehmen, um auf AWS-Ressourcen im sekundären Konto (VMs des Maschinenkatalogs) zuzugreifen.

Damit der Delivery Controller auf die Ressourcen des sekundären Kontos zugreifen kann, erstellen Sie eine Hostverbindung, nachdem Sie die IAM-Rolle vom sekundären Konto übernommen haben.

Voraussetzungen

Richten Sie Folgendes ein, bevor Sie eine Hostverbindung für die kontoübergreifende Bereitstellung erstellen:

VPC-Peering einrichten

Nehmen wir an, VPC A befindet sich im primären Konto (Konto A) und enthält die Delivery Controller und Active Directory. VPC B befindet sich im sekundären Konto (Konto B), in dem Sie die VMs bereitstellen möchten.

Um eine VPC-Peering-Verbindung zwischen Konto A und Konto B einzurichten, gehen Sie wie folgt vor:

-  1.  Erstellen Sie eine VPC-Peering-Verbindung. Siehe:

-  [Verschiedenes Konto, gleiche Region](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html#different-account-same-region)
-  [Verschiedenes Konto, verschiedene Region](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html#different-account-different-region)
  1. Gehen Sie zu Ihrer VPC A und zur Routing-Tabelle, die dem öffentlichen Subnetz zugeordnet ist.
  2. Klicken Sie auf Routen bearbeiten > Route hinzufügen. Fügen Sie den CIDR-Block von VPC B in die Spalte Ziel ein und fügen Sie das von Ihnen erstellte VPC-Peering in die Spalte Ziel ein.
  3. Wiederholen Sie die Schritte 2 und 3, jedoch mit den privaten Subnetzen für VPC A und VPC B (fügen Sie den CIDR-Block von VPC A hinzu). Siehe Aktualisieren Sie Ihre Routing-Tabellen für eine VPC-Peering-Verbindung.
  4. Gehen Sie zur privaten Sicherheitsgruppe, die VPC A zugeordnet ist.
  5. Wählen Sie Aktionen und dann Eingehende Regeln bearbeiten.
  6. Wählen Sie Regel hinzufügen. Wählen Sie für den Typ Gesamter Datenverkehr und fügen Sie dann in der Spalte Quelle Folgendes hinzu:

    • Wenn es sich um eine andere Region handelt, fügen Sie den CIDR-Block von VPC B hinzu.
    • Wenn es sich um ein anderes Konto, aber dieselbe Region handelt, fügen Sie die Konto-ID und die private Sicherheitsgruppen-ID von VPC B, getrennt durch einen Schrägstrich, hinzu (Beispiel: 123456789012/sg-1a2b3c4d).
  7. Wiederholen Sie die Schritte 5 bis 7, jedoch mit der privaten Sicherheitsgruppe für VPC B (fügen Sie jedoch den CIDR-Block von VPC A oder die Konto-ID von VPC A und die private Sicherheitsgruppen-ID derselben Region, aber eines anderen Kontos hinzu). Siehe Aktualisieren Sie Ihre Sicherheitsgruppen, um Peer-Sicherheitsgruppen zu referenzieren.

Hinweis:

  • Für die Erstellung einer VPC-Peering-Verbindung fallen keine Kosten an. Während VPC-Peering innerhalb einer Availability Zone kostenlos ist, fallen jedoch Gebühren an, wenn die Datenübertragung über eine VPC-Peering-Verbindung über mehrere Availability Zones und Regionen hinweg erfolgt. Siehe Preise für eine VPC-Peering-Verbindung.

Kontoübergreifenden Zugriff mithilfe von IAM-Rollen delegieren

Nachdem Sie das VPC-Peering über Konten hinweg eingerichtet haben, delegieren Sie den kontoübergreifenden Zugriff mithilfe von IAM-Rollen.

Mit dem kontoübergreifenden Zugriff mithilfe von IAM-Rollen ermöglichen Sie dem primären Konto (Delivery Controller-Konto), eine IAM-Rolle zu übernehmen, um auf AWS-Ressourcen im sekundären Konto (VMs des Maschinenkatalogs) zuzugreifen.

-  Um auf kontoübergreifende Ressourcen zuzugreifen, gehen Sie wie folgt vor:

-  > **Zur Erinnerung:** > > Angenommen, VPC A befindet sich im primären Konto (Konto A) und enthält den Delivery Controller und Active Directory. VPC B befindet sich im sekundären Konto (Konto B), in dem Sie die VMs bereitstellen möchten.
  1. Richten Sie VPC-Peering über Konten hinweg mit den zuvor genannten Schritten ein.
  2. Erstellen Sie eine IAM-Rolle und -Richtlinie in Konto B mit minimalen Citrix IAM-Berechtigungen. Siehe IAM-Tutorial: Zugriff über AWS-Konten hinweg mithilfe von IAM-Rollen delegieren. Nehmen wir an, der ARN dieser Rolle ist “arn:aws:iam::5678:role/citrix-role”.
  3. Fügen Sie die Vertrauensrichtlinie zur Rolle “arn:aws:iam::5678:role/citrix-role” hinzu, damit sie von der Rolle “arn:aws:iam::1234:role/primary-account-citrix-role” von Konto A gemäß Kontoübergreifender Ressourcenzugriff in IAM zugänglich ist.
  4. Erstellen Sie die IAM-Rolle und -Richtlinie in Konto A mit dem zuvor genannten Namen “primary-account-citrix-role”, die die IAM-Rolle übernehmen und die IAM-Rolle von Konto B (arn:aws:iam::5678:role/citrix-role) übergeben kann.
  5. Weisen Sie die Rolle “arn:aws:iam::1234:role/primary-account-citrix-role” allen Delivery Controllern in Konto A zu.

Delivery Controller können nun die Rolle von Konto B (“arn:aws:iam::5678:role/citrix-role”) übernehmen.

Hostverbindung für kontoübergreifende Bereitstellung erstellen

Erstellen Sie eine Hostverbindung im sekundären Konto (Konto B), in dem Sie die VMs bereitstellen möchten. Dadurch können Delivery Controller von Konto A auf die Ressourcen in Konto B zugreifen, nachdem sie die Rolle von Konto B übernommen haben.

Verwenden Sie PowerShell-Befehle, um die Hostverbindung zu erstellen und die folgenden zwei benutzerdefinierten Eigenschaften hinzuzufügen:

  • CrossAccountRoleArn: Wenn Sie die Eigenschaft CrossAccountRoleArn nicht angeben, wird die reguläre Hostverbindung erstellt. In diesem Fall wird MaximumAssumeRoleDurationInSeconds ignoriert, selbst wenn sie angegeben ist.
  • MaximumAssumeRoleDurationInSeconds: DurationInSeconds muss zwischen 900 und 3600 Sekunden liegen. Der Standardwert ist 900 Sekunden. Wenn Sie einen Wert über 3600 angeben, wird DurationInSeconds auf 3600 gesetzt.

Beispiel:

$connectionName = "cross-account-conn"
$cloudRegion = "us-east-1"
$apiKey = "role_based_auth"
$secretKey = "role_based_auth"
$zoneUid = "xxxxxx"
$secureKey = (ConvertTo-SecureString -String $secretKey -AsPlainText -Force)
$connectionPath = "XDHyp:\Connections\" + $connectionName
$customProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="CrossAccountRoleArn" Value="arn:aws:iam::5678:role/citrix-role" /><Property xsi:type="StringProperty" Name="MaximumAssumeRoleDurationInSeconds" Value="3600" />
"</CustomProperties>'
 
$connection = New-Item -Path $connectionPath -ConnectionType "AWS" -HypervisorAddress "https://ec2.$($cloudRegion).amazonaws.com" -Persist -Scope @() -UserName $apiKey -SecurePassword $secureKey -ZoneUid $zoneUid -CustomProperties $customProperties
 
New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid
<!--NeedCopy-->

Nachdem die Hostverbindung erstellt wurde, erstellen Sie Hosting-Einheiten mit Studio oder PowerShell. Wählen Sie jedoch VPC und Netzwerke aus.

Verbindung bearbeiten

Sie können eine vorhandene Hostverbindung bearbeiten, um:

Optionen zum Bereitstellen von IAM-Berechtigungen bearbeiten

  1. Klicken Sie mit der rechten Maustaste auf eine vorhandene Amazon EC2-Verbindung.
  2. Klicken Sie auf der Seite Verbindungseigenschaften auf Einstellungen bearbeiten.
  3. Wählen Sie eine der Optionen aus, um IAM-Berechtigungen für Citrix zur Ressourcenverwaltung bereitzustellen. Geben Sie die erforderlichen Details ein und klicken Sie auf Speichern.

Maximale Anzahl gleichzeitiger Aktionen ändern

Wenn Sie Hostverbindungen in Studio für Amazon EC2 erstellen, werden die folgenden Standardwerte angezeigt:

Option Absolut Prozentsatz
Gleichzeitige Aktionen (alle Typen) 125 100
Maximale neue Aktionen pro Minute 150 n. z.
Maximale gleichzeitige Bereitstellungsvorgänge 100 n. z.

MCS unterstützt standardmäßig maximal 100 gleichzeitige Bereitstellungsvorgänge.

Konfigurieren Sie diese Werte, indem Sie im Citrix Studio auf dem Bildschirm Verbindung bearbeiten den Abschnitt Erweitert aufrufen.

Alternativ können Sie das Remote PowerShell SDK verwenden, um die maximale Anzahl gleichzeitiger Vorgänge für optimale Einstellungen in Ihrer Umgebung festzulegen.

Verwenden Sie die benutzerdefinierte PowerShell-Eigenschaft MaximumConcurrentProvisioningOperations, um die maximale Anzahl gleichzeitiger AWS-Bereitstellungsvorgänge anzugeben.

Vor der Konfiguration:

  • Stellen Sie sicher, dass Sie das PowerShell SDK für Cloud installiert haben.
  • Beachten Sie, dass der Standardwert für MaximumConcurrentProvisioningOperations 100 ist.

Führen Sie die folgenden Schritte aus, um den Wert für MaximumConcurrentProvisioningOperations anzupassen:

  1. Öffnen Sie ein PowerShell-Fenster.
  2. Führen Sie asnp citrix* aus, um die Citrix-spezifischen PowerShell-Module zu laden.
  3. Geben Sie cd xdhyp:\Connections\ ein.
  4. Geben Sie dir ein, um die Verbindungen aufzulisten.
  5. Ändern oder initialisieren Sie die Zeichenfolge der benutzerdefinierten Eigenschaften:

    • Wenn die Zeichenfolge der benutzerdefinierten Eigenschaften einen Wert enthält, kopieren Sie die benutzerdefinierten Eigenschaften in den Editor. Ändern Sie anschließend die Eigenschaft MaximumConcurrentProvisioningOperations auf den gewünschten Wert. Sie können einen Wert zwischen 1 und 1000 eingeben. Zum Beispiel: <Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="xyz"/>.

    • Wenn die Zeichenfolge der benutzerdefinierten Eigenschaften leer oder null ist, müssen Sie die Zeichenfolge initialisieren, indem Sie die richtige Syntax sowohl für das Schema als auch für die Eigenschaft MaximumConcurrentProvisioningOperations eingeben.

  6. Fügen Sie im PowerShell-Fenster die geänderten benutzerdefinierten Eigenschaften aus dem Editor ein und weisen Sie den geänderten benutzerdefinierten Eigenschaften eine Variable zu. Wenn Sie die benutzerdefinierten Eigenschaften initialisiert haben, fügen Sie die folgenden Zeilen nach der Syntax hinzu:

    $customProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="100"/></CustomProperties>'.

    Diese Zeichenfolge setzt die Eigenschaft MaximumConcurrentProvisioningOperations auf 100. In der Zeichenfolge der benutzerdefinierten Eigenschaften müssen Sie die Eigenschaft MaximumConcurrentProvisioningOperations auf einen Wert setzen, der Ihren Anforderungen entspricht.

  7. Geben Sie Get-XDAuthentication ein, wodurch Sie zur Eingabe Ihrer Anmeldeinformationen aufgefordert werden.
  8. Führen Sie $cred = Get-Credential aus, wodurch Sie möglicherweise nur nach einem Kennwort (oder einem Namen und Kennwort) gefragt werden. Möglicherweise werden Sie auch nach der Anwendungs-ID und dem zugehörigen Geheimnis gefragt. Bei Verbindungen, die eine rollenbasierte Authentifizierung verwenden, ist role_based_auth sowohl der Name als auch das Kennwort. Andernfalls geben Sie die AWS API-ID und das Geheimnis ein.
  9. Führen Sie set-item -PSPath 'XDHyp:\Connections<connection-name>’ -CustomProperties $customProperties -username $cred.username -Securepassword $cred.password` aus. Sie müssen den <Verbindungsnamen> auf den Namen der Verbindung setzen.
  10. Geben Sie dir ein, um die aktualisierte Zeichenfolge der benutzerdefinierten Eigenschaften zu überprüfen.

Sicherheitsgruppen pro Netzwerkschnittstelle konfigurieren

Beim Bearbeiten einer Hostverbindung können Sie jetzt die maximale Anzahl von Sicherheitsgruppen pro Elastic Network Interface (ENI) mithilfe eines PowerShell-Befehls konfigurieren. Informationen zu den Kontingentwerten für AWS-Sicherheitsgruppen finden Sie unter Sicherheitsgruppen.

So konfigurieren Sie Sicherheitsgruppen pro Netzwerkschnittstelle:

  1. Öffnen Sie ein PowerShell-Fenster.
  2. Führen Sie asnp citrix* aus, um die Citrix-spezifischen PowerShell-Module zu laden.
  3. Führen Sie cd xdhyp:\Connections\ aus.
  4. Führen Sie dir aus, um die Verbindungen aufzulisten.
  5. Führen Sie den folgenden PowerShell-Befehl aus, um Sicherheitsgruppen pro Netzwerkschnittstelle zu konfigurieren:

    Set-HypHypervisorConnectionMetadata -HypervisorConnectionName aws -Name "Citrix_MachineManagement_Options" -Value " AwsMaxENISecurityGroupLimit=<number>"
    <!--NeedCopy-->
    

    Hinweis:

    Wenn Sie keinen Wert für AwsMaxENISecurityGroupLimit festlegen, wird der Standardwert 5 verwendet.

Service-Endpunkt-URL

Service-Endpunkt-URL für Standardzonen

Wenn Sie MCS verwenden, wird eine neue AWS-Verbindung mit einem API-Schlüssel und einem API-Geheimnis hinzugefügt. Mit diesen Informationen und dem authentifizierten Konto fragt MCS AWS mithilfe des AWS DescribeRegions EC2 API-Aufrufs nach den unterstützten Zonen ab. Die Abfrage erfolgt über eine generische EC2 Service-Endpunkt-URL https://ec2.amazonaws.com/. Verwenden Sie MCS, um die Zone für die Verbindung aus der Liste der unterstützten Zonen auszuwählen. Die bevorzugte AWS Service-Endpunkt-URL wird automatisch für die Zone ausgewählt. Nachdem Sie die Service-Endpunkt-URL erstellt haben, können Sie die URL jedoch nicht mehr festlegen oder ändern.

Erforderliche AWS-Berechtigungen

Dieser Abschnitt enthält die vollständige Liste der AWS-Berechtigungen. Verwenden Sie den vollständigen Satz von Berechtigungen, wie in diesem Abschnitt angegeben, damit die Funktionalität korrekt funktioniert.

Hinweis:

Die Berechtigung iam:PassRole wird nur für die rollenbasierte Authentifizierung benötigt.

Erstellen einer Hostverbindung

Eine neue Hostverbindung wird mithilfe der von AWS erhaltenen Informationen hinzugefügt.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DescribeRegions"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Energieverwaltung von VMs

VMs werden ein- oder ausgeschaltet.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances"
            ],
-  "Effect": "Allow",
-  "Resource": "*"
-  }
-  ]
    -  }
<!--NeedCopy-->
-  ### Erstellen, Aktualisieren oder Löschen von VMs

Ein Maschinenkatalog wird mit als AWS-Instanzen bereitgestellten VMs erstellt, aktualisiert oder gelöscht.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateImage",
                "ec2:CreateLaunchTemplate",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:CreateVolume",
                "ec2:DeleteVolume",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeIamInstanceProfileAssociations",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "ec2:CancelSpotInstanceRequests",
                "ec2:DescribeInstanceCreditSpecifications",
                "ec2:DescribeInstanceAttribute",

                "ec2:GetLaunchTemplateData",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Hinweis:

-  Der EC2-Abschnitt bezüglich SecurityGroups wird nur benötigt, wenn während der Katalogerstellung eine Isolations-Sicherheitsgruppe für die Vorbereitungs-VM erstellt werden muss. Sobald dies geschehen ist, sind diese Berechtigungen nicht mehr erforderlich.

Importieren von VMs

Ein Maschinenkatalog wird durch den Import von VMs erstellt.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSubnets",
                "ec2:DescribeVolumes",
                "ec2:DescribeSpotInstanceRequests"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Hinweis:

Die Berechtigung ec2:DescribeSpotInstanceRequests wird nur benötigt, wenn in der AWS-Region, aus der VMs importiert werden sollen, eine Spot-Instanz vorhanden ist.

Direkter Festplatten-Upload und -Download

Der direkte Festplatten-Upload eliminiert die Anforderung eines Volume Workers für die Bereitstellung von Maschinenkatalogen und verwendet stattdessen öffentliche APIs, die von AWS bereitgestellt werden. Diese Funktionalität reduziert die Kosten, die mit zusätzlichen Speicherkonten verbunden sind, und die Komplexität bei der Wartung von Volume Worker-Operationen.

Hinweis:

Die Unterstützung für Volume Worker wurde entfernt. Die Berechtigungen für den direkten Festplatten-Upload und -Download sind für die Bereitstellung von Maschinenkatalogen erforderlich.

Die folgenden Berechtigungen müssen der Richtlinie hinzugefügt werden:

  • ebs:StartSnapshot
  • ebs:GetSnapshotBlock
  • ebs:PutSnapshotBlock
  • ebs:CompleteSnapshot
  • ebs:ListSnapshotBlocks
  • ebs:ListChangedBlocks
  • ec2:CreateSnapshot
  • ec2:DeleteSnapshot
  • ec2:DescribeLaunchTemplates

Wichtig:

  • Sie können einem vorhandenen Maschinenkatalog eine neue VM hinzufügen, ohne Volume Worker-Ressourcen wie Volume Worker-AMI und Volume Worker-VM zu benötigen.
  • Wenn Sie einen vorhandenen Katalog löschen, der zuvor einen Volume Worker verwendet hat, werden alle Volume Worker-bezogenen Artefakte gelöscht.

EBS-Verschlüsselung von erstellten Volumes

EBS kann neu erstellte Volumes automatisch verschlüsseln, wenn das AMI verschlüsselt ist oder EBS so konfiguriert ist, dass alle neuen Volumes verschlüsselt werden. Um die Funktionalität zu implementieren, müssen jedoch die folgenden Berechtigungen in der IAM-Richtlinie enthalten sein.

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:GenerateDataKey",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Hinweis:

Die Berechtigungen können nach Ermessen des Benutzers auf bestimmte Schlüssel beschränkt werden, indem ein Ressourcen- und Bedingungsblock hinzugefügt wird. Beispiel: KMS-Berechtigungen mit Bedingung:

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:GenerateDataKey",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": [
                "arn:aws:kms:us-east-2:123456789012:key/abcd1234-a123-456d-a12b-a123b4cd56ef"
            ],
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
    ]
}
<!--NeedCopy-->

Die folgende Schlüsselrichtlinienanweisung ist die gesamte Standard-Schlüsselrichtlinie für KMS-Schlüssel, die erforderlich ist, damit das Konto IAM-Richtlinien verwenden kann, um Berechtigungen für alle Aktionen (kms:*) auf dem KMS-Schlüssel zu delegieren.

{
"Sid": "Enable IAM policies",
"Effect": "Allow",
-  "Principal": {
-  "AWS": "arn:aws:iam::111122223333:root"
-  },
"Action": "kms:",
"Resource": ""
}
<!--NeedCopy-->

Weitere Informationen finden Sie in der offiziellen Dokumentation des AWS Key Management Service.

IAM-rollenbasierte Authentifizierung

-  Die folgenden Berechtigungen werden hinzugefügt, um die rollenbasierte Authentifizierung zu unterstützen.
{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
-  "Action": "iam:PassRole",
-  "Resource": "arn:aws:iam::*:role/*"
        }
-  ]
-  }
<!--NeedCopy-->

Minimale IAM-Berechtigungsrichtlinie

Das folgende JSON kann für alle derzeit unterstützten Funktionen verwendet werden. Mit dieser Richtlinie können Sie Hostverbindungen erstellen, VMs erstellen, aktualisieren oder löschen und das Power Management durchführen. Die Richtlinie kann auf die Benutzer angewendet werden, wie in den Abschnitten IAM-Berechtigungen definieren erläutert, oder Sie können auch die rollenbasierte Authentifizierung unter Verwendung des Sicherheitsschlüssels und des geheimen Schlüssels role_based_auth verwenden.

Wichtig:

Um role_based_auth zu verwenden, konfigurieren Sie zunächst die gewünschte IAM-Rolle auf der Delivery Controller EC2-Instanz, wenn Sie die Delivery Controller einrichten. Fügen Sie über Web Studio die Hosting-Verbindung hinzu und geben Sie role_based_auth für den Authentifizierungsschlüssel und den geheimen Schlüssel an. Eine Hosting-Verbindung mit diesen Einstellungen verwendet dann die rollenbasierte Authentifizierung.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateImage",
                "ec2:CreateLaunchTemplate",
                "ec2:CreateNetworkInterface",
                "ec2:CreateTags",
                "ec2:CreateVolume",
                "ec2:DeleteLaunchTemplate",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:DeleteSnapshot",
                "ec2:DeleteTags",
                "ec2:DeleteVolume",
                "ec2:DeregisterImage",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeIamInstanceProfileAssociations",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "ec2:CancelSpotInstanceRequests",
                "ec2:DescribeInstanceCreditSpecifications",
                "ec2:DescribeInstanceAttribute",
                "ec2:GetLaunchTemplateData",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:GenerateDataKey",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*"
        }
    ]
}
<!--NeedCopy-->

Hinweis:

  • Der EC2-Abschnitt bezüglich SecurityGroups wird nur benötigt, wenn während der Katalogerstellung eine Isolation Security Group für die Vorbereitungs-VM erstellt werden muss. Sobald dies geschehen ist, sind diese Berechtigungen nicht mehr erforderlich.
  • Der KMS-Abschnitt ist nur erforderlich, wenn die EBS-Volume-Verschlüsselung verwendet wird.
  • Der Berechtigungsabschnitt iam:PassRole wird nur für role_based_auth benötigt.
  • Spezifische Berechtigungen auf Ressourcenebene können anstelle des vollständigen Zugriffs hinzugefügt werden, basierend auf Ihren Anforderungen und Ihrer Umgebung. Weitere Informationen finden Sie in den AWS-Dokumenten Demystifying EC2 Resource-Level Permissions und Access management for AWS resources.
  • Verwenden Sie die Berechtigungen ec2:CreateNetworkInterface und ec2:DeleteNetworkInterface nur, wenn Sie die Volume-Worker-Methode verwenden.

Berechtigungen für Hostverbindung validieren

Sie können Berechtigungen für eine Hostverbindung validieren, um Aufgaben im Zusammenhang mit der Erstellung und Verwaltung von MCS-Maschinenkatalogen auszuführen. Diese Implementierung hilft Ihnen, fehlende Berechtigungen, die für verschiedene Szenarien wie das Erstellen, Löschen und Aktualisieren von VMs, das Power Management von VMs und die EBS-Verschlüsselung erforderlich sind, frühzeitig zu ermitteln, damit Sie in kritischen Zeiten nicht blockiert werden.

Sie können die Berechtigungen für eine Hostverbindung mit dem PowerShell-Befehl Test-HypHypervisorConnection validieren. Das Ergebnis des Befehls wird als Liste erfasst, wobei jedes Element der Liste in drei Abschnitte unterteilt ist.

  • Kategorie: Die Aktion oder Aufgabe, die ein Benutzer ausführen kann, um einen MCS-Maschinenkatalog zu erstellen und zu verwalten.
  • Korrekturmaßnahme: Der Schritt, den ein Administrator unternehmen muss, um eine Diskrepanz bei fehlenden Benutzerberechtigungen zu beheben.
  • Fehlende Berechtigung: Die Liste der fehlenden Berechtigungen für eine Kategorie.

Gehen Sie wie folgt vor, um die Berechtigungen zu validieren:

  1. Erstellen Sie eine Hostverbindung zu AWS.
  2. Öffnen Sie ein PowerShell-Fenster vom Delivery Controller™-Host.
  3. Führen Sie asnp citrix* aus, um die Citrix-spezifischen PowerShell-Module zu laden.
  4. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Sie über die erforderlichen Berechtigungen verfügen, um Ihre Berechtigungen nachzuschlagen.

    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon"
    <!--NeedCopy-->
    
  5. Nachdem Sie die fehlenden Berechtigungen hinzugefügt haben, die zum Nachschlagen Ihrer Berechtigungen erforderlich sind, führen Sie den folgenden Befehl aus, um zu überprüfen, ob Sie Berechtigungen in den folgenden Kategorien haben:

    • Erstellen, Aktualisieren, Löschen
    • Power Management
    • EBS-Verschlüsselung
    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" [-SecurePassword -Password] "password" -UserName "" -CustomProperties ""
    <!--NeedCopy-->
    

Weitere Informationen zum Hinzufügen von Berechtigungen finden Sie unter IAM-Berechtigungen hinzufügen.

Nächste Schritte

Weitere Informationen

Verbindung zu AWS EC2