Citrix Virtual Apps and Desktops

Verbindung zu AWS

Unter Verbindungen und Ressourcen erstellen und verwalten werden die Assistenten zum Erstellen einer Verbindung beschrieben. Die folgenden Informationen beziehen sich speziell auf AWS-Cloudumgebungen.

Hinweis:

Bevor Sie eine Verbindung zu AWS herstellen, müssen Sie zunächst Ihr AWS-Konto als Ressourcenstandort eingerichtet haben. Siehe AWS-Cloudumgebungen.

Verbindung erstellen

Beim Erstellen einer Verbindung von Web Studio aus gilt Folgendes:

  • Sie müssen den API-Schlüssel und die geheimen Schlüsselwerte angeben. Sie können die Schlüsseldatei mit diesen Werten aus AWS exportieren und anschließend importieren. Sie müssen auch die Werte für Region, Verfügbarkeitszone, VPC-Namen, Subnetzadressen, Domänenname, Namen der Sicherheitsgruppen und Anmeldeinformationen angeben.
  • Die für das AWS-Rootkonto von der AWS-Konsole abgerufene Anmeldeinformationsdatei hat nicht das gleiche Format wie die Anmeldeinformationsdateien, die für Standard-AWS-Benutzer heruntergeladen werden. Deshalb kann diese Datei nicht von Citrix Virtual Apps and Desktops zum Ausfüllen der Felder “API-Schlüssel” und “Geheimer Schlüssel” verwendet werden. Verwenden Sie AWS Identity Access Management (IAM)-Anmeldeinformationsdateien.

Hinweis:

Nachdem Sie eine Verbindung hergestellt haben, kann die Aktualisierung des API-Schlüssels und des geheimen Schlüssels fehlschlagen. Um das Problem zu beheben, überprüfen Sie Ihren Proxyserver oder die Firewall-Beschränkungen und stellen Sie sicher, dass die folgende Adresse erreichbar ist: https://*.amazonaws.com.

Standardwerte für Hostverbindungen

Wenn Sie Hostverbindungen in AWS-Cloudumgebungen erstellen, werden die folgenden Standardwerte angezeigt:

| Option | Absolut | Prozent | |— | — | —| | Gleichzeitige Aktionen (alle Typen) | 125 | 100 | | Höchstanzahl neue Aktionen pro Minute | 125 |

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

Service-Endpunkt-URL

Standard-Service-Endpunkt-URL

Wenn Sie MCS verwenden, werden neue AWS-Verbindungen mit einem API-Schlüssel und einem API-Geheimnis hinzugefügt. Anhand dieser Informationen und des authentifizierten Kontos fragt MCS bei AWS mit dem AWS-API-Aufruf DescribeRegions EC2 die unterstützten Zonen ab. Die Abfrage erfolgt mit der generischen EC2-Service-Endpunkt-URL https://ec2.amazonaws.com/. Wählen Sie über MCS die Zone für die Verbindung aus der Liste der unterstützten Zonen aus. Die bevorzugte AWS-Service-Endpunkt-URL wird automatisch für die Zone ausgewählt. Nach dem Erstellen der Service-Endpunkt-URL können Sie diese nicht mehr ändern.

IAM-Berechtigungen definieren

Anhand der Informationen in diesem Abschnitt können Sie IAM-Berechtigungen für Citrix Virtual Apps and Desktops in AWS definieren. Der IAM-Dienst von Amazon gestattet Konten mit mehreren Benutzern, die in Gruppen organisiert werden können. Die Benutzer können verschiedene Berechtigungen für die Durchführung von Vorgängen haben, die mit dem Konto verknüpft sind. Weitere Informationen zu IAM-Berechtigungen finden Sie unter IAM-JSON-Richtlinienreferenz.

Gehen Sie zum Anwenden der IAM-Berechtigungsrichtlinie auf eine neue Benutzergruppe folgendermaßen vor:

  1. Melden Sie sich bei der AWS-Verwaltungskonsole an und wählen Sie IAM service aus der Dropdownliste aus.
  2. Wählen Sie Create a New Group of Users.
  3. Geben Sie einen Namen für die neue Benutzergruppe ein und wählen Sie Continue.
  4. Wählen Sie auf der Seite Permissions die Option Custom Policy. Wählen Sie Select.
  5. Geben Sie einen Namen für die Berechtigungsrichtlinieein.
  6. Geben Sie im Abschnitt Richtliniendokument die relevanten Berechtigungen ein.

