Gestion de AWS CloudShell l'accès et de l'utilisation à l'aide IAM de politiques - AWS CloudShell

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion de AWS CloudShell l'accès et de l'utilisation à l'aide IAM de politiques

Grâce aux ressources de gestion des accès qui peuvent être fournies par AWS Identity and Access Management, les administrateurs peuvent accorder des autorisations aux IAM utilisateurs. Ces utilisateurs peuvent ainsi accéder aux fonctionnalités de l'environnement AWS CloudShell et les utiliser. Les administrateurs peuvent également créer des politiques qui spécifient à un niveau granulaire les actions que ces utilisateurs peuvent effectuer dans l'environnement shell.

Le moyen le plus rapide pour un administrateur d'accorder l'accès aux utilisateurs est d'utiliser une politique AWS gérée. Une politique AWS gérée est une politique autonome créée et administrée par AWS. La politique AWS gérée suivante pour AWS CloudShell peut être attachée aux IAM identités :

  • AWS CloudShellFullAccess: accorde l'autorisation d'utilisation AWS CloudShell avec un accès complet à toutes les fonctionnalités.

La AWS CloudShellFullAccesspolitique utilise le caractère générique (*) pour donner à l'IAMidentité (utilisateur, rôle ou groupe) un accès complet aux fonctionnalités CloudShell et aux fonctionnalités. Pour plus d'informations sur cette politique, consultez le Guide AWS CloudShellFullAccessde l'utilisateur de AWS Managed Policy.

Note

IAMles identités dotées des politiques AWS gérées suivantes peuvent également être lancées CloudShell. Toutefois, ces politiques prévoient des autorisations étendues. Nous vous recommandons donc de n'accorder ces politiques que si elles sont essentielles au rôle IAM professionnel de l'utilisateur.

  • Administrateur : fournit IAM aux utilisateurs un accès complet et leur permet de déléguer des autorisations à chaque service et ressource qu'il contient AWS.

  • Développeur expérimenté : permet aux IAM utilisateurs d'effectuer des tâches de développement d'applications et de créer et configurer des ressources et des services qui prennent en charge le développement d'applications en AWS toute connaissance de cause.

Pour plus d'informations sur l'attachement de politiques gérées, consultez la section Ajout IAM d'autorisations d'identité (console) dans le guide de IAM l'utilisateur.

Gestion des actions autorisées à AWS CloudShell l'aide de politiques personnalisées

Pour gérer les actions qu'un IAM utilisateur peut effectuer CloudShell, créez une politique personnalisée qui utilise la stratégie CloudShellPolicy gérée comme modèle. Vous pouvez également modifier une politique intégrée intégrée à l'IAMidentité appropriée (utilisateur, groupe ou rôle).

Par exemple, vous pouvez autoriser IAM les utilisateurs à accéder CloudShell, mais les empêcher de transmettre les informations d'identification de CloudShell l'environnement utilisées pour se connecter AWS Management Console.

Important

Pour lancer AWS CloudShell depuis le AWS Management Console, un IAM utilisateur doit disposer des autorisations nécessaires pour effectuer les actions suivantes :

  • CreateEnvironment

  • CreateSession

  • GetEnvironmentStatus

  • StartEnvironment

Si l'une de ces actions n'est pas explicitement autorisée par une politique attachée, une erreur d'IAMautorisation est renvoyée lorsque vous essayez de le lancer CloudShell.

AWS CloudShell autorisations
Nom Description de l’autorisation accordée Nécessaire pour le lancement CloudShell ?

cloudshell:CreateEnvironment

Crée un CloudShell environnement, récupère la mise en page au début de la CloudShell session et enregistre la mise en page actuelle depuis l'application Web dans le backend. Cette autorisation n'est attendue * que comme valeur pourResource, comme indiqué dansExemples de IAM politiques pour CloudShell.

Oui

cloudshell:CreateSession

Se connecte à un CloudShell environnement depuis le AWS Management Console.

Oui

cloudshell:GetEnvironmentStatus

Lisez l'état d'un CloudShell environnement.

Oui

cloudshell:DeleteEnvironment

Supprime un CloudShell environnement.

Non

cloudshell:GetFileDownloadUrls

Génère un Amazon S3 pré-signé URLs qui est utilisé pour télécharger des fichiers CloudShell via l'interface CloudShell Web. Ceci n'est pas disponible pour les VPC environnements.

