Berikan izin IAM untuk EC2 instans Connect - 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 EC2 instans Connect

Untuk terhubung ke instans menggunakan EC2 Instance Connect, Anda harus membuat kebijakan IAM yang memberikan izin kepada pengguna Anda untuk tindakan dan kondisi berikut:

  • Tindakan ec2-instance-connect:SendSSHPublicKey – Memberikan izin untuk mendorong kunci publik ke sebuah instans.

  • Kondisi ec2:osuser – Menentukan nama pengguna OS yang dapat mendorong kunci publik ke sebuah instans. Gunakan nama pengguna default untuk AMI yang Anda gunakan untuk meluncurkan instance. Nama pengguna default untuk AL2023 dan Amazon Linux 2 adalahec2-user, dan untuk Ubuntu itu. ubuntu

  • Tindakan ec2:DescribeInstances – Wajib saat menggunakan konsol EC2 karena wrapper memanggil tindakan ini. Pengguna mungkin sudah memiliki izin untuk memanggil tindakan ini dari kebijakan lain.

Pertimbangkan untuk membatasi akses ke instans EC2 tertentu. Jika tidak, semua prinsipal IAM dengan izin untuk ec2-instance-connect:SendSSHPublicKey tindakan tersebut dapat terhubung ke semua instans EC2. Anda dapat membatasi akses dengan menentukan ARN sumber daya atau dengan menggunakan tanda sumber daya sebagai kunci syarat.

Untuk informasi selengkapnya, lihat Tindakan, sumber daya, dan kunci syarat untuk Amazon EC2 instans Connect.

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

Izinkan pengguna untuk terhubung ke instans tertentu

Kebijakan IAM berikut memberikan izin untuk terhubung ke instans tertentu, yang diidentifikasi oleh ARN sumber daya mereka.

Dalam contoh kebijakan IAM berikut, tindakan dan kondisi berikut ditentukan:

  • Tindakan ec2-instance-connect:SendSSHPublicKey ini memberi pengguna izin untuk terhubung ke dua instans, yang ditentukan oleh ARN sumber daya. Untuk memberikan izin kepada pengguna untuk terhubung ke semua instans EC2, ganti ARN sumber daya dengan wildcard *.

  • Kondisi ec2:osuser memberikan izin untuk terhubung ke instans hanya jika ami-username ditentukan saat menghubungkan.

  • Tindakan ec2:DescribeInstances ditentukan untuk memberikan izin kepada pengguna yang akan menggunakan konsol untuk terhubung ke instans Anda. Jika pengguna Anda hanya akan menggunakan klien SSH untuk terhubung ke instans Anda, maka Anda dapat menghapus ec2:DescribeInstances. Perhatikan bahwa tindakan API ec2:Describe* tidak mendukung izin tingkat sumber daya. Oleh karena itu, wildcard * dibutuhkan dalam Resource.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": [ "arn:aws:ec2:region:account-id:instance/i-1234567890abcdef0", "arn:aws:ec2:region:account-id:instance/i-0598c7d356eba48d7" ], "Condition": { "StringEquals": { "ec2:osuser": "ami-username" } } }, { "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" } ] }

Izinkan pengguna untuk terhubung ke instans dengan tanda tertentu

Attribute-based access control (ABAC) adalah strategi otorisasi yang mendefinisikan izin berdasarkan tag yang dapat dilampirkan ke pengguna dan sumber daya. AWS Anda dapat menggunakan tanda sumber daya untuk mengontrol akses ke instans. Untuk informasi selengkapnya tentang penggunaan tag untuk mengontrol akses ke AWS sumber daya Anda, lihat Mengontrol akses ke AWS sumber daya di Panduan Pengguna IAM.

Dalam contoh kebijakan IAM berikut, tindakan ec2-instance-connect:SendSSHPublicKey memberikan izin kepada pengguna untuk terhubung ke instans apa pun (ditunjukkan oleh wildcard * di ARN sumber daya) dengan syarat instans memiliki tanda sumber daya dengan kunci=tag-key dan value=tag-value.

Tindakan ec2:DescribeInstances ditentukan untuk memberikan izin kepada pengguna yang akan menggunakan konsol untuk terhubung ke instans Anda. Jika pengguna Anda hanya akan menggunakan klien SSH untuk terhubung ke instans Anda, maka Anda dapat menghapus ec2:DescribeInstances. Perhatikan bahwa tindakan API ec2:Describe* tidak mendukung izin tingkat sumber daya. Oleh karena itu, wildcard * dibutuhkan dalam Resource.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": "arn:aws:ec2:region:account-id:instance/*", "Condition": { "StringEquals": { "aws:ResourceTag/tag-key": "tag-value" } } }, { "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" } ] }