Transisi ke penggunaan Layanan Metadata Instans Versi 2 - Amazon Elastic Compute Cloud

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

Transisi ke penggunaan Layanan Metadata Instans Versi 2

Saat bermigrasi ke IMDSv2, kami menyarankan Anda untuk menggunakan alat dan jalur transisi berikut.

Alat untuk membantu transisi ke IMDSv2

Jika perangkat lunak Anda menggunakan IMDSv1, gunakan alat bantu berikut untuk membantu mengonfigurasi ulang perangkat lunak Anda untuk menggunakan IMDSv2.

AWS perangkat lunak

Versi terbaru dari AWS CLI dan AWS SDK mendukung IMDSv2. Untuk menggunakan IMDSv2, pastikan bahwa instans EC2 Anda memiliki CLI dan SDK versi terbaru. Untuk informasi tentang pembaruan CLI, lihat Menginstal, memperbarui, dan menghapus instalasi AWS CLI di Panduan Pengguna AWS Command Line Interface .

Semua paket perangkat lunak Amazon Linux 2 dan Amazon Linux 2023 mendukung IMDSv2. Di Amazon Linux 2023, IMDSv1 dinonaktifkan secara default.

Untuk versi AWS SDK minimum yang mendukung IMDSv2, lihat. Menggunakan AWS SDK yang didukung

IMDS Package Analyzer

IMDS Packet Analyzer adalah alat sumber terbuka yang mengidentifikasi dan mencatat panggilan IMDSv1 dari fase boot instans Anda. Hal ini dapat membantu mengidentifikasi perangkat lunak yang membuat panggilan IMDSv1 pada instans EC2, sehingga Anda dapat menentukan dengan tepat apa yang perlu Anda perbarui agar instans Anda siap menggunakan IMDSv2 saja. Anda dapat menjalankan IMDS Packet Analyzer dari baris perintah atau menginstalnya sebagai layanan. Untuk informasi lebih lanjut, lihat IMDS Packet Analyzer di. GitHub

CloudWatch

IMDSv2 menggunakan sesi yang didukung token, sementara IMDSv1 tidak. MetadataNoToken CloudWatch Metrik melacak jumlah panggilan ke Layanan Metadata Instans (IMDS) yang menggunakan IMDSv1. Dengan melacak metrik ini ke nol, Anda dapat menentukan apakah dan kapan semua perangkat lunak Anda telah dimutakhirkan untuk menggunakan IMDSv2.

Setelah menonaktifkan IMDSv1, Anda dapat menggunakan MetadataNoTokenRejected CloudWatch metrik untuk melacak berapa kali panggilan IMDSv1 dicoba dan ditolak. Dengan melacak metrik ini, Anda dapat memastikan apakah perangkat lunak Anda perlu diperbarui untuk menggunakan IMDSv2.

Untuk informasi selengkapnya, lihat Metrik instans.

Pembaruan pada API dan CLI EC2

Untuk instance baru, Anda dapat menggunakan RunInstancesAPI untuk meluncurkan instance baru yang memerlukan penggunaan IMDSv2. Untuk informasi selengkapnya, lihat Mengonfigurasi opsi metadata instans untuk instans baru.

Untuk instance yang ada, Anda dapat menggunakan ModifyInstanceMetadataOptionsAPI untuk meminta penggunaan IMDSv2. Untuk informasi selengkapnya, lihat Mengonfigurasi opsi metadata instans untuk instans yang ada.

Untuk mengharuskan penggunaan IMDSv2 pada semua instans baru yang diluncurkan oleh grup Auto Scaling, grup Auto Scaling Anda dapat menggunakan templat peluncuran atau konfigurasi peluncuran. Saat Anda membuat templat peluncuran atau membuat konfigurasi peluncuran, Anda harus mengonfigurasi parameter MetadataOptions untuk mengharuskan penggunaan IMDSv2. Grup Auto Scaling meluncurkan instans baru menggunakan templat peluncuran atau konfigurasi peluncuran baru, tetapi instans yang ada tidak terpengaruh. Untuk instans yang ada di grup Auto Scaling, Anda dapat menggunakan ModifyInstanceMetadataOptionsAPI untuk meminta penggunaan IMDSv2 pada instans yang ada, atau menghentikan instance dan grup Auto Scaling akan meluncurkan instance pengganti baru dengan pengaturan opsi metadata instans yang ditentukan dalam templat peluncuran baru atau konfigurasi peluncuran.

Gunakan AMI yang mengonfigurasi IMDSv2 secara default

