

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

 AWS CloudShell Virtual Private Cloud (VPC) memungkinkan Anda untuk menciptakan CloudShell lingkungan di VPC Anda. Untuk setiap lingkungan VPC, Anda dapat menetapkan VPC, menambahkan subnet, dan mengaitkan hingga lima grup keamanan. AWS CloudShell mewarisi konfigurasi jaringan VPC dan memungkinkan Anda untuk AWS CloudShell menggunakan dengan aman dalam subnet yang sama dengan sumber daya lain di VPC dan terhubung ke mereka. 

Dengan Amazon VPC, Anda dapat meluncurkan AWS sumber daya di jaringan virtual yang terisolasi secara logis yang telah Anda tentukan. Jaringan virtual ini sangat mirip dengan jaringan konvensional yang akan Anda operasikan di pusat data Anda sendiri dengan manfaatnya, yaitu menggunakan infrastruktur AWS yang dapat diskalakan. Untuk informasi selengkapnya tentang VPC, lihat [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html).

## Kendala operasi
<a name="limitations"></a>

AWS CloudShell Lingkungan VPC memiliki kendala berikut: 
+ Anda dapat membuat maksimal dua lingkungan VPC per prinsipal IAM.
+ Anda dapat menetapkan maksimal lima grup keamanan untuk lingkungan VPC.
+ Anda tidak dapat menggunakan opsi CloudShell unggah dan unduh di menu Tindakan untuk lingkungan VPC. 
**catatan**  
Dimungkinkan untuk mengunggah atau mengunduh file dari lingkungan VPC yang memiliki akses ke internet ingress/egress melalui alat CLI lainnya.
+ Lingkungan VPC tidak mendukung penyimpanan persisten. Penyimpanan bersifat fana. Data dan direktori home dihapus ketika sesi lingkungan aktif berakhir. 
+  AWS CloudShell Lingkungan Anda hanya dapat terhubung ke internet jika berada di subnet VPC pribadi. 
**catatan**  
Alamat IP publik tidak dialokasikan ke lingkungan CloudShell VPC secara default. Lingkungan VPC yang dibuat dalam subnet publik dengan tabel routing yang dikonfigurasi untuk merutekan semua lalu lintas ke Internet Gateway tidak akan memiliki akses ke internet publik, tetapi subnet pribadi yang dikonfigurasi dengan Network Address Translation (NAT) memiliki akses ke internet publik. Lingkungan VPC yang dibuat dalam subnet pribadi tersebut akan memiliki akses ke internet publik. 
+ Untuk menyediakan CloudShell lingkungan terkelola untuk akun Anda, AWS mungkin menyediakan akses jaringan ke layanan berikut untuk host komputasi yang mendasarinya:
  + Amazon S3
  + Titik akhir VPC
    + com.amazonaws. <region>.ssmmessages
    + com.amazonaws. <region>.log
    + com.amazonaws. <region>.kms
    + com.amazonaws. <region>.eksekusi api
    + com.amazonaws. <region>.ecs-telemetri
    + com.amazonaws. <region>.ecs-agen
    + 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

  Anda tidak dapat membatasi akses ke titik akhir ini dengan memodifikasi konfigurasi VPC Anda.

  CloudShell VPC tersedia di semua AWS Wilayah dan GovCloud Wilayah. Untuk mengetahui daftar Wilayah di mana CloudShell VPC tersedia, lihat [AWS Wilayah yang Didukung](supported-aws-regions.md) untuk. AWS CloudShell

# Menciptakan lingkungan CloudShell VPC
<a name="creating-vpc-environment"></a>

 Topik ini memandu Anda melalui langkah-langkah untuk membuat lingkungan VPC. CloudShell

**Prasyarat**

Administrator Anda harus memberikan izin IAM yang diperlukan agar Anda dapat membuat lingkungan VPC. Untuk informasi selengkapnya tentang mengaktifkan izin untuk membuat lingkungan CloudShell VPC, lihat. [Izin IAM yang diperlukan untuk membuat dan menggunakan lingkungan VPC CloudShell](aws-cloudshell-vpc-permissions-1.md) 

**Untuk membuat lingkungan CloudShell VPC**

1. Di halaman CloudShell konsol, pilih ikon **\$1** lalu pilih **Buat lingkungan VPC** dari menu tarik-turun. 

1. **Pada halaman **Buat lingkungan VPC**, masukkan nama untuk lingkungan VPC Anda di kotak Nama.**

1. Dari daftar dropdown **Virtual Private Cloud (VPC)**, pilih VPC. 

1. Dari daftar dropdown **Subnet**, pilih subnet. 

1. Dari daftar tarik-turun grup **Keamanan**, pilih satu atau beberapa grup keamanan yang ingin Anda tetapkan ke lingkungan VPC Anda. 
**catatan**  
Anda dapat memilih maksimal lima grup keamanan.

1. Pilih **Buat** untuk membuat lingkungan VPC Anda. 

1. (Opsional) Pilih **Tindakan**, lalu pilih **Lihat detail** untuk meninjau detail lingkungan VPC yang baru dibuat. Alamat IP lingkungan VPC Anda ditampilkan di prompt baris perintah.

Untuk informasi tentang penggunaan lingkungan VPC, lihat. [Memulai dengan AWS CloudShell](getting-started.md)

# Izin IAM yang diperlukan untuk membuat dan menggunakan lingkungan VPC CloudShell
<a name="aws-cloudshell-vpc-permissions-1"></a>