Nach Eingabe der Richtlinieninformationen wählen Sie Continue, um die Benutzergruppe abzuschließen. Den Benutzern in der Gruppe werden nur die Berechtigungen erteilt, die sie zur Ausführung der für Citrix Virtual Apps and Desktops erforderlichen Aktionen benötigen.

Wichtig:

Verwenden Sie den Richtlinientext im obigen Beispiel, um die von Citrix Virtual Apps and Desktops in einem AWS-Konto durchgeführten Aktionen aufzulisten, ohne diese auf bestimmte Ressourcen zu beschränken. Citrix empfiehlt die Verwendung des Beispiels zu Testzwecken. Für Produktionsumgebungen können Sie weitere Beschränkungen für Ressourcen hinzufügen.

IAM-Berechtigungen festlegen

Legen Sie die Berechtigungen im Bereich IAM der AWS Management Console fest:

  1. Wählen Sie im Bereich Summary die Registerkarte Permissions.
  2. Wählen Sie Add Permissions.

Identity and Access Management (IAM)

Erteilen Sie im Fenster Add Permissions to folgende Berechtigungen:

Berechtigungen für IAM-Richtlinien erteilen

Verwenden Sie Folgendes als Beispiel für die Registerkarte JSON:

JSON-Beispiel

Tipp:

Das JSON-Beispiel enthält möglicherweise nicht alle Berechtigungen für Ihre Umgebung. Weitere Informationen finden Sie unter How to Define Identity Access Management Permissions Running Citrix Virtual Apps and Desktops on AWS.

Erforderliche AWS-Berechtigungen

Dieser Abschnitt enthält die vollständige Liste der AWS-Berechtigungen.

Hinweis:

Die Berechtigung iam:PassRole wird nur für role_based_auth benötigt.

Hostverbindung erstellen

Eine neue Hostverbindung wird unter Verwendung der Informationen von AWS hinzugefügt.

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

Energieverwaltung virtueller Maschinen

Maschineninstanzen werden ein- oder ausgeschaltet.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:CreateVolume",
                "ec2:DeleteVolume",
                "ec2:DescribeInstances",
                "ec2:DescribeVolumes",
                "ec2:DetachVolume",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Erstellen, Aktualisieren oder Löschen von VMs

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

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "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:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:PutBucketAcl",
                "s3:PutBucketTagging",
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::citrix*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Hinweis:

Der Abschnitt zu EC2, der sich auf Sicherheitsgruppen bezieht, wird nur benötigt, wenn während der Katalogerstellung eine Isolationssicherheitsgruppe für die Vorbereitungs-VM erstellt werden muss. Sobald dies abgeschlossen ist, sind diese Berechtigungen nicht erforderlich.

Direkter Disk-Upload und -Download

Durch den direkten Disk-Upload entfällt die Volumeworker-Anforderung beim Provisioning von Maschinenkatalogen. Stattdessen werden von AWS bereitgestellte öffentliche APIs verwendet. Diese Funktion reduziert die mit zusätzlichen Speicherkonten verbundenen Kosten und die komplexe Verwaltung von Volumeworker-Prozessen.

Hinweis:

Die Volumeworker-Unterstützung ist veraltet.

Folgende Berechtigungen müssen zur 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 eine VM zu vorhandenen Maschinenkatalogen ohne Volumeworker-Prozesse wie Volumeworker-AMI und Volumeworker-VM hinzufügen.
  • Wenn Sie einen vorhandenen Katalog löschen, in dem Volumeworker verwendet wurde, werden alle Artefakte inklusive zugehörigem Volumeworker gelöscht.

EBS-Verschlüsselung erstellter Volumes

EBS kann neu erstellte Volumes automatisch verschlüsseln, wenn das AMI verschlüsselt ist oder EBS zur Verschlüsselung aller neuen Volumes konfiguriert ist. Zum Implementieren der Funktionalität 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:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Hinweis:

