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

Jika Anda ingin mengonfigurasi instans agar hanya menerima panggilan Layanan Metadata Instans Versi 2 (IMDSv2), sebaiknya gunakan alat dan jalur transisi berikut.

Alat untuk transisi ke IMDSv2

Alat-alat berikut dapat membantu Anda mengidentifikasi, memantau, dan mengelola transisi perangkat lunak Anda dari IMDSv1 ke IMDSv2. Untuk petunjuk tentang cara menggunakan alat ini, lihatJalur yang direkomendasikan untuk membutuhkan IMDSv2.

AWS perangkat lunak

Versi terbaru dari AWS CLI dan AWS SDK mendukung IMDSv2. Untuk menggunakan IMDSv2, perbarui instans EC2 Anda untuk menggunakan versi terbaru. Untuk versi AWS SDK minimum yang mendukung IMDSv2, lihatMenggunakan AWS SDK yang didukung.

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

IMDS Package Analyzer

IMDS Packet Analyzer adalah alat sumber terbuka yang mengidentifikasi dan mencatat IMDSv1 panggilan selama fase boot dan operasi runtime instans Anda. Dengan menganalisis log ini, Anda dapat dengan tepat mengidentifikasi perangkat lunak yang membuat IMDSv1 panggilan pada instans Anda dan menentukan apa yang perlu diperbarui untuk mendukung IMDSv2 hanya pada instans Anda. Anda dapat menjalankan IMDS Packet Analyzer dari baris perintah atau menginstalnya sebagai layanan. Untuk informasi lebih lanjut, lihat AWS ImdsPacketAnalyzerdi GitHub.

CloudWatch

CloudWatch menyediakan dua metrik berikut untuk memantau instans Anda:

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

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

Untuk setiap instans EC2, metrik ini saling eksklusif. Ketika IMDSv1 diaktifkan (httpTokens = optional), hanya MetadataNoToken memancarkan. Ketika IMDSv1 dinonaktifkan (httpTokens = required), hanya MetadataNoTokenRejected memancarkan. Untuk kapan menggunakan metrik ini, lihatJalur yang direkomendasikan untuk membutuhkan IMDSv2.

Untuk informasi selengkapnya, lihat Metrik instans.

Peluncuran APIs

Instance baru: Gunakan RunInstancesAPI untuk meluncurkan instance baru yang memerlukan penggunaan. IMDSv2 Untuk informasi selengkapnya, lihat Mengonfigurasi opsi metadata instans untuk instans baru.

Instance yang ada: Gunakan ModifyInstanceMetadataOptionsAPI untuk meminta penggunaan IMDSv2 pada instance yang ada. Untuk informasi selengkapnya, lihat Mengonfigurasi opsi metadata instans untuk instans yang ada.

Instans baru yang diluncurkan oleh grup Auto Scaling: Untuk mewajibkan IMDSv2 penggunaan pada semua instans baru yang diluncurkan oleh grup Auto Scaling, grup Auto Scaling Anda dapat menggunakan templat peluncuran atau konfigurasi peluncuran. Saat Anda membuat template peluncuran atau membuat konfigurasi peluncuran, Anda harus mengonfigurasi MetadataOptions parameter agar memerlukan penggunaanIMDSv2. Grup Auto Scaling meluncurkan instans baru menggunakan templat peluncuran atau konfigurasi peluncuran baru, tetapi instans yang ada tidak terpengaruh.

Instance yang ada dalam grup Auto Scaling: Gunakan ModifyInstanceMetadataOptionsAPI untuk meminta penggunaan IMDSv2 pada instance yang ada, atau menghentikan instance dan grup Auto Scaling akan meluncurkan instance pengganti baru dengan setelan opsi metadata instans yang ditentukan dalam templat peluncuran baru atau konfigurasi peluncuran.

AMIs

AMIs dikonfigurasi dengan ImdsSupport parameter yang disetel ke v2.0 akan meluncurkan instance yang membutuhkan secara IMDSv2 default. Amazon Linux 2023 dikonfigurasi denganImdsSupport = v2.0.