Non

cloudshell:GetFileUploadUrls

Génère un Amazon S3 pré-signé URLs qui est utilisé pour charger des fichiers CloudShell via l'interface CloudShell Web. Ceci n'est pas disponible pour les VPC environnements.

Non

cloudshell:DescribeEnvironments

Décrit les environnements.

Non

cloudshell:PutCredentials

Transfère les informations d'identification utilisées pour se connecter AWS Management Console au CloudShell.

Non

cloudshell:StartEnvironment

Démarre un CloudShell environnement arrêté.

Oui

cloudshell:StopEnvironment

Arrête un CloudShell environnement en cours d'exécution.

Non

Exemples de IAM politiques pour CloudShell

Les exemples suivants montrent comment des politiques peuvent être créées pour restreindre les personnes autorisées à y accéder CloudShell. Les exemples montrent également les actions qui peuvent être effectuées dans l'environnement shell.

La politique suivante impose un déni complet de l'accès à CloudShell ses fonctionnalités.

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

La politique suivante autorise IAM les utilisateurs à y accéder CloudShell mais les empêche de générer des documents pré-signés URLs pour le chargement et le téléchargement de fichiers. Les utilisateurs peuvent toujours transférer des fichiers vers et depuis l'environnement, en utilisant des clients par wget exemple.

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

La politique suivante autorise IAM les utilisateurs à y accéder CloudShell. Toutefois, la politique empêche le transfert vers l' CloudShell environnement des informations d'identification que vous avez utilisées pour vous connecter. AWS Management Console IAMles utilisateurs soumis à cette politique doivent configurer manuellement leurs informations d'identification dans cette politique CloudShell.

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

La politique suivante permet aux IAM utilisateurs de créer AWS CloudShell des environnements.

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

IAMAutorisations requises pour créer et utiliser CloudShell VPC des environnements

Pour créer et utiliser CloudShell VPC des environnements, l'IAMadministrateur doit autoriser l'accès à VPC des EC2 autorisations Amazon spécifiques. Cette section répertorie les EC2 autorisations Amazon nécessaires pour créer et utiliser VPC des environnements.

Pour créer VPC des environnements, la IAM politique attribuée à votre rôle doit inclure les EC2 autorisations Amazon suivantes :

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeDhcpOptions

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateTags

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

Nous vous recommandons également d'inclure :

  • ec2:DeleteNetworkInterface

Note

Cette autorisation n'est pas obligatoire, mais elle est requise CloudShell pour nettoyer la ENI ressource (ENIscréée pour les CloudShell VPC environnements marqués d'une ManagedByCloudShell clé) créée par celle-ci. Si cette autorisation n'est pas activée, vous devez nettoyer manuellement la ENI ressource après chaque utilisation de CloudShell VPC l'environnement.

IAMpolitique accordant un CloudShell accès complet, y compris l'accès à VPC

L'exemple suivant montre comment activer les autorisations complètes, y compris l'accès àVPC, pour 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": "" } } } ] }

Utilisation de clés de IAM condition pour les VPC environnements

Vous pouvez utiliser des clés de condition CloudShell spécifiques pour les VPC paramètres afin de fournir des contrôles d'autorisation supplémentaires pour vos VPC environnements. Vous pouvez également spécifier les sous-réseaux et les groupes de sécurité que l'VPCenvironnement peut ou ne peut pas utiliser.

CloudShell prend en charge les clés de condition suivantes dans IAM les politiques :

  • CloudShell:VpcIds— Autoriser ou refuser un ou plusieurs VPCs

  • CloudShell:SubnetIds— Autoriser ou refuser un ou plusieurs sous-réseaux

  • CloudShell:SecurityGroupIds— Autoriser ou refuser un ou plusieurs groupes de sécurité

Note

