Berikan izin IAM untuk menggunakan EC2 Instance Connect Endpoint - Amazon Elastic Compute Cloud

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

Berikan izin IAM untuk menggunakan EC2 Instance Connect Endpoint

Untuk membuat atau menggunakan Titik Akhir Connect instans EC2, Anda harus membuat kebijakan IAM yang memberikan izin kepada pengguna untuk hal berikut:

  • Buat, deskripsikan, dan hapus EC2 Instance Connect Endpoint

  • Gunakan tindakan ec2-instance-connect:OpenTunnel untuk menggunakan EC2 Instans Connect Endpoint untuk terhubung ke instans

Untuk informasi tentang pembuatan kebijakan IAM, lihat Membuat kebijakan IAM di Panduan Pengguna IAM.

Izinkan pengguna untuk membuat, mendeskripsikan, dan menghapus EC2 Instance Connect Endpoint

Untuk membuat Titik Akhir Connect instans EC2, pengguna memerlukan izin untuk tindakan berikut:

  • ec2:CreateInstanceConnectEndpoint

  • ec2:CreateNetworkInterface

  • ec2:CreateTags

  • iam:CreateServiceLinkedRole

Untuk mendeskripsikan dan menghapus EC2 Instance Connect Endpoint, pengguna memerlukan izin untuk tindakan berikut:

  • ec2:DescribeInstanceConnectEndpoints

  • ec2:DeleteInstanceConnectEndpoint

Anda dapat membuat kebijakan yang memberikan izin untuk membuat, mendeskripsikan, dan menghapus EC2 Instance Connect Endpoint di semua subnet. Atau, Anda dapat membatasi tindakan untuk subnet tertentu hanya dengan menentukan ARN subnet sebagai Resource yang diizinkan atau dengan menggunakan kunci syarat ec2:SubnetID. Anda juga dapat menggunakan kunci syarat aws:ResourceTag untuk secara eksplisit mengizinkan atau menolak pembuatan titik akhir dengan tanda tertentu. Untuk informasi selengkapnya, lihat Kebijakan dan izin di IAM pada Panduan Pengguna IAM.

Contoh kebijakan IAM

Dalam contoh kebijakan IAM berikut, bagian Resource memberikan izin untuk membuat dan menghapus titik akhir di semua subnet, yang ditentukan oleh tanda bintang (*). Tindakan API ec2:Describe* tidak mendukung izin tingkat sumber daya. Oleh karena itu, wildcard * dibutuhkan dalam Resource.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "GrantAllActionsInAllSubnets", "Action": [ "ec2:CreateInstanceConnectEndpoint", "ec2:DeleteInstanceConnectEndpoint", "ec2:CreateNetworkInterface", "ec2:CreateTags", "iam:CreateServiceLinkedRole" ], "Effect": "Allow", "Resource": "arn:aws:ec2:region:account-id:subnet/*" }, { "Action": [ "ec2:CreateNetworkInterface" ], "Effect": "Allow", "Resource": "arn:aws:ec2:::security-group/*" }, { "Sid": "DescribeInstanceConnectEndpoints", "Action": [ "ec2:DescribeInstanceConnectEndpoints" ], "Effect": "Allow", "Resource": "*" } ] }

Izinkan pengguna untuk menggunakan EC2 Instans Connect Endpoint untuk terhubung ke instans

Tindakan ec2-instance-connect:OpenTunnel tersebut memberikan izin untuk membuat koneksi TCP ke instans untuk terhubung melalui EC2 Instance Connect Endpoint. Anda dapat menentukan EC2 Instance Connect Endpoint untuk digunakan. Atau, Resource dengan tanda bintang (*) memungkinkan pengguna untuk menggunakan semua EC2 Instance Connect Endpoint yang tersedia. Anda juga dapat membatasi akses ke instans berdasarkan ada atau tidak adanya tanda sumber daya sebagai kunci syarat.