Baru AMIs: Gunakan perintah CLI register-image untuk mengatur parameter ImdsSupport v2.0 saat membuat AMI baru.

AMIsExisting: Gunakan perintah modify-image-attributeCLI untuk mengatur ImdsSupport parameter v2.0 saat memodifikasi AMI yang ada.

Untuk informasi selengkapnya, lihat Konfigurasikan AMI.

Kontrol tingkat akun

Anda dapat mengonfigurasi nilai default untuk semua opsi metadata instans di tingkat akun. Nilai default diterapkan secara otomatis saat Anda meluncurkan sebuah instance. Untuk informasi lebih lanjut. lihat. Tetapkan IMDSv2 sebagai default untuk akun

Anda juga dapat menerapkan persyaratan untuk digunakan IMDSv2 di tingkat akun. Saat IMDSv2 penegakan diaktifkan:

  • Instance baru: Instans yang dikonfigurasi untuk diluncurkan dengan IMDSv1 diaktifkan akan gagal diluncurkan

  • Instance yang ada dengan IMDSv1 dinonaktifkan: Upaya untuk IMDSv1 mengaktifkan instance yang ada akan dicegah.

  • Instance yang ada dengan IMDSv1 diaktifkan: Instance yang ada dengan IMDSv1 sudah diaktifkan tidak akan terpengaruh.

Untuk informasi selengkapnya, lihat Menegakkan IMDSv2 di tingkat akun.

Kebijakan IAM dan SCPs

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 digunakan IMDSv2.

  • Tidak dapat memodifikasi instance yang ada menggunakan ModifyInstanceMetadataOptionsAPI untuk mengaktifkan kembaliIMDSv1.

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 kondisi, panggilan API atau CLI gagal dengan respons. 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 baik dalam kebijakan IAM atau kebijakan kontrol AWS Organizations layanan (). SCPs Secara khusus, dengan menggunakan kunci kondisi ec2:RoleDelivery dengan nilai 2.0 dalam kebijakan IAM Anda, panggilan API yang dilakukan dengan kredenal Peran EC2 yang diperoleh dari IMDSv1 akan menerima respons. UnauthorizedOperation Hal yang sama dapat dicapai secara lebih luas dengan kondisi yang disyaratkan oleh SCP. Ini memastikan bahwa kredensil yang dikirimkan melalui IMDSv1 tidak dapat benar-benar digunakan untuk memanggil APIs karena panggilan API apa pun yang tidak cocok dengan kondisi yang ditentukan akan menerima kesalahanUnauthorizedOperation.

Untuk contoh kebijakan IAM, lihat Cara menggunakan metadata instans. Untuk informasi selengkapnya SCPs, lihat Kebijakan kontrol layanan di Panduan AWS Organizations Pengguna.

Kebijakan Deklaratif

Gunakan Kebijakan Deklaratif (fitur AWS Organizations) untuk menetapkan default akun IMDS secara terpusat, termasuk IMDSv2 penegakan hukum, di seluruh organisasi Anda. Untuk kebijakan contoh, lihat tab Metadata Instans di bagian Kebijakan deklaratif yang didukung di Panduan Pengguna.AWS Organizations

Langkah 1: Identifikasi instance dengan IMDSv2 =opsional dan penggunaan audit IMDSv1

