Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
IMDSpenyedia kredensi
Instance Metadata Service (IMDS) menyediakan data tentang instans yang dapat Anda gunakan untuk mengonfigurasi atau mengelola instance yang sedang berjalan. Untuk informasi selengkapnya tentang data yang tersedia, lihat Bekerja dengan metadata instans di EC2Panduan Pengguna Amazon. Amazon EC2 menyediakan endpoint lokal yang tersedia untuk instans yang dapat memberikan berbagai bit informasi ke instans. Jika instance memiliki peran yang dilampirkan, itu dapat memberikan serangkaian kredenal yang valid untuk peran itu. Endpoint SDKs dapat menggunakan endpoint tersebut untuk menyelesaikan kredensi sebagai bagian dari rantai penyedia kredensi default mereka. Instance Metadata Service Version 2 (IMDSv2), versi yang lebih aman IMDS yang menggunakan token sesi, digunakan secara default. Jika gagal karena kondisi yang tidak dapat dicoba ulang (kode HTTP kesalahan 403, 404, 405), IMDSv1 digunakan sebagai fallback.
Konfigurasikan fungsi ini dengan menggunakan yang berikut:
AWS_EC2_METADATA_DISABLED
- variabel lingkungan-
Apakah akan mencoba menggunakan Amazon EC2 Instance Metadata Service (IMDS) untuk mendapatkan kredensi atau tidak.
Nilai default:
false
.Nilai yang valid:
-
true
— Jangan gunakan IMDS untuk mendapatkan kredensi. -
false
— Gunakan IMDS untuk mendapatkan kredensi.
-
ec2_metadata_v1_disabled
- Pengaturan AWSconfig
file bersamaAWS_EC2_METADATA_V1_DISABLED
- variabel lingkunganaws.disableEc2MetadataV1
- properti JVM sistem: Hanya Java/Kotlin-
Apakah akan menggunakan Instance Metadata Service Version 1 (IMDSv1) sebagai fallback jika gagal atau tidak. IMDSv2
catatan
Baru SDKs tidak mendukung IMDSv1 dan, dengan demikian, tidak mendukung pengaturan ini. Untuk detailnya, lihat tabelKompatibilitas dengan AWS SDKs.
Nilai default:
false
.Nilai yang valid:
-
true
— Jangan gunakan IMDSv1 sebagai fallback. -
false
— Gunakan IMDSv1 sebagai fallback.
-
ec2_metadata_service_endpoint
- Pengaturan AWSconfig
file bersamaAWS_EC2_METADATA_SERVICE_ENDPOINT
- variabel lingkunganaws.ec2MetadataServiceEndpoint
- properti JVM sistem: Hanya Java/Kotlin-
Titik akhir dari. IMDS
Nilai default: Jika
ec2_metadata_service_endpoint_mode
samaIPv4
, maka titik akhir default adalah.http://169.254.169.254
Jikaec2_metadata_service_endpoint_mode
samaIPv6
, maka titik akhir default adalah.http://[fd00:ec2::254]
Nilai yang valid: ValidURI.
ec2_metadata_service_endpoint_mode
- Pengaturan AWSconfig
file bersamaAWS_EC2_METADATA_SERVICE_ENDPOINT_MODE
- variabel lingkunganaws.ec2MetadataServiceEndpointMode
- properti JVM sistem: Hanya Java/Kotlin-
Modus endpoint dari. IMDS
Nilai default:
IPv4
.Nilai yang valid:
IPv4
,IPv6
.
catatan
Penyedia IMDS kredensi adalah bagian dari. Rantai penyedia kredensi Namun, penyedia IMDS kredensi hanya diperiksa setelah beberapa penyedia lain yang ada di seri ini. Oleh karena itu, jika Anda ingin program Anda menggunakan kredensi penyedia ini, Anda harus menghapus penyedia kredensi valid lainnya dari konfigurasi Anda atau menggunakan profil yang berbeda. Atau, alih-alih mengandalkan rantai penyedia kredensi untuk secara otomatis menemukan penyedia mana yang mengembalikan kredensi yang valid, tentukan penggunaan penyedia kredensi dalam IMDS kode. Anda dapat menentukan sumber kredensi secara langsung saat Anda membuat klien layanan.
Keamanan untuk IMDS kredensional
Secara default, jika tidak AWS SDK dikonfigurasi dengan kredensi yang valid, SDK akan mencoba menggunakan Amazon EC2 Instance Metadata Service (IMDS) untuk mengambil kredensial untuk peran. AWS Perilaku ini dapat dinonaktifkan dengan menyetel variabel AWS_EC2_METADATA_DISABLED
lingkungan ketrue
. Ini mencegah aktivitas jaringan yang tidak perlu dan meningkatkan keamanan pada jaringan yang tidak tepercaya di mana Layanan Metadata EC2 Instans Amazon dapat ditiru.
catatan
AWS SDKklien yang dikonfigurasi dengan kredensi yang valid tidak akan pernah digunakan IMDS untuk mengambil kredenal, terlepas dari pengaturan ini.
Menonaktifkan penggunaan kredensional Amazon EC2 IMDS
Bagaimana Anda mengatur variabel lingkungan ini tergantung pada sistem operasi apa yang digunakan serta apakah Anda ingin perubahan itu persisten atau tidak.
Linux dan macOS
Pelanggan yang menggunakan Linux atau macOS dapat mengatur variabel lingkungan ini dengan perintah berikut:
$ export AWS_EC2_METADATA_DISABLED=true
Jika Anda ingin pengaturan ini persisten di beberapa sesi shell dan restart sistem, Anda dapat menambahkan perintah di atas ke file profil shell Anda, seperti.bash_profile
,.zsh_profile
, atau.profile
.
Windows
Pelanggan yang menggunakan Windows dapat mengatur variabel lingkungan ini dengan perintah berikut:
$ set AWS_EC2_METADATA_DISABLED=true
Jika Anda ingin pengaturan ini persisten di beberapa sesi shell dan restart sistem dapat menggunakan perintah berikut sebagai gantinya:
$ setx AWS_EC2_METADATA_DISABLED=true
catatan
setxPerintah tidak menerapkan nilai ke sesi shell saat ini, jadi Anda perlu memuat ulang atau membuka kembali shell agar perubahan diterapkan.
Kompatibilitas dengan AWS SDKs
Berikut ini SDKs mendukung fitur dan pengaturan yang dijelaskan dalam topik ini. Setiap pengecualian sebagian dicatat. Setiap pengaturan properti JVM sistem didukung oleh AWS SDK for Java dan AWS SDK for Kotlin satu-satunya.
SDK | Didukung | Catatan atau informasi lebih lanjut |
---|---|---|
AWS CLI v2 | Ya | |
SDKuntuk C ++ | Ya | |
SDKuntuk Go V2 (1.x) |
Ya | |
SDKuntuk Go 1.x (V1) | Ya | Untuk menggunakan pengaturan config file bersama, Anda harus mengaktifkan pemuatan dari file konfigurasi; lihat Sesi. |
SDKuntuk Java 2.x | Ya | |
SDKuntuk Java 1.x | Parsial | JVMproperti sistem: Gunakan com.amazonaws.sdk.disableEc2MetadataV1 sebagai penggantiaws.disableEc2MetadataV1 ; aws.ec2MetadataServiceEndpoint dan aws.ec2MetadataServiceEndpointMode tidak didukung. |
SDKuntuk JavaScript 3.x | Ya | |
SDKuntuk JavaScript 2.x | Ya | |
SDKuntuk Kotlin | Ya | Tidak menggunakan IMDSv1 fallback. |
SDKuntuk. NET3.x | Ya | |
SDKuntuk PHP 3.x | Ya | |
SDKuntuk Python (Boto3) |
Ya | |
SDKuntuk Ruby 3.x | Ya | |
SDKuntuk Rust | Ya | Tidak menggunakan IMDSv1 fallback. |
Alat untuk PowerShell | Ya | Anda dapat menonaktifkan IMDSv1 fallback secara eksplisit dalam kode menggunakan. [Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true |