Saat meluncurkan instans, Anda dapat mengonfigurasinya secara otomatis untuk menggunakan IMDSv2 secara default (parameter HttpTokens diatur ke required) dengan meluncurkannya dengan AMI yang dikonfigurasi dengan parameter ImdsSupport yang diatur ke v2.0. Anda dapat mengatur parameter ImdsSupport ke v2.0 saat mendaftarkan AMI menggunakan perintah CLI register-image, atau Anda dapat memodifikasi AMI yang ada dengan menggunakan perintah CLI modify-image-attribute. Untuk informasi selengkapnya, lihat Konfigurasikan AMI.

Kebijakan IAM dan SCP

Anda dapat menggunakan kebijakan IAM atau kebijakan kontrol AWS Organizations layanan (SCP) untuk mengontrol pengguna sebagai berikut:

  • Tidak dapat meluncurkan instance menggunakan RunInstancesAPI kecuali instance dikonfigurasi untuk menggunakan IMDSv2.

  • Tidak dapat memodifikasi instance yang sedang berjalan menggunakan ModifyInstanceMetadataOptionsAPI untuk mengaktifkan kembali IMDSv1.

Kebijakan IAM atau SCP harus berisi kunci syarat IAM berikut:

  • ec2:MetadataHttpEndpoint

  • ec2:MetadataHttpPutResponseHopLimit

  • ec2:MetadataHttpTokens

Jika parameter dalam panggilan API atau CLI tidak cocok dengan status yang ditentukan dalam kebijakan yang berisi kunci syarat tersebut, panggilan API atau CLI akan gagal dengan tanggapan UnauthorizedOperation.

Selain itu, Anda dapat memilih lapisan perlindungan tambahan untuk menegakkan perubahan dari IMDSv1 ke IMDSv2. Pada lapisan manajemen akses sehubungan dengan API yang dipanggil melalui kredensil Peran EC2, Anda dapat menggunakan kunci kondisi baru baik dalam kebijakan IAM atau kebijakan kontrol AWS Organizations layanan (SCP). Secara khusus, dengan menggunakan kunci syarat ec2:RoleDelivery dengan nilai 2.0 dalam kebijakan IAM Anda, panggilan API yang dilakukan dengan kredenal Peran EC2 yang diperoleh dari IMDSv1 akan menerima tanggapan UnauthorizedOperation. Hal yang sama dapat dicapai secara lebih luas dengan kondisi yang disyaratkan oleh SCP. Hal ini memastikan bahwa kredensial yang dikirim melalui IMDSv1 sebenarnya tidak bisa digunakan untuk memanggil API karena panggilan API yang tidak cocok dengan kondisi yang ditentukan akan menerima kesalahan UnauthorizedOperation.

Misalnya kebijakan IAM, lihat .Cara menggunakan metadata instans Untuk informasi lebih lanjut tentang SCP, lihat Kebijakan Penolakan Layanan di Panduan Pengguna AWS Organizations .

Menggunakan alat di atas, kami menyarankan Anda mengikuti jalur ini untuk transisi ke IMDSv2:

Langkah 1: Pada awal

Perbarui SDK, CLI, dan perangkat lunak Anda yang menggunakan kredensial Peran pada instans EC2 mereka untuk versi yang kompatibel dengan IMDSv2. Untuk informasi tentang pembaruan CLI, lihat Memutakhirkan ke AWS CLI versi terbaru di Panduan Pengguna AWS Command Line Interface .

Kemudian, ubah perangkat lunak Anda yang langsung mengakses metadata instans (dengan kata lain, yang tidak menggunakan SDK) menggunakan permintaan IMDSv2. Anda dapat menggunakan IMDS Packet Analyzer untuk mengidentifikasi perangkat lunak yang perlu Anda ubah untuk menggunakan permintaan IMDSv2.

Langkah 2: Lacak kemajuan transisi Anda

Lacak kemajuan transisi Anda dengan menggunakan CloudWatch metrikMetadataNoToken. Metrik ini melacak jumlah panggilan IMDSv1 ke IMDS di instans Anda. Untuk informasi selengkapnya, lihat Metrik instans.

Langkah 3: Ketika tidak ada penggunaan IMDSv1

