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
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) atautoken
(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:
-
PUT
Permintaan — GunakanPUT
permintaan untuk memulai sesi ke layanan metadata instance. PermintaanPUT
mengembalikan sebuah token yang harus disertakan dalam permintaanGET
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 kerequired
, permintaan tanpa token yang valid atau dengan token yang kedaluwarsa akan menerima kode kesalahan HTTP401 - 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.
-
PUT
Permintaan 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. PUT
permintaan 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
InstanceName
dengan nama instance Anda, danRegionName
dengan instance Wilayah AWS Anda ada di.aws lightsail update-instance-metadata-options --region
RegionName
--instance-nameInstanceName
--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).
-
Untuk instans Linux:
-
Untuk instans Windows: