Akses dan konfigurasikan Layanan Metadata Instance (IMDS) di Lightsail - Amazon Lightsail

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

Akses dan konfigurasikan Layanan Metadata Instance (IMDS) di Lightsail

Anda dapat mengakses metadata instance dari instance yang sedang berjalan dengan menggunakan salah satu metode berikut:

  • Layanan Metadata Instans Versi 1 (IMDSv1) – metode permintaan/tanggapan

  • Layanan Metadata Instans Versi 2 (IMDSv2) - metode berorientasi sesi

    penting

    Tidak semua cetak biru instance di Lightsail mendukung IMDSv2. Gunakan metrik MetadataNoToken instance untuk melacak jumlah panggilan ke layanan metadata instance yang menggunakan IMDSv1. Untuk informasi selengkapnya, lihat Melihat metrik instance.

Secara default, Anda dapat menggunakan IMDSv1 atau IMDSv2, atau keduanya. Layanan metadata instance membedakan antara permintaan IMDSv1 dan IMDSv2 berdasarkan apakah GET header PUT atau, yang unik untuk IMDSv2, hadir dalam permintaan yang diberikan. Untuk informasi selengkapnya, lihat Menambahkan pertahanan secara mendalam terhadap firewall terbuka, proxy terbalik, dan kerentanan SSRF dengan penyempurnaan pada Layanan Metadata Instans EC2.

Anda dapat mengonfigurasi layanan metadata instance pada setiap instance sehingga kode lokal atau pengguna harus menggunakan IMDSv2. Saat Anda menentukan bahwa IMDSv2 harus digunakan, maka IMDSv1 tidak lagi berfungsi. Untuk informasi selengkapnya, lihat Mengonfigurasi opsi metadata instans di Panduan Pengguna Amazon Elastic Compute Cloud untuk Instans Linux.

Untuk mengambil metadata instans, lihat Mengambil metadata instans di Panduan Pengguna Amazon Elastic Compute Cloud untuk Instans Linux.

catatan

Contoh di bagian ini menggunakan alamat IPv4 dari layanan metadata instance:. 169.254.169.254 Jika Anda mengambil metadata instance untuk instance di atas alamat IPv6, pastikan untuk mengaktifkan dan menggunakan alamat IPv6 sebagai gantinya: fd00:ec2::254 Alamat IPv6 dari layanan metadata instance kompatibel dengan perintah IMDSv2.

Bagaimana cara kerja Instance Metadata Service Versi 2

IMDSv2 menggunakan permintaan berorientasi sesi. Dengan permintaan berorientasi sesi, Anda membuat token sesi yang menentukan durasi sesi, yang bisa minimal satu detik dan maksimal enam jam. Selama durasi yang ditentukan, Anda dapat menggunakan token sesi yang sama untuk permintaan selanjutnya. Setelah durasi yang ditentukan berakhir, Anda harus membuat token sesi baru yang akan digunakan untuk permintaan di masa mendatang.

penting

Instans Lightsail yang diluncurkan dari Amazon Linux 2023 akan memiliki IMDSv2 yang dikonfigurasi secara default.

Contoh berikut menggunakan Linux dan skrip PowerShell shell dan IMDSv2 untuk mengambil item metadata instance tingkat atas. Contoh-contoh ini melakukan hal berikut:

  • Buat token sesi yang berlangsung selama enam jam (21.600 detik) dengan menggunakan permintaan PUT

  • Simpan header token sesi dalam variabel bernama TOKEN (di Linux) atau token (di Windows)

  • Minta item metadata tingkat atas dengan menggunakan token