Untuk menilai cakupan IMDSv2 migrasi Anda, identifikasi instance yang dikonfigurasi untuk mengizinkan salah satu IMDSv1 atau IMDSv2, dan IMDSv1 panggilan audit.

  1. Identifikasi instance yang dikonfigurasi untuk mengizinkan salah satu IMDSv1 atau IMDSv2:

    Amazon EC2 console
    1. Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/

    2. Di panel navigasi, pilih Instans.

    3. Untuk melihat hanya instance yang dikonfigurasi untuk mengizinkan IMDSv1 atau IMDSv2, tambahkan filter IMDSv2 = opsional.

    4. Atau, untuk melihat IMDSv2 apakah opsional atau wajib untuk semua instance, buka jendela Preferensi (ikon roda gigi), aktifkan IMDSv2, dan pilih Konfirmasi. Ini menambahkan IMDSv2kolom ke tabel Instances.

    AWS CLI

    Gunakan perintah describe-instance dan filter denganmetadata-options.http-tokens = optional, sebagai berikut:

    aws ec2 describe-instances --filters "Name=metadata-options.http-tokens,Values=optional" --query "Reservations[*].Instances[*].[InstanceId]" --output text
  2. IMDSv1 Panggilan audit pada setiap instance:

    Gunakan CloudWatch metrikMetadataNoToken. Metrik ini menunjukkan jumlah IMDSv1 panggilan ke IMDS pada instans Anda. Untuk informasi selengkapnya, lihat Metrik instans.

  3. Identifikasi perangkat lunak pada instans Anda yang melakukan IMDSv1 panggilan:

    Gunakan IMDS Packet Analyzer open source untuk mengidentifikasi dan mencatat IMDSv1 panggilan selama fase boot dan operasi runtime instans Anda. Gunakan informasi ini untuk mengidentifikasi perangkat lunak yang akan diperbarui agar instance Anda siap digunakan IMDSv2 saja. Anda dapat menjalankan IMDS Packet Analyzer dari baris perintah atau menginstalnya sebagai layanan.

Langkah 2: Perbarui perangkat lunak ke IMDSv2

Perbarui semua SDKs, CLIs, dan perangkat lunak yang menggunakan kredensil Peran pada instans Anda ke IMDSv2 versi yang kompatibel. Untuk informasi selengkapnya tentang memperbarui CLI, lihat Menginstal atau memperbarui ke versi terbaru dari AWS CLIAWS Command Line Interface Panduan Pengguna.

Langkah 3: Memerlukan IMDSv2 contoh

Setelah mengonfirmasi nol IMDSv1 panggilan melalui MetadataNoToken metrik, konfigurasikan instans yang ada agar diperlukan IMDSv2. Juga, konfigurasikan semua instance baru untuk membutuhkan IMDSv2. Dengan kata lain, IMDSv1 nonaktifkan semua instance yang ada dan yang baru.

  1. Konfigurasikan instance yang ada untuk membutuhkanIMDSv2:

    Amazon EC2 console
    1. Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/

    2. Di panel navigasi, pilih Instans.

    3. Pilih instans Anda.

    4. Pilih Tindakan, Pengaturan instans, Ubah opsi metadata instans.

    5. Untuk IMDSv2, pilih Diperlukan.

    6. Pilih Simpan.

    AWS CLI

    Gunakan perintah modify-instance-metadata-optionsCLI untuk menentukan bahwa hanya IMDSv2 yang akan digunakan.

    catatan

    Anda dapat memodifikasi pengaturan ini pada instance yang sedang berjalan. Perubahan segera berlaku tanpa memerlukan instance restart.

    Untuk informasi selengkapnya, lihat Membutuhkan penggunaan IMDSv2.

  2. Pantau masalah setelah menonaktifkanIMDSv1:

    1. Lacak berapa kali IMDSv1 panggilan dicoba dan ditolak dengan MetadataNoTokenRejected CloudWatch metrik.

    2. Jika catatan MetadataNoTokenRejected metrik IMDSv1 memanggil instance yang mengalami masalah perangkat lunak, ini menunjukkan bahwa perangkat lunak memerlukan pembaruan untuk digunakan IMDSv2.

  3. Konfigurasikan instance baru untuk membutuhkanIMDSv2:

    Amazon EC2 console
    1. Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/

    2. Ikuti langkah-langkah untuk meluncurkan instance.

    3. Perluas Detail lanjutan, dan untuk versi Metadata, pilih V2 saja (diperlukan token).

    4. Di panel Summary, tinjau konfigurasi instans Anda, lalu pilih Launch instans.

      Untuk informasi selengkapnya, lihat Konfigurasikan instans saat peluncuran.

    AWS CLI

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

