

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.

# Utilisation AWS CloudShell dans Amazon VPC
<a name="using-cshell-in-vpc"></a>

 AWS CloudShell Le cloud privé virtuel (VPC) vous permet de créer un CloudShell environnement dans votre VPC. Pour chaque environnement VPC, vous pouvez attribuer un VPC, ajouter un sous-réseau et associer jusqu'à cinq groupes de sécurité. AWS CloudShell hérite de la configuration réseau du VPC et vous permet de l' AWS CloudShell utiliser en toute sécurité au sein du même sous-réseau que les autres ressources du VPC et de vous y connecter. 

Avec Amazon VPC, vous pouvez lancer AWS des ressources dans un réseau virtuel logiquement isolé que vous avez défini. Ce réseau virtuel ressemble beaucoup à un réseau traditionnel que vous pourriez exécuter dans votre propre data center, et présente l'avantage d'utiliser l'infrastructure évolutive d' AWS. Pour plus d'informations sur le VPC, consultez [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html).

## Contraintes d'exploitation
<a name="limitations"></a>

AWS CloudShell Les environnements VPC présentent les contraintes suivantes : 
+ Vous pouvez créer un maximum de deux environnements VPC par principal IAM.
+ Vous pouvez attribuer un maximum de cinq groupes de sécurité à un environnement VPC.
+ Vous ne pouvez pas utiliser les options de CloudShell chargement et de téléchargement du menu Actions pour les environnements VPC. 
**Note**  
Il est possible de charger ou de télécharger des fichiers à partir d'environnements VPC ayant accès à Internet ingress/egress via d'autres outils CLI.
+ Les environnements VPC ne prennent pas en charge le stockage persistant. Le stockage est éphémère. Les données et le répertoire de base sont supprimés à la fin d'une session d'environnement actif. 
+ Votre AWS CloudShell environnement ne peut se connecter à Internet que s'il se trouve dans un sous-réseau VPC privé. 
**Note**  
Les adresses IP publiques ne sont pas allouées aux environnements CloudShell VPC par défaut. Les environnements VPC créés dans des sous-réseaux publics avec des tables de routage configurées pour acheminer tout le trafic vers Internet Gateway n'auront pas accès à l'Internet public, mais les sous-réseaux privés configurés avec la traduction d'adresses réseau (NAT) ont accès à l'Internet public. Les environnements VPC créés dans de tels sous-réseaux privés auront accès à l'Internet public. 
+ Pour fournir un CloudShell environnement géré à votre compte, vous AWS pouvez fournir un accès réseau aux services suivants pour l'hôte de calcul sous-jacent :
  + Amazon S3
  + Points de terminaison d’un VPC
    + com.amazonaws. <region>Messages .ssm
    + com.amazonaws. <region>.journaux
    + com.amazonaws. <region>.km
    + com.amazonaws. <region>.execute-api
    + com.amazonaws. <region>.ecs-télémétrie
    + com.amazonaws. <region>.ecs-agent
    + com.amazonaws. <region>.ecs
    + com.amazonaws. <region>.ecr .dkr
    + com.amazonaws. <region>.ecr.api
    + com.amazonaws. <region>.codecatalyst.packages
    + com.amazonaws. <region>.codecatalyst.git
    + aws.api.global.codecatalyst

  Vous ne pouvez pas restreindre l'accès à ces points de terminaison en modifiant la configuration de votre VPC.

  CloudShell Le VPC est disponible dans toutes les AWS régions et GovCloud régions. Pour obtenir la liste des régions dans lesquelles le CloudShell VPC est disponible, consultez la section [AWS Régions prises en charge](supported-aws-regions.md) pour. AWS CloudShell

# Création d'un CloudShell environnement VPC
<a name="creating-vpc-environment"></a>

 Cette rubrique explique les étapes de création d'un environnement VPC dans. CloudShell

**Conditions préalables**

Votre administrateur doit fournir les autorisations IAM nécessaires pour que vous puissiez créer des environnements VPC. Pour plus d'informations sur l'activation des autorisations permettant de créer des environnements CloudShell VPC, consultez. [Autorisations IAM requises pour créer et utiliser des environnements CloudShell VPC](aws-cloudshell-vpc-permissions-1.md) 

**Pour créer un environnement CloudShell VPC**

1. Sur la page de la CloudShell console, choisissez l'icône **\$1**, puis choisissez **Créer un environnement VPC dans** le menu déroulant. 

1. **Sur la page **Créer un environnement VPC**, entrez le nom de votre environnement VPC dans le champ Nom.**

1. Dans la liste déroulante **Virtual Private Cloud (VPC)**, sélectionnez un VPC. 

1. Dans la liste déroulante **Sous-réseau**, sélectionnez un sous-réseau. 

1. Dans la liste déroulante des groupes de **sécurité**, choisissez un ou plusieurs groupes de sécurité que vous souhaitez attribuer à votre environnement VPC. 
**Note**  
Vous pouvez choisir un maximum de cinq groupes de sécurité.

1. Choisissez **Create** pour créer votre environnement VPC. 

1. (Facultatif) Choisissez **Actions**, puis choisissez **Afficher les détails** pour consulter les détails de l'environnement VPC nouvellement créé. L'adresse IP de votre environnement VPC s'affiche dans l'invite de ligne de commande.

Pour plus d'informations sur l'utilisation des environnements VPC, consultez. [Commencer avec AWS CloudShell](getting-started.md)