Saat CloudWatch metrik MetadataNoToken mencatat nol penggunaan IMDSv1, instance Anda siap untuk sepenuhnya dialihkan ke penggunaan IMDSv2. Pada tahap ini, Anda dapat melakukan hal berikut:

  • Default akun

    Anda dapat mengatur IMDSv2 agar diperlukan sebagai default akun. Ketika sebuah instance diluncurkan, konfigurasi instans secara otomatis diatur ke default akun.

    Untuk mengatur default akun, lakukan hal berikut:

    • Konsol Amazon EC2: Di Dasbor EC2, di bawah atribut Akun, Perlindungan dan keamanan data, untuk default IMDS, setel layanan metadata Instans ke versi Aktif dan Metadata hanya ke V2 (diperlukan token). Untuk informasi selengkapnya, lihat Tetapkan IMDSv2 sebagai default untuk akun.

    • AWS CLI: Gunakan perintah CLI modify-instance-metadata-defaults dan tentukan dan. --http-tokens required --http-put-response-hop-limit 2

  • Instans baru

    Saat meluncurkan instans baru, Anda dapat melakukan hal berikut:

    • Konsol Amazon EC2: Di wizard instans peluncuran, atur Metadata yang dapat diakses ke Aktif dan Versi metadata ke V2 saja (diperlukan token). Untuk informasi selengkapnya, lihat Konfigurasikan instans saat peluncuran.

    • AWS CLI: Gunakan perintah CLI run-instance dan tentukan bahwa IMDSv2 diperlukan.

  • Instans yang ada

    Untuk instans yang ada, Anda dapat melakukan hal berikut:

    • Konsol Amazon EC2: Pada halaman Instans, pilih instans Anda, pilih Tindakan, Pengaturan instans, Ubah opsi metadata instans, dan untuk IMDSv2, pilih Wajib. Untuk informasi selengkapnya, lihat Mengharuskan penggunaan IMDSv2.

    • AWS CLI: Gunakan perintah CLI modify-instance-metadata-options untuk menetapkan bahwa hanya IMDSv2 yang akan digunakan.

    Anda dapat memodifikasi opsi metadata instans pada instans yang sedang berjalan, dan Anda tidak perlu memulai ulang instans setelah memodifikasi opsi metadata instans.

Langkah 4: Periksa apakah instans Anda dialihkan ke IMDSv2

Anda dapat memeriksa apakah ada instans yang belum dikonfigurasi untuk mengharuskan penggunaan IMDSv2, dengan kata lain, IMDSv2 masih dikonfigurasi sebagai optional. Jika ada instans yang masih dikonfigurasi sebagai optional, Anda dapat memodifikasi opsi metadata instans untuk membuat IMDSv2 required dengan mengulangi Langkah 3 sebelumnya.

Untuk memfilter instans Anda:

  • Konsol Amazon EC2: Pada halaman Instans, filter instans Anda dengan menggunakan filter IMDSv2 = opsional. Untuk informasi selengkapnya tentang pemfilteran, lihat Memfilter sumber daya menggunakan konsol. Anda juga dapat melihat apakah IMDSv2 diharuskan atau opsional untuk setiap instans: Di jendela Preferensi, aktifkan tombol IMDSv2 untuk menambahkan kolom IMDSv2 ke tabel Instans.

  • AWS CLI: Gunakan perintah CLI describe-instances dan filter berdasarkan metadata-options.http-tokens = optional, sebagai berikut:

    aws ec2 describe-instances --filters "Name=metadata-options.http-tokens,Values=optional" --query "Reservations[*].Instances[*].[InstanceId]" --output text

Langkah 5: Jika semua instans Anda dialihkan ke IMDSv2

Kunci kondisi ec2:MetadataHttpTokensec2:MetadataHttpPutResponseHopLimit,, dan ec2:MetadataHttpEndpoint IAM dapat digunakan untuk mengontrol penggunaan ModifyInstanceMetadataOptionsAPI RunInstancesdan CLI yang sesuai. Jika kebijakan dibuat, dan parameter dalam panggilan API tidak cocok dengan status yang ditentukan dalam kebijakan menggunakan kunci syarat, panggilan API atau CLI akan gagal dengan tanggapanUnauthorizedOperation. Misalnya kebijakan IAM, lihat .Cara menggunakan metadata instans

Selanjutnya, setelah menonaktifkan IMDSv1, Anda dapat menggunakan MetadataNoTokenRejected CloudWatch metrik untuk melacak berapa kali panggilan IMDSv1 dicoba dan ditolak. Jika, setelah menonaktifkan IMDSv1, Anda memiliki perangkat lunak yang tidak berfungsi dengan baik dan MetadataNoTokenRejected metrik mencatat panggilan IMDSv1, kemungkinan perangkat lunak ini perlu diperbarui untuk menggunakan IMDSv2.