Langkah 4: Set IMDSv2 = diperlukan sebagai default

Anda dapat mengatur IMDSv2 =required sebagai konfigurasi default di tingkat akun atau organisasi. Ini memastikan bahwa semua instance yang baru diluncurkan dikonfigurasi secara otomatis untuk memerlukan IMDSv2.

  1. Tetapkan default tingkat akun:

    Amazon EC2 console
    1. Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/

    2. Di panel navigasi, pilih Dasbor.

    3. Pada kartu Atribut akun, di bawah Pengaturan, pilih Perlindungan dan keamanan data.

    4. Di bawah default IMDS, pilih Kelola.

    5. Untuk layanan metadata Instance, pilih Diaktifkan.

    6. Untuk versi Metadata, pilih V2 saja (diperlukan token).

    7. Pilih Perbarui.

    AWS CLI

    Gunakan perintah modify-instance-metadata-defaultsCLI dan tentukan --http-tokens required dan. --http-put-response-hop-limit 2

    Untuk informasi selengkapnya, lihat Tetapkan IMDSv2 sebagai default untuk akun.

  2. Atau, tetapkan default tingkat organisasi menggunakan Kebijakan Deklaratif:

    Gunakan Kebijakan Deklaratif untuk menyetel default organisasi IMDSv2 menjadi required. Untuk kebijakan contoh, lihat tab Metadata Instans di bagian Kebijakan deklaratif yang didukung di Panduan Pengguna.AWS Organizations

Langkah 5: Menerapkan instance untuk membutuhkan IMDSv2

Setelah Anda mengonfirmasi bahwa tidak ada ketergantungan IMDSv1 pada instans mana pun, kami sarankan Anda menerapkan IMDSv2 semua instans baru.

Gunakan salah satu opsi berikut untuk menegakkan IMDSv2:

  1. Menegakkan IMDSv2 dengan properti akun

    Anda dapat menerapkan penggunaan IMDSv2 di tingkat akun untuk masing-masing AWS Region. Saat diberlakukan, instance hanya dapat diluncurkan jika dikonfigurasi untuk membutuhkan. IMDSv2 Penegakan ini berlaku terlepas dari bagaimana instans atau AMI dikonfigurasi. Untuk informasi selengkapnya, lihat Menegakkan IMDSv2 di tingkat akun. Untuk menerapkan setelan ini di tingkat organisasi, tetapkan Kebijakan Deklaratif. Untuk kebijakan contoh, lihat tab Metadata Instans di bagian Kebijakan deklaratif yang didukung di Panduan Pengguna.AWS Organizations

    Untuk mencegah pembalikan penegakan hukum, Anda harus menggunakan kebijakan IAM untuk mencegah akses ke API. ModifyInstanceMetadataDefaults Untuk informasi selengkapnya, lihat Gunakan kebijakan IAM.

    catatan

    Pengaturan ini tidak mengubah versi IMDS dari instans yang ada, tetapi memblokir pengaktifan IMDSv1 pada instance yang ada yang saat ini telah dinonaktifkan. IMDSv1

    Awas

    Jika IMDSv2 penegakan httpTokens diaktifkan dan tidak disetel ke required konfigurasi instans saat peluncuran, pengaturan akun, atau konfigurasi AMI, peluncuran instance akan gagal. Untuk informasi pemecahan masalah, lihat Meluncurkan instance IMDSv1 -enabled gagal.

  2. Atau, terapkan IMDSv2 dengan menggunakan kunci kondisi IAM atau SCP berikut:

    • ec2:MetadataHttpTokens

    • ec2:MetadataHttpPutResponseHopLimit

    • ec2:MetadataHttpEndpoint

    Tombol kondisi ini mengontrol penggunaan RunInstancesdan ModifyInstanceMetadataOptions APIs dan yang sesuai CLIs. 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