AWS CloudShell Zugriff und Nutzung mithilfe von Richtlinien verwalten IAM - 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.

AWS CloudShell Zugriff und Nutzung mithilfe von Richtlinien verwalten IAM

Mit den Ressourcen für die Zugriffsverwaltung, die von bereitgestellt werden können AWS Identity and Access Management, können Administratoren IAM Benutzern Berechtigungen gewähren. Auf diese Weise können diese Benutzer auf die Funktionen der Umgebung zugreifen AWS CloudShell und diese nutzen. Administratoren können auch Richtlinien erstellen, die detailliert festlegen, welche Aktionen diese Benutzer in der Shell-Umgebung ausführen können.

Am schnellsten kann ein Administrator Benutzern Zugriff gewähren, indem er eine AWS verwaltete Richtlinie verwendet. Eine AWSverwaltete Richtlinie ist eine eigenständige Richtlinie, die von erstellt und verwaltet AWS wird. Die folgende AWS verwaltete Richtlinie für AWS CloudShell kann an IAM Identitäten angehängt werden:

  • AWS CloudShellFullAccess: Erteilt die Erlaubnis zur Nutzung AWS CloudShell mit vollem Zugriff auf alle Funktionen.

Die AWS CloudShellFullAccessRichtlinie verwendet das Platzhalterzeichen (*), um der IAM Identität (Benutzer, Rolle oder Gruppe) vollen Zugriff auf Funktionen CloudShell zu gewähren. Weitere Informationen zu dieser Richtlinie finden Sie AWS CloudShellFullAccessim AWS Managed Policy User Guide.

Anmerkung

IAMIdentitäten mit den folgenden AWS verwalteten Richtlinien können ebenfalls gestartet CloudShell werden. Diese Richtlinien bieten jedoch umfangreiche Berechtigungen. Wir empfehlen Ihnen daher, diese Richtlinien nur zu gewähren, wenn sie für die berufliche Rolle eines IAM Benutzers unerlässlich sind.

  • Administrator: Bietet IAM Benutzern vollen Zugriff und ermöglicht es ihnen, Berechtigungen für jeden Dienst und jede Ressource zu delegieren. AWS

  • Poweruser für Entwickler: Ermöglicht IAM Benutzern die Ausführung von Aufgaben zur Anwendungsentwicklung sowie die Erstellung und Konfiguration von Ressourcen und Diensten, die die AWS bewusste Anwendungsentwicklung unterstützen.

Weitere Informationen zum Anhängen verwalteter Richtlinien finden Sie unter Hinzufügen von IAM Identitätsberechtigungen (Konsole) im IAMBenutzerhandbuch.

Verwaltung zulässiger Aktionen AWS CloudShell mithilfe benutzerdefinierter Richtlinien

Um die Aktionen zu verwalten, die ein IAM Benutzer ausführen kann CloudShell, erstellen Sie eine benutzerdefinierte Richtlinie, die die CloudShellPolicy verwaltete Richtlinie als Vorlage verwendet. Sie können auch eine Inline-Richtlinie bearbeiten, die in die entsprechende IAM Identität (Benutzer, Gruppe oder Rolle) eingebettet ist.

Sie können IAM Benutzern beispielsweise Zugriff gewähren CloudShell, sie aber daran hindern, die Anmeldeinformationen für die CloudShell Umgebung weiterzuleiten, die für die Anmeldung verwendet werden AWS Management Console.

Wichtig

Um AWS CloudShell von der aus zu starten AWS Management Console, benötigt ein IAM Benutzer Berechtigungen für die folgenden Aktionen:

  • CreateEnvironment

  • CreateSession

  • GetEnvironmentStatus

  • StartEnvironment

Wenn eine dieser Aktionen durch eine angehängte Richtlinie nicht ausdrücklich zugelassen ist, wird beim Versuch, sie zu starten, ein IAM Berechtigungsfehler zurückgegeben CloudShell.

AWS CloudShell Berechtigungen
Name Beschreibung der gewährten Genehmigung Zum Starten erforderlich CloudShell?

cloudshell:CreateEnvironment

Erstellt eine CloudShell Umgebung, ruft das Layout zu Beginn der CloudShell Sitzung ab und speichert das aktuelle Layout aus der Webanwendung im Backend. Diese Berechtigung erwartet * nur den Wert für, Resource wie unter beschrieben. Beispiele für IAM Richtlinien für CloudShell

Ja

cloudshell:CreateSession

Stellt eine Verbindung zu einer CloudShell Umgebung über den her AWS Management Console.

Ja

cloudshell:GetEnvironmentStatus

Lesen Sie den Status einer CloudShell Umgebung.

Ja

cloudshell:DeleteEnvironment

Löscht eine CloudShell Umgebung.

Nein

cloudshell:GetFileDownloadUrls

Generiert vorsignierte Amazon S3URLs, die zum Herunterladen von Dateien über CloudShell die CloudShell Weboberfläche verwendet werden. Dies ist für VPC Umgebungen nicht verfügbar.

Nein

cloudshell:GetFileUploadUrls

