

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

 AWS CloudShell il cloud privato virtuale (VPC) ti consente di creare un CloudShell ambiente nel tuo VPC. Per ogni ambiente VPC, puoi assegnare un VPC, aggiungere una sottorete e associare fino a cinque gruppi di sicurezza. AWS CloudShell eredita la configurazione di rete del VPC e consente di AWS CloudShell utilizzare in modo sicuro all'interno della stessa sottorete delle altre risorse del VPC e di connettersi ad esse. 

Con Amazon VPC, puoi avviare AWS risorse in una rete virtuale logicamente isolata che hai definito. Questa rete virtuale è simile a una comune rete da gestire all’interno del proprio data center, ma con i vantaggi dell’infrastruttura scalabile di AWS. Per ulteriori informazioni sul VPC, consulta [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html).

## Vincoli operativi
<a name="limitations"></a>

AWS CloudShell Gli ambienti VPC presentano i seguenti vincoli: 
+ Puoi creare un massimo di due ambienti VPC per principale IAM.
+ È possibile assegnare un massimo di cinque gruppi di sicurezza per un ambiente VPC.
+ Non è possibile utilizzare le opzioni di CloudShell caricamento e download nel menu Azioni per ambienti VPC. 
**Nota**  
È possibile caricare o scaricare file da ambienti VPC che hanno accesso a Internet ingress/egress tramite altri strumenti CLI.
+ Gli ambienti VPC non supportano lo storage persistente. Lo storage è effimero. I dati e la home directory vengono eliminati al termine di una sessione di ambiente attiva. 
+ Il tuo AWS CloudShell ambiente può connettersi a Internet solo se si trova in una sottorete VPC privata. 
**Nota**  
Per impostazione predefinita, gli indirizzi IP pubblici non vengono assegnati agli ambienti CloudShell VPC. Gli ambienti VPC creati in sottoreti pubbliche con tabelle di routing configurate per instradare tutto il traffico verso Internet Gateway non avranno accesso alla rete Internet pubblica, ma le sottoreti private configurate con Network Address Translation (NAT) avranno accesso alla rete Internet pubblica. Gli ambienti VPC creati in tali sottoreti private avranno accesso alla rete Internet pubblica. 
+ Per fornire un CloudShell ambiente gestito per il tuo account, AWS potresti fornire l'accesso di rete ai seguenti servizi per l'host di elaborazione sottostante:
  + Simple Storage Service (Amazon S3)
  + Endpoint VPC
    + com.amazonaws. <region>messaggi.ssm
    + com.amazonaws. <region>.registri
    + com.amazonaws.it. <region>.kms
    + com.amazonaws.it. <region>.execute-api
    + com.amazonaws. <region>.ecs-telemetria
    + com.amazonaws. <region>.agente ecs
    + com.amazonaws. <region>.ecs
    + com.amazonaws.it. <region>.ecr.dkr
    + com.amazonaws. <region>.ecr.api
    + com.amazonaws. <region>.codecatalyst.pacchetti
    + com.amazonaws. <region>.codecatalyst.git
    + aws.api.global.codecatalyst

  Non puoi limitare l'accesso a questi endpoint modificando la configurazione del VPC.

  CloudShell Il VPC è disponibile in tutte le AWS regioni e GovCloud regioni. Per un elenco delle regioni in cui è disponibile il CloudShell VPC, consulta [AWS Regioni supportate](supported-aws-regions.md) per. AWS CloudShell

# Creazione di un CloudShell ambiente VPC
<a name="creating-vpc-environment"></a>

 Questo argomento illustra i passaggi per creare un ambiente VPC in. CloudShell

**Prerequisiti**

