Erforderliche IAM Berechtigungen für das Erstellen und Verwenden von CloudShell VPC Umgebungen - AWS CloudShell

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erforderliche IAM Berechtigungen für das Erstellen und Verwenden von CloudShell VPC Umgebungen

Um CloudShell VPC Umgebungen zu erstellen und zu verwenden, muss der IAM Administrator den Zugriff auf VPC bestimmte EC2 Amazon-Berechtigungen aktivieren. In diesem Abschnitt sind die EC2 Amazon-Berechtigungen aufgeführt, die zum Erstellen und Verwenden von VPC Umgebungen erforderlich sind.

Um VPC Umgebungen zu erstellen, muss die Ihrer Rolle zugewiesene IAM Richtlinie die folgenden EC2 Amazon-Berechtigungen enthalten:

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeDhcpOptions

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateTags

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

Wir empfehlen, auch Folgendes einzubeziehen:

  • ec2:DeleteNetworkInterface

Anmerkung

Diese Berechtigung ist nicht verpflichtend, aber sie ist erforderlich, CloudShell um die von ihr erstellte ENI Ressource (die für CloudShell VPC Umgebungen ENIs erstellt wurde, die mit ManagedByCloudShell Schlüsseln gekennzeichnet sind) zu bereinigen. Wenn diese Berechtigung nicht aktiviert ist, müssen Sie die ENI Ressource nach jeder Nutzung der CloudShell VPC Umgebung manuell bereinigen.

IAMRichtlinie, die vollen CloudShell Zugriff gewährt, einschließlich Zugriff auf VPC

Das folgende Beispiel zeigt, wie vollständige Berechtigungen, einschließlich Zugriff aufVPC, aktiviert werden können für CloudShell:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudShellOperations", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "AllowDescribeVPC", "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "AllowCreateTagWithCloudShellKey", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" }, "ForAnyValue:StringEquals": { "aws:TagKeys": "ManagedByCloudShell" } } }, { "Sid": "AllowCreateNetworkInterfaceWithSubnetsAndSG", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "AllowCreateNetworkInterfaceWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "ManagedByCloudShell" } } }, { "Sid": "AllowCreateNetworkInterfacePermissionWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } } }, { "Sid": "AllowDeleteNetworkInterfaceWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } } } ] }

Verwenden von IAM Bedingungsschlüsseln für VPC Umgebungen

Sie können CloudShell -spezifische Bedingungsschlüssel für VPC Einstellungen verwenden, um zusätzliche Berechtigungskontrollen für Ihre VPC Umgebungen bereitzustellen. Sie können auch die Subnetze und Sicherheitsgruppen angeben, die die VPC Umgebung verwenden kann und welche nicht.

CloudShell unterstützt die folgenden Bedingungsschlüssel in IAM Richtlinien:

  • CloudShell:VpcIds— Erlaube oder verbiete einen oder mehrere VPCs

  • CloudShell:SubnetIds— Erlaube oder verbiete ein oder mehrere Subnetze

  • CloudShell:SecurityGroupIds— Erlauben oder verweigern Sie eine oder mehrere Sicherheitsgruppen

Anmerkung

Wenn die Berechtigungen für Benutzer mit Zugriff auf öffentliche CloudShell Umgebungen geändert werden, um die cloudshell:createEnvironment Aktion einzuschränken, können sie weiterhin auf ihre bestehende öffentliche Umgebung zugreifen. Wenn Sie jedoch eine IAM Richtlinie mit dieser Einschränkung ändern und ihren Zugriff auf die bestehende öffentliche Umgebung deaktivieren möchten, müssen Sie zuerst die IAM Richtlinie mit der Einschränkung aktualisieren und dann sicherstellen, dass jeder CloudShell Benutzer in Ihrem Konto die bestehende öffentliche Umgebung manuell über die CloudShell Webbenutzeroberfläche löscht (Aktionen CloudShell Umgebung löschen).

Beispielrichtlinien mit Bedingungsschlüsseln für Einstellungen VPC

Die folgenden Beispiele zeigen, wie Bedingungsschlüssel für VPC Einstellungen verwendet werden. Nachdem Sie eine Richtlinienanweisung mit den gewünschten Einschränkungen erstellt haben, fügen Sie die Richtlinienanweisung für den -Zielbenutzer oder die Zielrolle an.

Stellen Sie sicher, dass Benutzer nur VPC Umgebungen erstellen, und verweigern Sie die Erstellung öffentlicher Umgebungen

Um sicherzustellen, dass Benutzer nur VPC Umgebungen erstellen können, verwenden Sie die Verweigerungsberechtigung, wie im folgenden Beispiel gezeigt:

{ "Statement": [ { "Sid": "DenyCloudShellNonVpcEnvironments", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "Null": { "cloudshell:VpcIds": "true" } } } ] }

Verweigern Sie Benutzern den Zugriff auf bestimmte VPCs Subnetze oder Sicherheitsgruppen

Um Benutzern den Zugriff auf bestimmte Bereiche zu verweigernVPCs, verwenden Sie diese Option, StringEquals um den Wert der cloudshell:VpcIds Bedingung zu überprüfen. Im folgenden Beispiel wird Benutzern der Zugriff auf vpc-1 und vpc-2 verweigert:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "cloudshell:VpcIds": [ "vpc-1", "vpc-2" ] } } } ] }

Um Benutzern den Zugriff auf eine bestimmte Bedingung zu verweigernVPCs, verwenden Sie, StringEquals um den Wert der cloudshell:SubnetIds Bedingung zu überprüfen. Im folgenden Beispiel wird Benutzern der Zugriff auf subnet-1 und subnet-2 verweigert:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfSubnets", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "cloudshell:SubnetIds": [ "subnet-1", "subnet-2" ] } } } ] }

Um Benutzern den Zugriff auf eine bestimmte Bedingung zu verweigernVPCs, verwenden Sie, StringEquals um den Wert der cloudshell:SecurityGroupIds Bedingung zu überprüfen. Im folgenden Beispiel wird Benutzern der Zugriff auf sg-1 und sg-2 verweigert:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfSecurityGroups", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "cloudshell:SecurityGroupIds": [ "sg-1", "sg-2" ] } } } ] }

Erlaubt Benutzern, Umgebungen mit bestimmten VPC Konfigurationen zu erstellen

Um Benutzern Zugriff auf bestimmte zu gewährenVPCs, verwenden Sie, StringEquals um den Wert der cloudshell:VpcIds Bedingung zu überprüfen. Das folgende Beispiel ermöglicht Benutzern den Zugriff auf vpc-1 undvpc-2:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:VpcIds": [ "vpc-1", "vpc-2" ] } } } ] }

Um Benutzern Zugriff auf bestimmte zu gewährenVPCs, verwenden Sie, StringEquals um den Wert der cloudshell:SubnetIds Bedingung zu überprüfen. Das folgende Beispiel ermöglicht Benutzern den Zugriff auf subnet-1 undsubnet-2:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificSubnets", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:SubnetIds": [ "subnet-1", "subnet-2" ] } } } ] }

Um Benutzern Zugriff auf bestimmte zu gewährenVPCs, verwenden Sie, StringEquals um den Wert der cloudshell:SecurityGroupIds Bedingung zu überprüfen. Das folgende Beispiel ermöglicht Benutzern den Zugriff auf sg-1 undsg-2:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificSecurityGroup", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:SecurityGroupIds": [ "sg-1", "sg-2" ] } } } ] }