Generiert vorsignierte Amazon S3URLs, die zum Hochladen von Dateien über CloudShell die CloudShell Weboberfläche verwendet werden. Dies ist für VPC Umgebungen nicht verfügbar.

Nein

cloudshell:DescribeEnvironments

Beschreibt die Umgebungen.

Nein

cloudshell:PutCredentials

Leitet die für die Anmeldung verwendeten Anmeldeinformationen AWS Management Console an CloudShell weiter.

Nein

cloudshell:StartEnvironment

Startet eine CloudShell Umgebung, die gestoppt wurde.

Ja

cloudshell:StopEnvironment

Stoppt eine laufende CloudShell Umgebung.

Nein

Beispiele für IAM Richtlinien für CloudShell

Die folgenden Beispiele zeigen, wie Richtlinien erstellt werden können, um einzuschränken, wer darauf zugreifen kann CloudShell. Die Beispiele zeigen auch die Aktionen, die in der Shell-Umgebung ausgeführt werden können.

Die folgende Richtlinie erzwingt eine vollständige Verweigerung des Zugriffs auf CloudShell und die zugehörigen Funktionen.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "DenyCloudShell", "Effect": "Deny", "Action": [ "cloudshell:*" ], "Resource": "*" }] }

Die folgende Richtlinie ermöglicht IAM Benutzern den Zugriff, verhindert CloudShell jedoch, dass sie vorsignierte Dateien URLs für das Hoch- und Herunterladen generieren. Benutzer können weiterhin Dateien in die und aus der Umgebung übertragen, indem sie wget beispielsweise Clients verwenden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUsingCloudshell", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "DenyUploadDownload", "Effect": "Deny", "Action": [ "cloudshell:GetFileDownloadUrls", "cloudshell:GetFileUploadUrls" ], "Resource": "*" }] }

Die folgende Richtlinie ermöglicht IAM Benutzern den Zugriff CloudShell. Die Richtlinie verhindert jedoch, dass die Anmeldeinformationen, mit denen Sie sich angemeldet haben, AWS Management Console an die CloudShell Umgebung weitergeleitet werden. IAMBenutzer mit dieser Richtlinie müssen ihre Anmeldeinformationen darin manuell konfigurieren CloudShell.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUsingCloudshell", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "DenyCredentialForwarding", "Effect": "Deny", "Action": [ "cloudshell:PutCredentials" ], "Resource": "*" }] }

Die folgende Richtlinie ermöglicht es IAM Benutzern, AWS CloudShell Umgebungen zu erstellen.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "CloudShellUser", "Effect": "Allow", "Action": [ "cloudshell:CreateEnvironment", "cloudshell:CreateSession", "cloudshell:GetEnvironmentStatus", "cloudshell:StartEnvironment" ], "Resource": "*" }] }

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 (ENIserstellt für CloudShell VPC Umgebungen, 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 CloudShellUmgebung 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": { "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": "EnforceOutOfVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "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: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": { "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" ] } } } ] }

Berechtigungen für den Zugriff AWS-Services

CloudShell verwendet die IAM Anmeldeinformationen, mit denen Sie sich bei der angemeldet haben AWS Management Console.

Anmerkung

Um die IAM Anmeldeinformationen zu verwenden, mit denen Sie sich bei der angemeldet haben AWS Management Console, benötigen Sie die cloudshell:PutCredentials entsprechende Genehmigung.

Diese Vorauthentifizierungsfunktion von CloudShell erleichtert die Verwendung AWS CLI. Ein IAM Benutzer benötigt jedoch weiterhin explizite Berechtigungen für die AWS-Services , die über die Befehlszeile aufgerufen werden.

Nehmen wir zum Beispiel an, dass IAM Benutzer Amazon S3 S3-Buckets erstellen und Dateien als Objekte in sie hochladen müssen. Sie können eine Richtlinie erstellen, die diese Aktionen ausdrücklich zulässt. Die IAM Konsole bietet einen interaktiven visuellen Editor, der Sie durch den Prozess der Erstellung eines JSON -formatierten Richtliniendokuments führt. Nachdem die Richtlinie erstellt wurde, können Sie sie der entsprechenden IAM Identität (Benutzer, Gruppe oder Rolle) zuordnen.

Weitere Informationen zum Anhängen verwalteter Richtlinien finden Sie unter Hinzufügen von IAM Identitätsberechtigungen (Konsole) im IAMBenutzerhandbuch.

Berechtigungen für den Zugriff auf Amazon CLI Q-Funktionen in CloudShell

Um Amazon CLI Q-Funktionen wie Inline-Vorschläge CloudShell, Chat und Übersetzung nutzen zu können, stellen Sie sicher, dass Sie über die erforderlichen IAM Berechtigungen verfügen. Wenn Sie in nicht auf die CLI Funktionen von Amazon Q zugreifen können CloudShell, wenden Sie sich an Ihren Administrator, um Ihnen die erforderlichen IAM Berechtigungen zu erteilen. Weitere Informationen finden Sie unter Beispiele für identitätsbasierte Richtlinien für Amazon Q Developer im Amazon Q Developer User Guide.