L'amministratore deve fornire le autorizzazioni IAM necessarie per consentirti di creare ambienti VPC. Per ulteriori informazioni sull'abilitazione delle autorizzazioni per creare ambienti CloudShell VPC, consulta. [Autorizzazioni IAM richieste per la creazione e l'utilizzo di ambienti CloudShell VPC](aws-cloudshell-vpc-permissions-1.md) 

**Per creare un ambiente CloudShell VPC**

1. Nella pagina della CloudShell console, scegli l'icona **\$1**, quindi scegli **Crea ambiente VPC** dal menu a discesa. 

1. **Nella pagina **Crea un ambiente VPC**, inserisci un nome per il tuo ambiente VPC nella casella Nome.**

1. Dall'elenco a discesa **Virtual private cloud (VPC)**, scegli un VPC. 

1. Dall'elenco a discesa **Subnet**, scegli una sottorete. 

1. Dall'elenco a discesa Gruppo di **sicurezza**, scegli uno o più gruppi di sicurezza che desideri assegnare al tuo ambiente VPC. 
**Nota**  
Puoi scegliere un massimo di cinque gruppi di sicurezza.

1. Scegli **Crea** per creare il tuo ambiente VPC. 

1. (Facoltativo) Scegliete **Azioni**, quindi scegliete **Visualizza dettagli** per esaminare i dettagli dell'ambiente VPC appena creato. L'indirizzo IP dell'ambiente VPC viene visualizzato nel prompt della riga di comando.

Per informazioni sull'utilizzo degli ambienti VPC, vedere. [Guida introduttiva con AWS CloudShell](getting-started.md)

# Autorizzazioni IAM richieste per la creazione e l'utilizzo di ambienti CloudShell VPC
<a name="aws-cloudshell-vpc-permissions-1"></a>

Per creare e utilizzare ambienti CloudShell VPC, l'amministratore IAM deve abilitare l'accesso alle autorizzazioni Amazon EC2 specifiche per VPC. Questa sezione elenca le autorizzazioni Amazon EC2 necessarie per creare e utilizzare ambienti VPC.

 Per creare ambienti VPC, la policy IAM assegnata al tuo ruolo deve includere le seguenti autorizzazioni Amazon EC2: 
+ `ec2:DescribeVpcs`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeDhcpOptions`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:CreateTags`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`

Ti consigliamo di includere: 
+ **ec2:DeleteNetworkInterface**

**Nota**  
Questa autorizzazione non è obbligatoria, ma è necessaria per CloudShell ripulire la risorsa ENI (ENIs creata per gli ambienti CloudShell VPC contrassegnati con **ManagedByCloudShell** chiave) creata da essa. Se questa autorizzazione non è abilitata, è necessario pulire manualmente la risorsa ENI dopo ogni utilizzo dell'ambiente CloudShell VPC.

## Policy IAM che garantisce CloudShell l'accesso completo, incluso l'accesso al VPC
<a name="cshell-vpc-full-access-example-1"></a>

L'esempio seguente mostra come abilitare le autorizzazioni complete, incluso l'accesso al VPC, per: 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"
				}
			}
		}
	]
}
```

------

## Utilizzo delle chiavi di condizione IAM per ambienti VPC
<a name="cloudshell-vpc-condition-keys-1"></a>

Puoi utilizzare chiavi CloudShell di condizione specifiche per le impostazioni VPC per fornire controlli di autorizzazione aggiuntivi per i tuoi ambienti VPC. Puoi anche specificare le sottoreti e i gruppi di sicurezza che l'ambiente VPC può e non può utilizzare. 

CloudShell supporta le seguenti chiavi di condizione nelle politiche IAM:
+ `CloudShell:VpcIds`— Consenti o nega uno o più VPCs
+ `CloudShell:SubnetIds`— Consentire o negare una o più sottoreti
+ `CloudShell:SecurityGroupIds`— Consentire o negare uno o più gruppi di sicurezza

**Nota**  
Se le autorizzazioni per gli utenti con accesso agli CloudShell ambienti pubblici vengono modificate per aggiungere restrizioni all'`cloudshell:createEnvironment`azione, possono comunque accedere all'ambiente pubblico esistente. **Tuttavia, se desideri modificare una policy IAM con questa restrizione e disabilitare il loro accesso all'ambiente pubblico esistente, devi prima aggiornare la policy IAM con la restrizione, quindi assicurarti che ogni CloudShell utente del tuo account elimini manualmente l'ambiente pubblico esistente utilizzando l'interfaccia utente CloudShell web (**Azioni** → Elimina ambiente). CloudShell **

## Policy di esempio con chiavi di condizione per le impostazioni VPC
<a name="vpc-condition-keys-examples-1"></a>

Negli esempi seguenti viene illustrato come utilizzare le chiavi di condizione per le impostazioni VPC. Dopo aver creato un'istruzione delle policy con le restrizioni desiderate, aggiungere l'istruzione delle policy per l'utente o il ruolo di destinazione.

### Assicurati che gli utenti creino solo ambienti VPC e neghi la creazione di ambienti pubblici
<a name="permission-to-create-VPC-env-only-example-1"></a>

Per garantire che gli utenti possano creare solo ambienti VPC, utilizza l'autorizzazione di negazione come mostrato nell'esempio seguente: 

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

### Negare agli utenti l'accesso a sottoreti o VPCs gruppi di sicurezza specifici
<a name="permission-deny-access-example-1"></a>

Per negare agli utenti l'accesso a informazioni specifiche VPCs, usa `StringEquals` per verificare il valore della condizione. `cloudshell:VpcIds` L'esempio seguente nega agli utenti l'accesso a `vpc-1` e: `vpc-2`

Per negare agli utenti l'accesso a informazioni specifiche VPCs, usa `StringEquals` per verificare il valore della `cloudshell:SubnetIds` condizione. L'esempio seguente nega agli utenti l'accesso a `subnet-1` e: `subnet-2`

Per negare agli utenti l'accesso a informazioni specifiche VPCs, usa `StringEquals` per verificare il valore della `cloudshell:SecurityGroupIds` condizione. L'esempio seguente nega agli utenti l'accesso a `sg-1` e: `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"
          ]
        }
      }
    }
  ]
}
```

------

### Consenti agli utenti di creare ambienti con configurazioni VPC specifiche
<a name="create-env-with-specific-VPC-conf-1"></a>

Per consentire agli utenti l'accesso a informazioni specifiche VPCs, utilizzare `StringEquals` per verificare il valore della `cloudshell:VpcIds` condizione. L'esempio seguente consente agli utenti di accedere a `vpc-1` e`vpc-2`:

Per consentire agli utenti di accedere a VPCs informazioni specifiche, `StringEquals` utilizzare per verificare il valore della `cloudshell:SubnetIds` condizione. L'esempio seguente consente agli utenti di accedere a `subnet-1` e`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"
          ]
        }
      }
    }
  ]
}
```

------

Per consentire agli utenti di accedere a VPCs informazioni specifiche, `StringEquals` utilizzare per verificare il valore della `cloudshell:SecurityGroupIds` condizione. L'esempio seguente consente agli utenti di accedere a `sg-1` e`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"
          ]
        }
      }
    }
  ]
}
```

------