Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Versi IMDS di Snowball Edge
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 menggunakan IMDSv1, IMDSv2, atau keduanya. Ini juga tergantung pada jenis AMI yang berjalan di instance EC2 -compatible. Beberapa AMIs, seperti yang menjalankan Ubuntu 20.04, memerlukan IMDSv2. Layanan metadata instance membedakan antara IMDSv1 dan IMDSv2 permintaan berdasarkan keberadaan PUT
atau header. GET
IMDSv2menggunakan kedua header ini. IMDSv1 hanya 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 kerentanan SSRF dengan penyempurnaan
IMDSv2 di Tepi Snowball
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.
Permintaan
PUT
harus menyertakan header yang menentukan waktu hidup (TTL) untuk token, dalam detik, hingga maksimum 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. 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.
HTTP GET
dan HEAD
metode diperbolehkan 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. IMDS for Snow tidak memiliki kemampuan untuk memodifikasi batas hop pada PUT
respons.
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. Perintah contoh berikut mendapatkan ID AMI yang digunakan untuk meluncurkan instance dan menyimpannya di $TOKEN
dibuat pada 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
IMDSv1 di Tepi Snowball
IMDSv1 menggunakan 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 URI berikut: IPv4
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 instans ditampilkan sebagai teks (tipe konten HTTP text/plain
).
Permintaan untuk sumber daya metadata tertentu mengembalikan nilai yang sesuai, atau kode kesalahan HTTP 404 - Tidak Ditemukan, jika sumber daya tidak tersedia.
Permintaan untuk sumber daya metadata umum (ketika URI diakhiri dengan /
karakter) mengembalikan daftar sumber daya yang tersedia, atau kode kesalahan 404 - Tidak Ditemukan HTTP jika tidak ada sumber daya tersebut. Item daftar berada pada baris terpisah, diakhiri dengan umpan baris (kode karakter ASCII 10).
Untuk permintaan yang dibuat menggunakan IMDSv1, kode kesalahan HTTP 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.