Untuk membuat dan menggunakan lingkungan CloudShell VPC, administrator IAM harus mengaktifkan akses ke izin Amazon EC2 khusus VPC. Bagian ini mencantumkan izin Amazon EC2 yang diperlukan untuk membuat dan menggunakan lingkungan VPC.

 Untuk membuat lingkungan VPC, kebijakan IAM yang ditetapkan ke peran Anda harus menyertakan izin Amazon EC2 berikut: 
+ `ec2:DescribeVpcs`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeDhcpOptions`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:CreateTags`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`

Kami merekomendasikan untuk memasukkan: 
+ **ec2:DeleteNetworkInterface**

**catatan**  
Izin ini tidak wajib, tetapi ini diperlukan CloudShell untuk membersihkan sumber daya ENI (ENIs dibuat untuk lingkungan CloudShell VPC ditandai dengan **ManagedByCloudShell** kunci) yang dibuat olehnya. Jika izin ini tidak diaktifkan, Anda harus membersihkan sumber daya ENI secara manual setelah setiap penggunaan lingkungan CloudShell VPC.

## Kebijakan IAM memberikan CloudShell akses penuh termasuk akses ke VPC
<a name="cshell-vpc-full-access-example-1"></a>

Contoh berikut menampilkan cara mengaktifkan izin penuh, termasuk akses ke VPC, untuk: 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"
				}
			}
		}
	]
}
```

------

## Menggunakan kunci kondisi IAM untuk lingkungan VPC
<a name="cloudshell-vpc-condition-keys-1"></a>

Anda dapat menggunakan tombol kondisi CloudShell khusus untuk pengaturan VPC untuk memberikan kontrol izin tambahan untuk lingkungan VPC Anda. Anda juga dapat menentukan subnet dan grup keamanan yang dapat dan tidak dapat digunakan oleh lingkungan VPC. 

CloudShell mendukung kunci kondisi berikut dalam kebijakan IAM:
+ `CloudShell:VpcIds`— Izinkan atau tolak satu atau lebih VPCs
+ `CloudShell:SubnetIds`— Izinkan atau tolak satu atau lebih subnet
+ `CloudShell:SecurityGroupIds`— Izinkan atau tolak satu atau lebih grup keamanan

**catatan**  
Jika izin untuk pengguna dengan akses ke CloudShell lingkungan publik dimodifikasi untuk menambahkan pembatasan pada `cloudshell:createEnvironment` tindakan, mereka masih dapat mengakses lingkungan publik yang ada. **Namun, jika Anda ingin mengubah kebijakan IAM dengan pembatasan ini dan menonaktifkan akses mereka ke lingkungan publik yang ada, Anda harus terlebih dahulu memperbarui kebijakan IAM dengan pembatasan, dan kemudian memastikan bahwa setiap CloudShell pengguna di akun Anda secara manual menghapus lingkungan publik yang ada menggunakan antarmuka pengguna CloudShell web (**Actions** → Delete environment). CloudShell **

## Contoh kebijakan dengan kunci syarat untuk pengaturan VPC
<a name="vpc-condition-keys-examples-1"></a>

Contoh-contoh berikut ini menunjukkan cara menggunakan kunci syarat untuk pengaturan VPC. Setelah Anda membuat pernyataan kebijakan dengan batasan yang diinginkan, tambahkan pernyataan kebijakan untuk pengguna atau peran target.

### Pastikan bahwa pengguna hanya membuat lingkungan VPC dan menolak penciptaan lingkungan publik
<a name="permission-to-create-VPC-env-only-example-1"></a>

Untuk memastikan bahwa pengguna hanya dapat membuat lingkungan VPC, gunakan izin tolak seperti yang ditunjukkan pada contoh berikut: 

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

### Menolak akses pengguna ke grup tertentu VPCs, subnet, atau keamanan
<a name="permission-deny-access-example-1"></a>

Untuk menolak akses pengguna ke spesifik VPCs, gunakan `StringEquals` untuk memeriksa nilai `cloudshell:VpcIds` kondisi. Contoh berikut menolak akses pengguna ke `vpc-1` dan`vpc-2`:

Untuk menolak akses pengguna ke spesifik VPCs, gunakan `StringEquals` untuk memeriksa nilai `cloudshell:SubnetIds` kondisi. Contoh berikut menolak akses pengguna ke `subnet-1` dan`subnet-2`:

Untuk menolak akses pengguna ke spesifik VPCs, gunakan `StringEquals` untuk memeriksa nilai `cloudshell:SecurityGroupIds` kondisi. Contoh berikut menolak akses pengguna ke `sg-1` dan`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"
          ]
        }
      }
    }
  ]
}
```

------

### Izinkan pengguna membuat lingkungan dengan konfigurasi VPC tertentu
<a name="create-env-with-specific-VPC-conf-1"></a>

Untuk memungkinkan pengguna mengakses ke spesifik VPCs, gunakan `StringEquals` untuk memeriksa nilai `cloudshell:VpcIds` kondisi. Contoh berikut memungkinkan pengguna mengakses `vpc-1` dan`vpc-2`:

Untuk memungkinkan pengguna mengakses ke spesifik VPCs, gunakan `StringEquals` untuk memeriksa nilai `cloudshell:SubnetIds` kondisi. Contoh berikut memungkinkan pengguna mengakses `subnet-1` dan`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"
          ]
        }
      }
    }
  ]
}
```

------

Untuk memungkinkan pengguna mengakses ke spesifik VPCs, gunakan `StringEquals` untuk memeriksa nilai `cloudshell:SecurityGroupIds` kondisi. Contoh berikut memungkinkan pengguna mengakses `sg-1` dan`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"
          ]
        }
      }
    }
  ]
}
```

------