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 jikaami-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 menghapusec2:DescribeInstances
. Perhatikan bahwa tindakan APIec2:Describe*
tidak mendukung izin tingkat sumber daya. Oleh karena itu, wildcard*
dibutuhkan dalamResource
.
{ "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": "*" } ] }