Kondisi
  • ec2-instance-connect:remotePort – Menentukan port pada instans yang dapat digunakan untuk membuat koneksi TCP. Ketika kunci syarat ini digunakan, percobaan untuk terhubung ke instans pada port lain selain port yang ditentukan dalam kebijakan akan mengakibatkan kegagalan.

  • ec2-instance-connect:privateIpAddress – Menentukan alamat IP privat tujuan yang terkait dengan instans yang Anda ingin gunakan untuk membuat koneksi TCP. Anda dapat menentukan satu alamat IP, seperti 10.0.0.1/32, atau rentang IP melalui CIDR, seperti 10.0.1.0/28. Ketika kunci syarat ini digunakan, percobaan untuk terhubung ke sebuah instans dengan alamat IP privat yang berbeda atau di luar rentang CIDR akan mengakibatkan kegagalan.

  • ec2-instance-connect:maxTunnelDuration – Menentukan durasi maksimum untuk koneksi TCP yang dibangun. Satuannya adalah detik dan durasinya berkisar dari minimal 1 detik hingga maksimum 3.600 detik (1 jam). Jika kondisi tidak ditentukan, durasi default diatur ke 3.600 detik (1 jam). Mencoba terhubung ke instans lebih lama dari durasi yang ditentukan dalam kebijakan IAM atau lebih lama dari maksimum default akan menghasilkan kegagalan. Koneksi terputus setelah durasi yang ditentukan.

    Jika maxTunnelDuration ditentukan dalam kebijakan IAM dan nilai yang ditentukan kurang dari 3.600 detik (default), maka Anda harus menentukan --max-tunnel-duration dalam perintah saat menghubungkan ke sebuah instans. Untuk informasi selengkapnya tentang terhubung ke instans Anda, lihat Hubungkan menggunakan EC2 Instance Connect Endpoint ke instans Windows.

Pengguna juga dapat diberi akses untuk membuat koneksi ke instans berdasarkan keberadaan tanda sumber daya pada EC2 Instance Connect Endpoint. Untuk informasi selengkapnya, lihat Kebijakan dan izin di IAM pada Panduan Pengguna IAM.

Tindakan ec2-instance-connect:SendSSHPublicKey memberikan izin untuk mendorong kunci publik ke sebuah instans. Kondisi ec2:osuser menentukan nama pengguna OS (sistem operasi) yang dapat mendorong kunci publik ke sebuah instans. Gunakan nama pengguna default AMI yang Anda gunakan untuk meluncurkan instans.

Contoh kebijakan IAM

Contoh kebijakan IAM berikut memungkinkan pengguna utama IAM untuk terhubung ke instans hanya menggunakan EC2 Instance Connect Endpoint yang ditentukan, yang diidentifikasi oleh ID titik akhir yang ditentukan eice-123456789abcdef. Koneksi berhasil dibuat hanya jika semua kondisi terpenuhi, misalnya, jika koneksi SSH dibuat pada port 22 instans, jika alamat IP privat instans terletak dalam rentang 10.0.1.0/31 (antara 10.0.1.0 dan 10.0.1.1), dan maxTunnelDuration kurang dari atau sama dengan 3600 detik. Koneksi terputus setelah 3600 detik (1 jam).

Tindakan API ec2:Describe* tidak mendukung izin tingkat sumber daya. Oleh karena itu, wildcard * dibutuhkan dalam Resource.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "EC2InstanceConnect", "Action": "ec2-instance-connect:OpenTunnel", "Effect": "Allow", "Resource": "arn:aws:ec2:region:account-id:instance-connect-endpoint/eice-123456789abcdef", "Condition": { "NumericEquals": { "ec2-instance-connect:remotePort": "22" }, "IpAddress": { "ec2-instance-connect:privateIpAddress": "10.0.1.0/31" }, "NumericLessThanEquals": { "ec2-instance-connect:maxTunnelDuration": "3600" } } }, { "Sid": "SSHPublicKey", "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": "*", "Condition": { "StringEquals": { "ec2:osuser": "ami-username" } } }, { "Sid": "Describe", "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceConnectEndpoints" ], "Effect": "Allow", "Resource": "*" } ] }

Izinkan pengguna untuk terhubung hanya dari rentang alamat IP sumber tertentu

Contoh kebijakan IAM berikut memungkinkan pengguna utama IAM untuk terhubung ke instans dengan syarat instans tersebut terhubung dari alamat IP dalam rentang alamat IP yang ditentukan dalam kebijakan. Jika pengguna utama IAM memanggil OpenTunnel dari alamat IP yang tidak berada dalam 192.0.2.0/24 (contoh rentang alamat IP dalam kebijakan ini), responsnya adalah Access Denied. Untuk informasi selengkapnya, lihat aws:SourceIp dalam Panduan Pengguna IAM.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2-instance-connect:OpenTunnel", "Resource": "arn:aws:ec2:region:account-id:instance-connect-endpoint/eice-123456789abcdef", "Condition": { "IpAddress": { "aws:SourceIp": "192.0.2.0/24" }, "NumericEquals": { "ec2-instance-connect:remotePort": "22" } } }, { "Sid": "SSHPublicKey", "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": "*", "Condition": { "StringEquals": { "ec2:osuser": "ami-username" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceConnectEndpoints" ], "Resource": "*" } ] }