Kueri properti instans seperti ID dan alamat IP dari dalam Instance ECS, serta terapkan mode penguatan keamanan untuk mencegah serangan SSRF.
Dapatkan instance metadata
Instance metadata mencakup atribut seperti ID instans, konfigurasi jaringan, dan kredensial akses.
Metode 1: Mode penguatan keamanan (direkomendasikan)
Dapatkan token akses sementara, lalu sertakan dalam permintaan metadata Anda.
Linux
-
Masuk ke instans.
-
Dapatkan token sementara.
TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:21600"`Parameter X-aliyun-ecs-metadata-token-ttl-seconds menentukan TTL token dalam detik. Nilai yang valid: 1 hingga 21600.
-
Sertakan token dalam permintaan Anda untuk mengambil metadata.
curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/meta-data/instance-idGanti
instance-iddengan item metadata lain sesuai kebutuhan, seperti mac atau hostname.Jika berhasil, terminal hanya menampilkan string ID instans, misalnya,
i-bp1******.
Windows
-
Masuk ke instans.
-
Dapatkan token sementara.
$token = Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://100.100.100.200/latest/api/tokenParameter X-aliyun-ecs-metadata-token-ttl-seconds menentukan TTL token dalam detik. Nilai yang valid: 1 hingga 21600.
-
Sertakan token dalam permintaan Anda untuk mengambil metadata.
Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token" = $token} -Method GET -Uri http://100.100.100.200/latest/meta-data/instance-idGanti
instance-iddengan item metadata lain sesuai kebutuhan, seperti mac atau hostname.Jika berhasil, terminal hanya menampilkan string ID instans, misalnya,
i-bp1******.
Metode 2: Mode Normal
Mode Normal tidak aman dan tidak direkomendasikan.
-
Linux:
# Kirim permintaan GET untuk mendapatkan ID instans. curl http://100.100.100.200/latest/meta-data/instance-id -
Windows:
# Kirim permintaan GET untuk mendapatkan ID instans. Invoke-RestMethod -Uri http://100.100.100.200/latest/meta-data/instance-id -Method Get
Hanya aktifkan mode penguatan keamanan
Aktifkan Security Hardening Mode agar metadata hanya dapat diakses dengan token. Permintaan dalam mode normal akan mengembalikan error 403 - Forbidden. Secara default, Instance ECS mengizinkan akses tanpa token (mode normal), yang berisiko tinggi terhadap serangan SSRF.
Serangan umum mengeksploitasi fitur aplikasi seperti mengunduh gambar dari URL eksternal. Penyerang membuat permintaan yang memancing server untuk mengakses layanan metadata dan mencuri kredensial sementara peran RAM. Jika peran tersebut memiliki izin tingkat tinggi, penyerang dapat mengambil alih sumber daya cloud Anda atau seluruh akun Alibaba Cloud Anda.
Aktifkan mode penguatan keamanan untuk instans baru
Konsol
Saat Anda membuat instans, atur ke Security Hardening Mode.
Jika Security Hardening Mode tidak tersedia saat membuat instans dari gambar kustom, upgrade gambarnya.
CLI
Panggil RunInstances atau CreateInstance dengan HttpEndpoint=enabled dan HttpTokens=required. Contoh:
Contoh ini membuat instans Linux dalam security hardening mode.
aliyun ecs RunInstances \
--region cn-hangzhou \
--RegionId 'cn-hangzhou' \
--ImageId 'aliyun_3_x64_20G_alibase_20250629.vhd' \
--InstanceType 'ecs.g7.large' \
--VSwitchId 'vsw-bp1******trg' \
--SecurityGroupId 'sg-bp1******dgl' \
--SystemDisk.Size 40 \
--SystemDisk.Category cloud_essd \
--HttpEndpoint enabled \
--HttpTokens required
API
Panggil RunInstances atau CreateInstance dengan HttpEndpoint=enabled dan HttpTokens=required.
Upgrade instans yang sudah ada
Cakupan
-
Instans Windows: Security Hardening Mode tidak didukung. Memaksakan mode ini menyebabkan kegagalan inisialisasi dan mengganggu modifikasi hostname serta aktivasi KMS.
-
Instans Linux: Didukung. Lakukan pemeriksaan dependensi dan modifikasi pada bagian berikut sebelum melakukan upgrade.
Langkah 1: Periksa dan upgrade kode serta dependensi
Sebelum beralih ke Security Hardening Mode, pastikan instans dan semua aplikasi yang dideploy memenuhi persyaratan berikut:
-
Versi Cloud-init harus 23.2.2 atau lebih baru. Jalankan
cloud-init --versionuntuk memeriksa. Jika versi lebih lama dari 23.2.2, upgrade Cloud-init terlebih dahulu — jika tidak, instans gagal memulai setelah beralih mode. -
Semua kode aplikasi dan skrip harus mengakses instance metadata menggunakan Metode 1: Security hardening mode.
PentingJika kode Anda menggunakan pustaka Credentials untuk mendapatkan token STS guna konfigurasi SDK, upgrade ke versi yang mendukung security hardening mode.
Setelah upgrade, verifikasi bahwa tidak ada lagi akses dalam mode normal. Lihat Bagaimana cara mendeteksi apakah Instance ECS diakses dalam mode normal?. Kemudian aktifkan Security Hardening Mode untuk instans tersebut.
Langkah 2: Aktifkan mode penguatan keamanan
Konsol
-
Buka halaman Konsol ECS - Instans. Pilih wilayah dan kelompok sumber daya.
-
Pada kolom Tindakan, klik .
-
Nyalakan sakelar Enable Instance Metadata Access Channel, atur Instance Metadata Access Mode ke Security Hardening Mode, lalu klik OK.