Die Berechtigungen können durch Hinzufügen eines Abschnitts “Resource” und “Condition” nach Ermessen des Benutzers auf bestimmte Schlüssel beschränkt werden. Beispiel: KMS-Berechtigungen mit Bedingung:

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "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 komplette Standardrichtlinie für KMS-Schlüssel, die erforderlich ist, damit das Konto unter Einsatz von IAM-Richtlinien Berechtigungen für alle Aktionen (kms: *) für den KMS-Schlüssel delegieren kann.

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

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

Rollenbasierte IAM-Authentifizierung

Die folgenden Berechtigungen werden zur Unterstützung der rollenbasierten Authentifizierung hinzugefügt.

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*"
        }
    ]
}
<!--NeedCopy-->

Richtlinie für Mindest-IAM-Berechtigungen

Die folgende JSON kann für alle derzeit unterstützten Features verwendet werden. Unter Verwendung der Richtlinie können Sie Hostverbindungen erstellen, VMs erstellen, aktualisieren und löschen und die Energieverwaltung durchführen. Die Richtlinie kann auf die Benutzer angewendet werden (siehe IAM-Berechtigungen definieren) oder Sie können die rollenbasierte Authentifizierung über den Sicherheitsschlüssel role_based_auth und den geheimen Schlüssel verwenden.

Wichtig:

Um role_based_auth zu verwenden, konfigurieren Sie zunächst die gewünschte IAM-Rolle auf allen Delivery Controllers auf unserer Site. Fügen Sie unter Verwendung von Web Studio die Hostingverbindung hinzu und geben Sie role_based_auth für den Authentifizierungsschlüssel und das Geheimnis an. Eine Hostingverbindung mit diesen Einstellungen verwendet dann die rollenbasierte Authentifizierung.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "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:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutBucketAcl",
                "s3:PutObject",
                "s3:PutBucketTagging",
                "s3:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::citrix*"
        },
        {
            "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 Abschnitt zu EC2, der sich auf SecurityGroups bezieht, wird nur benötigt, wenn während der Katalogerstellung eine Isolationssicherheitsgruppe für die Vorbereitungs-VM erstellt werden muss. Sobald dies abgeschlossen ist, sind diese Berechtigungen nicht erforderlich.
  • Der KMS-Abschnitt ist nur bei Verwendung der EBS-Volume-Verschlüsselung erforderlich.
  • Der Berechtigungsbereich iam:PassRole wird nur für role_based_auth benötigt.
  • Anstelle eines Vollzugriffs können spezifische Berechtigungen auf Ressourcenebene gemäß Ihren Anforderungen und Ihrer Umgebung hinzugefügt werden. Weitere Informationen finden Sie in den AWS-Dokumenten Demystifying EC2 Resource-Level Permissions und Access management for AWS resources.

Berechtigungen für die Hostverbindung bestätigen

Sie können die Berechtigungen für eine Hostverbindung überprüfen, um Aufgaben im Zusammenhang mit der Erstellung und Verwaltung von MCS-Maschinenkatalogen auszuführen. Diese Implementierung hilft Ihnen, die fehlenden Berechtigungen, die für verschiedene Szenarien wie das Erstellen, Löschen und Aktualisieren von VMs, Energieverwaltung von VMs und EBS-Verschlüsselung erforderlich sind, im Voraus zu ermitteln, sodass Sie vermeiden können, in kritischen Zeiten blockiert zu werden.

Sie können die Berechtigungen für eine Hostverbindung mit dem PowerShell-Befehl Test-HypHypervisorConnection überprüfen. Das Ergebnis des Befehls wird als Liste erfasst, in der jedes Element in 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 ausführen muss, um die Diskrepanz bei fehlenden Berechtigungen eines Benutzers zu beheben.
  • Fehlende Berechtigung: Die Liste der fehlenden Berechtigungen für eine Kategorie.

Gehen Sie wie folgt vor, um die Berechtigungen zu überprüfen:

  1. Erstellen Sie eine Hostverbindung zu AWS.
  2. Öffnen Sie ein PowerShell-Fenster vom Delivery Controller-Host aus.
  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 abzurufen.

    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 über Berechtigungen in den folgenden Kategorien verfügen:

    • Erstellen, Aktualisieren, Löschen
    • Energieverwaltung
    • 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 festlegen.

So geht es weiter

Weitere Informationen

Verbindung zu AWS