Si les autorisations accordées aux utilisateurs ayant accès aux CloudShell environnements publics sont modifiées pour ajouter une restriction à l'cloudshell:createEnvironmentaction, ils peuvent toujours accéder à leur environnement public existant. Toutefois, si vous souhaitez modifier une IAM politique comportant cette restriction et désactiver leur accès à l'environnement public existant, vous devez d'abord mettre à jour la IAM politique avec la restriction, puis vous assurer que chaque CloudShell utilisateur de votre compte supprime manuellement l'environnement public existant à l'aide de l'interface utilisateur CloudShell Web (ActionsSupprimer CloudShell l'environnement).

Exemples de politiques avec clés de condition pour les VPC paramètres

Les exemples suivants montrent comment utiliser les clés de condition pour VPC les paramètres. Après avoir créé une instruction de politique avec les restrictions souhaitées, ajoutez l’instruction de politique pour l’utilisateur ou le rôle cible.

Assurez-vous que les utilisateurs créent uniquement VPC des environnements et interdisent la création d'environnements publics

Pour garantir que les utilisateurs ne peuvent créer que VPC des environnements, utilisez l'autorisation de refus, comme indiqué dans l'exemple suivant :

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

Refuser aux utilisateurs l'accès à VPCs des sous-réseaux ou à des groupes de sécurité spécifiques

Pour refuser aux utilisateurs l'accès à une condition spécifiqueVPCs, utilisez cette option StringEquals pour vérifier la valeur de la cloudshell:VpcIds condition. L'exemple suivant refuse aux utilisateurs l'accès à vpc-1 et vpc-2 :

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

Pour refuser aux utilisateurs l'accès à une condition spécifiqueVPCs, utilisez cette option StringEquals pour vérifier la valeur de la cloudshell:SubnetIds condition. L'exemple suivant refuse aux utilisateurs l'accès à subnet-1 et subnet-2 :

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

Pour refuser aux utilisateurs l'accès à une condition spécifiqueVPCs, utilisez cette option StringEquals pour vérifier la valeur de la cloudshell:SecurityGroupIds condition. L'exemple suivant refuse aux utilisateurs l'accès à sg-1 et sg-2 :

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

Permettre aux utilisateurs de créer des environnements avec des VPC configurations spécifiques

Pour autoriser les utilisateurs à accéder à une condition spécifiqueVPCs, utilisez cette option StringEquals pour vérifier la valeur de la cloudshell:VpcIds condition. L'exemple suivant permet aux utilisateurs d'accéder à vpc-1 et vpc-2 :

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

Pour autoriser les utilisateurs à accéder à une condition spécifiqueVPCs, utilisez cette option StringEquals pour vérifier la valeur de la cloudshell:SubnetIds condition. L'exemple suivant permet aux utilisateurs d'accéder à subnet-1 et subnet-2 :

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

Pour autoriser les utilisateurs à accéder à une condition spécifiqueVPCs, utilisez cette option StringEquals pour vérifier la valeur de la cloudshell:SecurityGroupIds condition. L'exemple suivant permet aux utilisateurs d'accéder à sg-1 et sg-2 :

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

Autorisations d'accès Services AWS

CloudShell utilise les IAM informations d'identification que vous avez utilisées pour vous connecter au AWS Management Console.

Note

Pour utiliser les IAM informations d'identification que vous avez utilisées pour vous connecter au AWS Management Console, vous devez disposer d'une cloudshell:PutCredentials autorisation.

Cette fonctionnalité de pré-authentification CloudShell facilite son utilisation AWS CLI. Cependant, un IAM utilisateur a toujours besoin d'autorisations explicites pour Services AWS les appels effectués depuis la ligne de commande.

Supposons, par exemple, que IAM les utilisateurs soient tenus de créer des compartiments Amazon S3 et d'y charger des fichiers sous forme d'objets. Vous pouvez créer une politique qui autorise explicitement ces actions. La IAM console fournit un éditeur visuel interactif qui guide le processus de création d'un document de politique JSON formaté. Une fois la politique créée, vous pouvez l'associer à IAM l'identité appropriée (utilisateur, groupe ou rôle).

Pour plus d'informations sur l'attachement de politiques gérées, consultez la section Ajout IAM d'autorisations d'identité (console) dans le guide de IAM l'utilisateur.

Autorisations d'accès aux CLI fonctionnalités d'Amazon Q dans CloudShell

Pour utiliser les CLI fonctionnalités d'Amazon Q CloudShell, telles que les suggestions intégrées, le chat et la traduction, assurez-vous de disposer des IAM autorisations requises. Si vous ne parvenez pas à accéder aux CLI fonctionnalités d'Amazon Q dans CloudShell, contactez votre administrateur pour qu'il vous donne les IAM autorisations nécessaires. Pour plus d'informations, consultez les exemples de politiques basées sur l'identité pour Amazon Q Developer dans le manuel Amazon Q Developer User Guide.