CLI
Panggil ModifyInstanceMetadataOptions dengan HttpEndpoint=enabled dan HttpTokens=required untuk mengaktifkan Security Hardening Mode. Contoh:
aliyun ecs ModifyInstanceMetadataOptions \
--region cn-hangzhou \
--RegionId 'cn-hangzhou' \
--InstanceId 'i-bp1******ke' \
--HttpEndpoint enabled \
--HttpTokens required
API
Panggil ModifyInstanceMetadataOptions dengan HttpEndpoint=enabled dan HttpTokens=required untuk mengaktifkan Security Hardening Mode.
Setelah beralih, pantau akses metadata dan status aplikasi. Jika terjadi masalah, kembalikan ke Normal And Security Hardening Modes untuk memulihkan layanan, lalu ulangi Langkah 1: Periksa dan upgrade kode serta dependensi.
Detail metadata instans
Metadata diorganisasikan dalam hierarki menyerupai direktori. Mengakses suatu direktori akan mengembalikan entri atau subdirektori-nya. Misalnya, meta-data/instance/ mengembalikan instance-name dan instance-type.
|
Kategori |
Metadata |
Deskripsi |
Contoh |
|
Informasi Instans Dasar |
|
ID instans. |
|
|
|
Nama instans. |
|
|
|
|
Hostname. |
|
|
|
|
Tipe instans. |
|
|
|
|
Nomor seri. |
|
|
|
|
Wilayah instans. |
|
|
|
|
Zona instans. |
|
|
|
|
ID akun Alibaba Cloud pemilik instans. |
|
|
|
|
Nilai tag instans tertentu. Untuk mengaktifkan fitur ini, panggil ModifyInstanceMetadataOptions dan atur |
|
|
|
Informasi image |
|
ID image yang digunakan untuk membuat instans. |
|
|
|
Kode produk dari Gambar Marketplace Alibaba Cloud. |
|
|
|
|
Metode penagihan dari Gambar Marketplace Alibaba Cloud. |
|
|
|
|
Sumber Manajer paket (seperti yum atau apt) yang digunakan oleh instans Linux untuk pembaruan. |
|
|
|
Konfigurasi jaringan dasar |
|
Jenis jaringan. Hanya VPC yang didukung. |
|
|
|
ID VPC dari instans. |
|
|
|
|
Blok CIDR dari VPC instans. |
|
|
|
|
ID vSwitch dari instans. |
|
|
|
|
Blok CIDR dari vSwitch instans. |
|
|
|
|
Bandwidth internal outbound maksimum dari tipe instans. Satuan: Kbit/s. |
|
|
|
|
Konfigurasi DNS. |
|
|
|
|
Alamat server NTP. |
|
|
|
Alamat IP ENI primer |
|
Alamat MAC dari instans. Untuk instans dengan beberapa NIC, hanya alamat MAC pada eth0 yang dikembalikan. |
|
|
|
Alamat IPv4 privat dari ENI primer. |
|
|
|
|
Alamat IPv4 publik dari ENI primer instans. |
|
|
|
|
Alamat IPv4 publik statis atau Alamat IP Elastis yang disambungkan ke ENI primer. |
|
|
|
Detail antarmuka jaringan elastis |
|
ID ENI. Ganti [mac] dengan alamat MAC instans dari item metadata mac. Hal yang sama berlaku untuk item-item berikutnya. |
|
|
|
ID VPC dari ENI. |
|
|
|
|
ID vSwitch dari ENI. |
|
|
|
|
Alamat IP pribadi utama dari ENI. |
|
|
|
|
Alamat IPv4 privat yang ditetapkan ke ENI. |
|
|
|
|
Awalan IPv4 privat yang ditetapkan ke ENI. |
|
|
|
|
Subnet mask dari ENI. |
|
|
|
|
Gateway IPv4 dari ENI. |
|
|
|
|
Blok CIDR IPv4 dari vSwitch ENI. |
|
|
|
|
Blok CIDR IPv4 dari VPC ENI. |
|
|
|
|
Alamat IPv6 yang ditetapkan ke ENI. Hanya untuk instans jenis VPC yang telah dikonfigurasi IPv6. |
|
|
|
|
Awalan IPv6 yang ditetapkan ke ENI. |
|
|
|
|
Gateway IPv6 dari VPC ENI. |
|
|
|
|
Blok CIDR IPv6 dari vSwitch ENI. Hanya untuk instans jenis VPC yang telah dikonfigurasi IPv6. |
|
|
|
|
Blok CIDR IPv6 dari VPC ENI. Hanya untuk instans jenis VPC yang telah dikonfigurasi IPv6. |
|
|
|
Informasi disk |
|
Nomor seri disk. |
|
|
|
ID disk. |
|
|
|
|
Nama disk. |
|
|
|
Keamanan dan kredensial |
|
Kunci publik, tersedia hanya jika disediakan saat launch. |
|
|
|
Kredensial keamanan temporary dari Peran RAM yang terkait dengan instans. Ganti [role-name] dengan nama Peran RAM. Kredensial kedaluwarsa pada waktu yang tercantum di bidang Expiration; panggil lagi untuk mendapatkan kredensial baru. |
|
|
|
Atribut instans lanjutan |
|
Solusi virtualisasi ECS. Virt 1.0 dan Virt 2.0 didukung. |
|
|
|
Nomor build internal. |
|
|
|
|
Waktu penghentian dan rilis terjadwal untuk spot instans, dalam format UTC+0 yyyy-MM-ddThh:mm:ssZ. |
|
|
|
Konfigurasi khusus Windows |
|
Server aktivasi KMS untuk instans Windows. |
|
|
|
Server pembaruan untuk instans Windows. |
|
|
|
|
Server pemantauan status pembaruan untuk instans Windows. |
|
FAQ
-
Apa itu serangan SSRF, dan bagaimana mode penguatan keamanan melindungi dari serangan tersebut?
SSRF adalah kerentanan di mana penyerang memancing server untuk membuat permintaan jaringan tidak sah guna mengakses sistem internal seperti layanan metadata atau database. Misalnya, penyerang dapat mengirimkan URL yang berisi
http://100.100.100.200/latest/meta-data/untuk menipu aplikasi agar mengambil dan mengembalikan metadata sensitif.Secara default, instans ECS mengizinkan akses tanpa token (mode normal). Mode penguatan keamanan menerapkan validasi token: klien terlebih dahulu mengirim permintaan PUT untuk mendapatkan token sementara, lalu menyertakannya dalam permintaan GET. Karena serangan SSRF tidak dapat memulai permintaan PUT, mereka tidak bisa mendapatkan token, sehingga secara efektif memblokir akses tidak sah.
-
Saya tidak dapat mengakses metadata instans menggunakan perintah dalam mode penguatan keamanan. Bagaimana cara memperbaikinya?
Galat perintah umum:
-
TTL kredensial akses metadata instans berada di luar rentang (400 - Missing or Invalid Parameters)
TTL harus antara 1 hingga 21.600 detik. Nilai di luar rentang ini akan mengembalikan 400 - Missing or Invalid Parameters.
curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds: 21700" -
Permintaan berisi header X-Forwarded-For (403 - Forbidden)
curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-Forwarded-For: www.ba****.com" -
Kredensial akses metadata instans yang ditentukan tidak valid (401 - Unauthorized)
curl -H "X-aliyun-ecs-metadata-token: aaa" -v http://100.100.100.200/latest/meta-data/
-
-
Apa yang harus saya lakukan jika akses frekuensi tinggi saya ke layanan metadata dibatasi lajunya?
Layanan metadata memiliki batas laju akses. Ambil item yang jarang berubah—seperti instance-id—sekali saat startup dan simpan di cache lokal dengan TTL yang wajar.
-
Aplikasi saya berhenti berfungsi setelah saya mengubah mode akses metadata instans ke mode penguatan keamanan. Bagaimana cara memecahkan masalah ini?
Aplikasi atau skrip pada instans mungkin masih menggunakan mode normal. Ikuti panduan di Upgrade an existing instance untuk memeriksa dan memperbaruinya.
-
Bisakah saya mengakses alamat metadata dari host lokal?
Tidak.
100.100.100.200adalah alamat link-lokal yang hanya dapat dijangkau dari dalam instans ECS melalui antarmuka jaringan virtualnya. Permintaan dari luar instans tidak dapat diarahkan ke alamat ini. -
Apa yang harus saya lakukan jika saya tidak dapat memilih mode penguatan keamanan saat membuat instans dari gambar kustom?
Saat membuat instans ECS dari gambar Linux kustom, Anda mungkin menemukan bahwa Security Hardening Mode tidak tersedia. Hal ini berarti gambar tersebut tidak memenuhi persyaratan. Perbarui gambar tersebut sebagai berikut:
-
Buat instans sementara: Gunakan gambar kustom untuk membuat instans ECS sementara.
-
Modifikasi instans sementara: Pada instans sementara, lakukan modifikasi berikut. Lihat Upgrade an existing instance.
-
Upgrade Cloud-init: Upgrade Cloud-init ke versi 23.2.2 atau lebih baru.
-
Modifikasi aplikasi dan skrip: Perbarui semua aplikasi atau skrip yang menggunakan mode normal menjadi mode penguatan keamanan.
-
-
Buat gambar baru dan perbarui atributnya: Buat gambar kustom baru dari instans tersebut. Kemudian panggil ModifyImageAttribute untuk mengatur
Features.ImdsSupportke `v2`. -
Lepaskan sumber daya: Lepaskan instans sementara setelah gambar baru dibuat.
-
-
Versi tool Credentials mana yang mendukung mode penguatan keamanan?
Versi Credentials sebelumnya tidak mendukung akses metadata dalam mode penguatan keamanan. Beralih ke mode penguatan keamanan tanpa melakukan upgrade akan mencegah SDK mendapatkan token STS, sehingga menyebabkan gangguan layanan.
Upgrade dependensi Credentials ke versi yang didukung sebelum mengganti mode:
-
Java: credentials-java versi >=
0.3.10. -
Node.js: credentials versi >=
2.3.1. -
PHP: credentials versi >=
1.2.0. -
Python: alibabacloud_credentials versi >=
0.3.6. -
Go: credentials-go versi >=
1.3.10.
-
-
Bagaimana cara mendeteksi apakah instans ECS sedang diakses dalam mode normal?
Gunakan metode berikut untuk mendeteksi dan melokalisasi proses yang mengakses metadata dalam mode normal.
Metode 1: Gunakan CloudMonitor untuk memeriksa akses mode normal
Periksa data pemantauan metadata ECS di konsol CloudMonitor untuk menentukan apakah instans tersebut diakses dalam mode normal.
-
Masuk ke CloudMonitor console.
-
Pada panel navigasi kiri, pilih . Cari dan buka halaman pemantauan ECS Metadata.
-
Lihat metrik Successful Normal Mode Accesses untuk instans target.
-
Jika metrik ini tidak bernilai 0, berarti instans tersebut sedang diakses dalam mode normal. Temukan dan upgrade aplikasi yang menggunakan mode normal tersebut.
Metode 2: Gunakan plugin Cloud Assistant untuk melokalisasi proses tertentu
Gunakan plugin Cloud Assistant untuk melokalisasi proses yang mengakses metadata dalam mode normal.
Sistem operasi yang didukung
-
Alibaba Cloud Linux 3
-
Alibaba Cloud Linux 3 Pro
-
Anolis OS 8
-
CentOS Stream 8/9
-
CentOS 8
-
Ubuntu: 20/24
-
Debian:10,11,12
-
Fedora 35+
-
AlmaLinux 8/9
-
Rocky Linux 8/9
-
Red Hat Enterprise Linux 8/9
-
Untuk Red Hat, unduh paket RPM untuk menginstal Cloud Assistant Agent.
-
SUSE 15.1/15.2/15.3/15.4/15.5/15.6
-
OpenSuse 15.2/15.3/15.4/15.5/15.6
Prosedur
-
Instal dan aktifkan plugin Cloud Assistant
Masuk ke instans ECS dan instal layanan pemantauan. Layanan ini mengonsumsi sebagian sumber daya instans.
# Deploy the monitoring service. sudo acs-plugin-manager --exec --plugin ACS-ECS-ImdsPacketAnalyzer # Check the status of the monitoring service. sudo systemctl status imds_tracer_tool
-
Lokalisasi proses bermasalah Periksa proses mana yang masih mengakses metadata dalam mode normal. Log menampilkan ID proses (PID).
cat /var/log/imds/imds-trace.* | grep WARNING
-
Analisis dan modifikasi Temukan aplikasi atau skrip yang sesuai dengan PID tersebut dan upgrade ke mode penguatan keamanan.
-