Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
IMDSversi pada perangkat Keluarga Salju
Anda dapat mengakses metadata instans dari instance yang sedang berjalan menggunakan IMDS versi 2 atau IMDS versi 1:
Layanan Metadata Instance versi 2 (IMDSv2), metode berorientasi sesi
Layanan Metadata Instance versi 1 (IMDSv1), metode permintaan-respons
Tergantung pada versi perangkat lunak Snow Anda, Anda dapat menggunakanIMDSv1,IMDSv2, atau keduanya. Ini juga tergantung pada jenis AMI berjalan di instance EC2 -compatible. BeberapaAMIs, seperti yang menjalankan Ubuntu 20.04, memerlukanIMDSv2. Layanan metadata instance membedakan antara IMDSv1 dan IMDSv2 permintaan berdasarkan keberadaan PUT
atau header. GET
IMDSv2menggunakan kedua header ini. IMDSv1hanya menggunakan GET
header.
AWS mendorong penggunaan IMDSv2 bukan IMDSv1 karena IMDSv2 mencakup keamanan yang lebih tinggi. Untuk informasi selengkapnya, lihat Menambahkan pertahanan secara mendalam terhadap firewall terbuka, proxy terbalik, dan SSRF kerentanan dengan penyempurnaan pada Layanan Metadata Instance
IMDSv2pada perangkat Keluarga Salju
Ketika Anda menggunakan IMDSv2 untuk meminta metadata instance, permintaan harus mengikuti aturan berikut:
Gunakan permintaan
PUT
untuk memulai sesi ke layanan metadata instans.PUT
Permintaan mengembalikan token sesi yang harus disertakan dalamGET
permintaan berikutnya ke layanan metadata instance. Token sesi yang menentukan durasi sesi. Durasi sesi bisa minimal satu detik dan maksimal enam jam. Selama durasi ini, Anda dapat menggunakan token sesi yang sama untuk permintaan berikutnya. Setelah durasi ini berakhir, Anda harus membuat token sesi baru untuk permintaan future. Token diperlukan untuk mengakses metadata menggunakan. IMDSv2Sertakan token di semua
GET
permintaan ke layanan metadata instance.Token adalah kunci khusus instance. Token tidak valid pada instance lain EC2 yang kompatibel dan akan ditolak jika Anda mencoba menggunakannya di luar instance tempat token tersebut dihasilkan.
PUT
Permintaan harus menyertakan header yang menentukan waktu untuk live (TTL) untuk token, dalam hitungan detik, hingga maksimum enam jam (21.600 detik). Token tersebut mewakili sesi logis. TTLIni menentukan lamanya waktu token valid dan, oleh karena itu, 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. Namun untuk efisiensi, Anda dapat menentukan durasi yang lebih lama untuk token dan menggunakannya kembali daripada harus menulis
PUT
meminta setiap kali Anda perlu meminta metadata instance. Tidak ada batasan praktis untuk jumlah token yang bersamaan, masing-masing mewakili sesinya sendiri.
HTTPGET
dan HEAD
metode diizinkan dalam permintaan metadata IMDSv2 contoh. PUT
permintaan ditolak jika berisi X-Forwarded-For
header.
Secara default, respons terhadap PUT
permintaan memiliki batas hop respons (waktu untuk hidup) 1 pada tingkat protokol IP. IMDSuntuk Snow tidak memiliki kemampuan untuk memodifikasi batas hop pada PUT
tanggapan.
Contoh berikut menggunakan skrip shell Linux dan IMDSv2 untuk mengambil item metadata instance tingkat atas. Contoh ini:
Membuat token sesi yang berlangsung selama enam jam (21.600 detik) menggunakan permintaan.
PUT
Menyimpan header token sesi dalam variabel bernama
TOKEN
.Meminta item metadata tingkat atas menggunakan token.
Gunakan dua perintah untuk menghasilkan token EC2 yang kompatibel. Anda dapat menjalankan perintah secara terpisah atau sebagai satu perintah.
Pertama, hasilkan token menggunakan perintah berikut.
catatan
X-aws-ec2-metadata-token-ttl-seconds
adalah header yang diperlukan. Jika header ini tidak disertakan, Anda akan menerima kode kesalahan 400 - Parameter Hilang atau Tidak Valid.
[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 menggunakan perintah berikut.
[ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/
catatan
Jika ada kesalahan dalam membuat token, pesan kesalahan disimpan dalam variabel alih-alih token yang valid dan perintah tidak akan berfungsi.
Anda dapat menyimpan token dan menggabungkan perintah. Contoh berikut menggabungkan dua perintah di atas dan menyimpan header token sesi dalam variabel bernamaTOKEN
.
contoh dari perintah gabungan
[ec2-user ~]$ TOKEN=curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/
Setelah Anda membuat token, Anda dapat menggunakannya kembali hingga kedaluwarsa. Contoh perintah berikut mendapatkan ID yang AMI digunakan untuk meluncurkan instance dan menyimpannya di $TOKEN
dibuat dalam contoh sebelumnya.
contoh menggunakan kembali token
[ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/ami-id
IMDSv1pada perangkat Keluarga Salju
IMDSv1menggunakan model permintaan-respons. Untuk meminta metadata instance, Anda mengirim GET
permintaan ke layanan metadata instance.
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/
Metadata instans Anda tersedia dari instans yang sedang berjalan, jadi Anda tidak perlu menggunakan EC2 konsol Amazon atau AWS CLI untuk mengaksesnya. Hal ini berguna saat Anda menulis skrip yang akan dijalankan dari instans Anda. Misalnya, Anda dapat mengakses alamat IP lokal instans Anda dari metadata instans untuk mengelola koneksi ke aplikasi eksternal. Metadata instans dibagi menjadi beberapa kategori. Untuk deskripsi setiap kategori metadata instance, lihat Metadata Instans yang Didukung dan Data Pengguna dalam panduan ini.
Untuk melihat semua kategori metadata instance dari dalam instance yang sedang berjalan, gunakan yang berikut ini: IPv4 URI
http://169.254.169.254/latest/meta-data/
Alamat IP adalah alamat tautan lokal dan hanya valid dari instans. Untuk informasi selengkapnya, lihat Alamat tautan-lokal
Semua metadata instance dikembalikan sebagai teks (tipe HTTP text/plain
konten).
Permintaan untuk sumber daya metadata tertentu mengembalikan nilai yang sesuai, atau kode HTTP kesalahan 404 - Tidak Ditemukan, jika sumber daya tidak tersedia.
Permintaan untuk sumber daya metadata umum (ketika URI berakhir dengan /
karakter) mengembalikan daftar sumber daya yang tersedia, atau kode HTTP kesalahan 404 - Tidak Ditemukan jika tidak ada sumber daya tersebut. Item daftar berada pada baris terpisah, diakhiri dengan umpan baris (kode ASCII karakter 10).
Untuk permintaan yang dibuat menggunakanIMDSv1, kode HTTP kesalahan berikut dapat dikembalikan:
400 - Parameter Hilang atau Tidak Valid -
PUT
Permintaan tidak valid.401 - Tidak Sah -
GET
Permintaan menggunakan token yang tidak valid. Tindakan yang disarankan adalah membuat token baru.403 - Dilarang - Permintaan tidak diizinkan atau layanan metadata instans dimatikan.