# Autorisations IAM requises pour créer et utiliser des environnements CloudShell VPC
<a name="aws-cloudshell-vpc-permissions-1"></a>

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

 Pour créer des environnements VPC, la politique IAM attribuée à votre rôle doit inclure les autorisations Amazon EC2 suivantes : 
+ `ec2:DescribeVpcs`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeDhcpOptions`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:CreateTags`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`

Nous vous recommandons d'inclure : 
+ **ec2:DeleteNetworkInterface**

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

## Politique IAM accordant un CloudShell accès complet, y compris l'accès au VPC
<a name="cshell-vpc-full-access-example-1"></a>

L'exemple suivant montre comment activer les autorisations complètes, y compris l'accès au VPC, pour : CloudShell

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "AllowCloudShellOperations",
			"Effect": "Allow",
			"Action": [
				"cloudshell:*"
			],
			"Resource": "*"
		},
		{
			"Sid": "AllowDescribeVPC",
			"Effect": "Allow",
			"Action": [
				"ec2:DescribeSubnets",
				"ec2:DescribeSecurityGroups",
				"ec2:DescribeVpcs"
			],
			"Resource": "*"
		},
		{
			"Sid": "AllowInspectVPCConfigurationViaCloudShell",
			"Effect": "Allow",
			"Action": [
				"ec2:DescribeDhcpOptions",
				"ec2:DescribeNetworkInterfaces"
			],
			"Resource": "*",
			"Condition": {
				"ForAnyValue:StringEquals": {
					"aws:CalledVia": "cloudshell.amazonaws.com"
				}
			}
		},
		{
			"Sid": "AllowCreateTagWithCloudShellKeyViaCloudShell",
			"Effect": "Allow",
			"Action": [
				"ec2:CreateTags"
			],
			"Resource": "arn:aws:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"ec2:CreateAction": "CreateNetworkInterface"
				},
				"ForAnyValue:StringEquals": {
					"aws:TagKeys": "ManagedByCloudShell",
					"aws:CalledVia": "cloudshell.amazonaws.com"
				}
			}
		},
		{
			"Sid": "AllowCreateNetworkInterfaceWithSubnetsAndSGViaCloudShell",
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterface"
			],
			"Resource": [
				"arn:aws:ec2:*:*:subnet/*",
				"arn:aws:ec2:*:*:security-group/*"
			],
			"Condition": {
				"ForAnyValue:StringEquals": {
					"aws:CalledVia": "cloudshell.amazonaws.com"
				}
			}
		},
		{
			"Sid": "AllowCreateNetworkInterfaceWithCloudShellTagViaCloudShell",
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterface"
			],
			"Resource": "arn:aws:ec2:*:*:network-interface/*",
			"Condition": {
				"ForAnyValue:StringEquals": {
					"aws:TagKeys": "ManagedByCloudShell",
					"aws:CalledVia": "cloudshell.amazonaws.com"
				}
			}
		},
		{
			"Sid": "AllowCreateNetworkInterfacePermissionWithCloudShellTagViaCloudShell",
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterfacePermission"
			],
			"Resource": "arn:aws:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"aws:ResourceTag/ManagedByCloudShell": ""
				},
				"ForAnyValue:StringEquals": {
					"aws:CalledVia": "cloudshell.amazonaws.com"
				}
			}
		},
		{
			"Sid": "AllowDeleteNetworkInterfaceWithCloudShellTagViaCloudShell",
			"Effect": "Allow",
			"Action": [
				"ec2:DeleteNetworkInterface"
			],
			"Resource": "arn:aws:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"aws:ResourceTag/ManagedByCloudShell": ""
				},
				"ForAnyValue:StringEquals": {
					"aws:CalledVia": "cloudshell.amazonaws.com"
				}
			}
		}
	]
}
```

------

## Utilisation de clés de condition IAM pour les environnements VPC
<a name="cloudshell-vpc-condition-keys-1"></a>

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

CloudShell prend en charge les clés de condition suivantes dans les politiques IAM :
+ `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:createEnvironment`action, ils peuvent toujours accéder à leur environnement public existant. Toutefois, si vous souhaitez modifier une politique IAM avec cette restriction et désactiver son accès à l'environnement public existant, vous devez d'abord mettre à jour la politique IAM avec cette 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 (**Actions** → **Supprimer CloudShell ** l'environnement).

## Exemple de stratégies avec des clés de condition pour les paramètres du VPC
<a name="vpc-condition-keys-examples-1"></a>

Les exemples suivants montrent comment utiliser les clés de condition pour les paramètres du VPC. 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 des environnements VPC et interdisent la création d'environnements publics
<a name="permission-to-create-VPC-env-only-example-1"></a>

Pour garantir que les utilisateurs ne peuvent créer que des environnements VPC, 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
<a name="permission-deny-access-example-1"></a>

Pour refuser aux utilisateurs l'accès à une condition spécifique VPCs, 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` :

Pour refuser aux utilisateurs l'accès à une condition spécifique VPCs, 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` :

Pour refuser aux utilisateurs l'accès à une condition spécifique VPCs, 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` :

------
#### [ JSON ]

****  

```
{
  "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 configurations VPC spécifiques
<a name="create-env-with-specific-VPC-conf-1"></a>

Pour autoriser les utilisateurs à accéder à une condition spécifique VPCs, 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` :

Pour autoriser les utilisateurs à accéder à une condition spécifique VPCs, 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` :

------
#### [ JSON ]

****  

```
{
  "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écifique VPCs, 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` :

------
#### [ JSON ]

****  

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

------