Verbindung zu AWS

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

Hinweis:

Bevor Sie eine Verbindung zu AWS erstellen, müssen Sie zuerst Ihr AWS-Konto als Ressourcenstandort einrichten. Siehe AWS-Cloud-Umgebungen.

Verbindung erstellen

Wenn Sie eine Verbindung über Web Studio erstellen:

  • Sie müssen die Werte für den API-Schlüssel und den geheimen Schlüssel angeben. Sie können die Schlüsseldatei, die diese Werte enthält, aus AWS exportieren und dann importieren. Sie müssen außerdem die Region, die Verfügbarkeitszone, den VPC-Namen, die Subnetzadressen, den Domänennamen, die Namen der Sicherheitsgruppen und die Anmeldeinformationen angeben.
  • Die Anmeldeinformationsdatei für das AWS-Root-Konto (aus der AWS-Konsole abgerufen) ist nicht im selben Format wie Anmeldeinformationsdateien, die für Standard-AWS-Benutzer heruntergeladen wurden. Daher kann die Verwaltung von Citrix Virtual Apps and Desktops™ die Datei nicht verwenden, um die Felder für den API-Schlüssel und den geheimen Schlüssel zu füllen. Stellen Sie sicher, dass Sie AWS Identity Access Management (IAM)-Anmeldeinformationsdateien verwenden.

Hinweis:

Nachdem Sie eine Verbindung erstellt haben, können Versuche, den API-Schlüssel und den geheimen Schlüssel zu aktualisieren, fehlschlagen. Um das Problem zu beheben, überprüfen Sie Ihren Proxyserver oder Ihre Firewall-Einschränkungen und stellen Sie sicher, dass die folgende Adresse erreichbar ist: https://*.amazonaws.com.

Standardwerte für Hostverbindungen

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

Option Absolut Prozentsatz
Gleichzeitige Aktionen (alle Typen) 125 100
Maximale neue Aktionen pro Minute 125  

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

Dienstendpunkt-URL

Dienstendpunkt-URL für Standardzone

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 nach den unterstützten Zonen mithilfe des AWS DescribeRegions EC2 API-Aufrufs ab. Die Abfrage erfolgt über eine generische EC2-Dienstendpunkt-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-Dienstendpunkt-URL wird automatisch für die Zone ausgewählt. Nachdem Sie die Dienstendpunkt-URL erstellt haben, können Sie die URL jedoch nicht mehr festlegen oder ändern.

IAM-Berechtigungen definieren

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 Neue Benutzergruppe erstellen.
  3. Geben Sie einen Namen für die neue Benutzergruppe ein und wählen Sie Weiter.
  4. Wählen Sie auf der Seite Permissions (Berechtigungen) die Option Custom Policy (Benutzerdefinierte Richtlinie). Wählen Sie 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 Benutzergruppe zu vervollständigen. Benutzern in der Gruppe werden Berechtigungen erteilt, nur die Aktionen auszuführen, die für Citrix Virtual Apps and Desktops erforderlich sind.

Wichtig:

Verwenden Sie den im vorherigen Beispiel angegebenen Richtlinientext, um die Aktionen aufzulisten, die Citrix Virtual Apps and Desktops zur Ausfü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 festlegen

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

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

Identitäts- und Zugriffsverwaltung (IAM)

Erteilen Sie im Bildschirm Add Permissions to (Berechtigungen hinzufügen zu) Berechtigungen:

Berechtigungen für IAM-Richtlinien erteilen

Verwenden Sie Folgendes als Beispiel auf der Registerkarte JSON:

JSON-Beispiel

Tipp:

Das genannte 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 iam:PassRole-Berechtigung wird nur für role_based_auth benötigt.

Erstellen einer Hostverbindung

Eine neue Hostverbindung wird mithilfe 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"
                "ec2:DescribeRegions",
                "ec2:DescribeSnapshots",
                "ec2:DescribeLaunchTemplates"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Energieverwaltung von VMs

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",
                "ec2:DescribeInstanceStatus"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Erstellen, Aktualisieren oder Löschen von VMs

Ein Maschinenkatalog wird erstellt, aktualisiert oder gelöscht, wobei VMs 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:DescribeInstanceStatus",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "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: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 EC2-Abschnitt bezüglich Sicherheitsgruppen wird nur benötigt, wenn während der Katalogerstellung eine Isolationssicherheitsgruppe für die Vorbereitungs-VM erstellt werden muss. Sobald dies geschehen ist, sind diese Berechtigungen nicht mehr erforderlich.

Direkter Festplatten-Upload und -Download

Der direkte Festplatten-Upload eliminiert die Anforderung an Volume Worker 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 ist veraltet.

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 eine VM zu bestehenden Maschinenkatalogen hinzufügen, ohne jegliche Volume-Worker-Operationen wie Volume-Worker-AMI und Volume-Worker-VM.
  • Wenn Sie einen vorhandenen Katalog löschen, der zuvor einen Volume Worker verwendet hat, werden alle Artefakte, einschließlich der Volume Worker-bezogenen, gelöscht.

EBS-Verschlüsselung erstellter 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: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. Zum 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 gesamte Standardschlüsselrichtlinie für KMS-Schlüssel, die erforderlich ist, um dem Konto die Verwendung von IAM-Richtlinien zur Delegierung von Berechtigungen für alle Aktionen (kms:*) auf dem KMS-Schlüssel zu ermöglichen.

{
"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 zur Unterstützung der rollenbasierten Authentifizierung hinzugefügt.

{
     "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 die Energieverwaltung 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 mithilfe des Sicherheitsschlüssels und des geheimen Schlüssels role_based_auth verwenden.

Wichtig:

Um role_based_auth zu verwenden, konfigurieren Sie zuerst die gewünschte IAM-Rolle auf allen Delivery Controllern in unserer Site. 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: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:DescribeInstanceStatus",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "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: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 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 Details finden Sie in den AWS-Dokumenten Demystifying EC2 Resource-Level Permissions und Access management for AWS resources.

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, die Energieverwaltung von VMs und die EBS-Verschlüsselung erforderlich sind, frühzeitig zu erkennen, damit Sie zu 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 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 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 die erforderlichen Berechtigungen zum Nachschlagen Ihrer Berechtigungen haben.

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

    • 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.

Nächste Schritte

Weitere Informationen

Verbindung zu AWS