Mulailah dengan menjalankan perintah berikut:

  • Di Linux:

    • Pertama, buat token dengan perintah berikut.

      [ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
    • Kemudian, gunakan token untuk menghasilkan item metadata tingkat atas dengan perintah berikut.

      [ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/
  • Di Windows:

    • Pertama, buat token dengan perintah berikut.

      PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
    • Kemudian, gunakan token untuk menghasilkan item metadata tingkat atas dengan perintah berikut.

      PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/

Setelah Anda membuat token, Anda dapat menggunakannya kembali sampai kedaluwarsa. Dalam contoh berikut, setiap perintah mendapatkan ID cetak biru (Amazon Machine Image (AMI)) yang digunakan untuk meluncurkan instance. Token dari contoh sebelumnya digunakan kembali. Itu disimpan di $TOKEN (di Linux) atau $token (di Windows).

  • Di Linux:

    [ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/ami-id
  • Di Windows:

    PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} ` -Method GET -uri http://169.254.169.254/latest/meta-data/ami-id

Jika Anda menggunakan IMDSv2 untuk meminta metadata instans, maka permintaan tersebut harus menyertakan yang berikut ini:

  • PUTPermintaan — Gunakan PUT permintaan untuk memulai sesi ke layanan metadata instance. Permintaan PUT mengembalikan sebuah token yang harus disertakan dalam permintaan GET selanjutnya ke layanan metadata instans. Token diperlukan untuk mengakses metadata saat menggunakan IMDSv2.

  • Token — Sertakan token dalam semua GET permintaan ke layanan metadata instance. Saat penggunaan token diatur ke required, permintaan tanpa token yang valid atau dengan token yang kedaluwarsa akan menerima kode kesalahan HTTP 401 - Unauthorized. Untuk informasi tentang mengubah persyaratan penggunaan token, lihat update-instance-metadata-optionsdi Referensi AWS CLI Perintah.

    • Token adalah kunci untuk instans tertentu. Token tidak valid pada instance lain dan akan ditolak jika Anda mencoba menggunakannya di luar instance tempat token tersebut dihasilkan.

    • PUTPermintaan harus menyertakan header yang menentukan waktu untuk hidup (TTL) untuk token, dalam hitungan detik. TTL dapat ditentukan hingga maksimal enam jam (21.600 detik). Token tersebut mewakili sesi logis. TTL menentukan lamanya waktu token itu valid dan, oleh karena itu, merupakan durasi sesi.

    • Setelah token kedaluwarsa, untuk terus mengakses metadata instance, Anda harus membuat sesi baru menggunakan permintaan lain. PUT

    • Anda dapat memilih untuk menggunakan kembali token atau membuat token baru dengan setiap permintaan. Untuk sejumlah kecil permintaan, mungkin lebih mudah untuk membuat dan segera menggunakan token setiap kali Anda perlu mengakses layanan metadata instance. Tetapi untuk efisiensi, Anda dapat menentukan durasi token yang lebih lama dan menggunakannya kembali alih-alih menulis PUT permintaan setiap kali Anda perlu meminta metadata instance. Tidak ada batasan praktis pada jumlah token bersamaan, dengan masing-masing mewakili sesinya sendiri. Namun, IMDSv2 masih dibatasi oleh koneksi layanan metadata instans normal dan batas throttling. Untuk informasi selengkapnya, lihat Pelambatan kueri di Panduan Pengguna Amazon Elastic Compute Cloud untuk Instans Linux.

HTTP GET dan HEAD metode diperbolehkan dalam permintaan metadata instance IMDSv2. PUTpermintaan ditolak jika berisi X-Forwarded-For header.

Secara default, respons untuk permintaan PUT memiliki batas hop respons (waktu hidup) sebesar 1 di tingkat protokol IP. Jika Anda membutuhkan batas hop yang lebih besar, Anda dapat menyesuaikannya dengan menggunakan update-instance-metadata-options perintah. Misalnya, Anda mungkin memerlukan batas hop yang lebih besar untuk kompatibilitas mundur dengan layanan container yang berjalan pada instance. Untuk informasi selengkapnya, lihat update-instance-metadata-optionsdi Referensi AWS CLI Perintah.

Bertransisi ke menggunakan instans Metadata Service Versi 2

Penggunaan Instance Metadata Service Versi 2 (IMDSv2) bersifat opsional. Instance Metadata Service Versi 1 (IMDSv1) akan terus didukung tanpa batas waktu. Jika Anda memilih untuk bermigrasi menggunakan 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 SDK dan AWS CLI dukungan IMDSv2. Untuk menggunakan IMDSv2, pastikan instans Anda memiliki versi terbaru SDK dan file. AWS AWS CLI Untuk informasi tentang memperbarui AWS CLI, lihat Menginstal, memperbarui, dan menghapus instalasi AWS CLI di Panduan AWS Command Line Interface Pengguna. Semua paket perangkat lunak Amazon Linux 2 mendukung IMDSv2.

  • Metrik instance: IMDSv2 menggunakan sesi yang didukung token, sedangkan IMDSv1 tidak. Metrik MetadataNoToken instance melacak jumlah panggilan ke layanan metadata instance yang menggunakan IMDSv1. Dengan melacak metrik ini ke nol, Anda dapat menentukan apakah dan kapan semua perangkat lunak Anda telah dimutakhirkan untuk menggunakan IMDSv2. Untuk informasi selengkapnya, lihat Melihat metrik instans di Amazon Lightsail.

  • Pembaruan untuk operasi AWS CLI dan perintah Lightsail API: Untuk instance yang ada, Anda dapat menggunakan update-instance-metadata-options AWS CLI perintah (atau UpdateInstanceMetadataOptionsoperasi API) untuk meminta penggunaan IMDSv2. Berikut adalah contoh perintah tersebut. Pastikan Anda mengganti InstanceNamedengan nama instance Anda, dan RegionNamedengan instance Wilayah AWS Anda ada di.

    aws lightsail update-instance-metadata-options --region RegionName --instance-name InstanceName --http-tokens required

Jalur yang disarankan untuk membutuhkan akses IMDSv2

Dengan menggunakan alat sebelumnya, kami menyarankan Anda mengikuti jalur ini untuk beralih ke IMDSv2:

Langkah 1: Pada awal

Perbarui AWS SDK, perangkat lunak AWS CLI, dan perangkat lunak Anda yang menggunakan kredenal peran pada instans Anda ke versi yang kompatibel dengan IMDSV2. Untuk informasi tentang memperbarui AWS CLI, lihat Memutakhirkan ke versi terbaru dari AWS CLI Panduan AWS Command Line Interface Pengguna.

Kemudian, ubah perangkat lunak Anda yang secara langsung mengakses metadata instance (dengan kata lain, yang tidak menggunakan AWS SDK) dengan menggunakan permintaan IMDSv2.

Langkah 2: Selama masa transisi

Lacak kemajuan transisi Anda dengan menggunakan metrik instanceMetadataNoToken. Metrik ini melacak jumlah panggilan ke layanan metadata instans yang menggunakan IMDSv1 di instans Anda. Untuk informasi selengkapnya, lihat Melihat metrik instance.

Langkah 3: Ketika semuanya sudah siap di semua instans

Semuanya siap pada semua instance ketika metrik instance MetadataNoToken mencatat nol penggunaan IMDSv1. Pada tahap ini, Anda dapat meminta penggunaan IMDSv2 melalui perintah. update-instance-metadata-options Anda dapat membuat perubahan ini pada instance yang sedang berjalan; Anda tidak perlu memulai ulang instance Anda.

Memperbarui opsi metadata instans untuk instance yang ada hanya tersedia melalui Lightsail API atau. AWS CLI Saat ini tidak tersedia di konsol Lightsail. Untuk informasi lebih lanjut, lihat update-instance-metadata-options.

Dokumentasi IMDS tambahan

Dokumentasi IMDS berikut tersedia di Panduan Pengguna Amazon Elastic Compute Cloud untuk Instans Linux dan Panduan Pengguna Amazon Elastic Compute Cloud untuk Instans Windows:

catatan

Di Amazon EC2, cetak biru instance disebut sebagai Amazon Machine Images (AMI).