Citrix Virtual Apps and Desktops 7 2311

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 herstellen, 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 mit diesen Werten aus AWS exportieren und dann importieren. Sie müssen auch 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-Stammkonto (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 ab, indem der AWS DescribeRegions EC2-API-Aufruf verwendet wird. 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 erlaubt 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 unter 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 Dropdownliste 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. Auf der Seite Berechtigungen wählen Sie Benutzerdefinierte Richtlinie. Wählen Sie Auswählen.
  5. Geben Sie einen Namen für die Berechtigungsrichtlinie ein.
  6. Geben Sie im Abschnitt Richtliniendokument die relevanten Berechtigungen ein.

Nachdem Sie die Richtlinieninformationen eingegeben haben, wählen Sie Weiter, um die Benutzergruppe zu vervollständigen. Benutzer in der Gruppe erhalten Berechtigungen, nur die Aktionen auszuführen, die für Citrix Virtual Apps and Desktops erforderlich sind.

Wichtig:

Verwenden Sie den Richtlinientext aus dem vorherigen Beispiel, um die Aktionen aufzulisten, die Citrix Virtual Apps and Desktops verwendet, um Aktionen innerhalb eines AWS-Kontos auszuführen, 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 Zusammenfassung die Registerkarte Berechtigungen.
  2. Wählen Sie Berechtigungen hinzufügen.

Identitäts- und Zugriffsverwaltung (IAM)

Im Bildschirm Berechtigungen hinzufügen zu erteilen Sie 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 Definieren von Identity and Access Management-Berechtigungen für die Ausführung von Citrix Virtual Apps and Desktops unter 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 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",
                "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 preparation 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.

Folgende 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-Operation 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 derer, die sich auf den Volume Worker beziehen, 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:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Hinweis:

Die Berechtigungen können nach Ermessen des Benutzers durch Hinzufügen eines Ressourcen- und Bedingungsblocks auf bestimmte Schlüssel beschränkt werden. 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 Standard-Schlü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 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 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 role_based_auth und des geheimen Schlüssels 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 Isolations-Sicherheitsgruppe für die Vorbereitungs-VM erstellt werden muss. Sobald dies geschehen ist, sind diese Berechtigungen nicht mehr erforderlich.
  • Der KMS-Abschnitt ist nur bei Verwendung der EBS-Volume-Verschlüsselung erforderlich.
  • 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.

Nächste Schritte

Weitere Informationen

Verbindung zu AWS