Mengambil kredensial keamanan dari metadata instans - Amazon Elastic Compute Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengambil kredensial keamanan dari metadata instans

aplikasi pada instans akan mengambil kredensial keamanan yang disediakan oleh peran dari item metadata instans iam/security-credentials/role-name. Aplikasi ini diberi izin untuk tindakan-tindakan dan sumber daya yang telah Anda tentukan untuk peran tersebut melalui kredensial keamanan yang dikaitkan dengan peran tersebut. Kredensial keamanan ini bersifat sementara dan kami memutar kredensial tersebut secara otomatis. Kami menyediakan kredensial yang baru setidaknya lima menit sebelum kredensial lama kedaluwarsa.

Untuk informasi selengkapnya tentang metadata instans, lihat Gunakan metadata instans untuk mengelola instans Anda EC2.

Awas

Jika Anda menggunakan layanan-layanan yang menggunakan metadata instans dengan IAM role, pastikan Anda tidak mengekspos kredensial Anda saat layanan-layanan tersebut melakukan panggilan HTTP atas nama Anda. Jenis layanan yang dapat mengekspos kredensyal Anda termasuk proxy HTTP, layanan HTML/CSS validator, dan prosesor XHTML yang mendukung penyertaan XML.3.

Untuk EC2 beban kerja Amazon Anda, sebaiknya Anda mengambil kredenal sesi menggunakan metode yang dijelaskan di bawah ini. Kredensial ini harus memungkinkan beban kerja Anda membuat permintaan API AWS , tanpa perlu menggunakan sts:AssumeRole untuk mengambil peran yang sama yang sudah dikaitkan dengan instans. Kecuali jika Anda perlu meneruskan tanda sesi untuk kontrol akses berbasis atribut (ABAC) atau meneruskan kebijakan sesi guna membatasi izin peran lebih lanjut, panggilan pengambilan peran tersebut tidak diperlukan karena panggilan tersebut membuat kumpulan baru kredensial sesi peran sementara yang sama.

Jika beban kerja menggunakan peran untuk mengambil dirinya sendiri, Anda harus membuat kebijakan kepercayaan yang secara eksplisit memungkinkan peran tersebut untuk mengambil dirinya sendiri. Jika Anda tidak membuat kebijakan kepercayaan, Anda mendapatkan AccessDenied kesalahan. Untuk informasi selengkapnya, lihat Memperbarui kebijakan kepercayaan peran di Panduan Pengguna IAM.

IMDSv2
Linux

Jalankan perintah berikut dari instance Linux Anda untuk mengambil kredensyal keamanan untuk peran IAM.

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" http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
Windows

Jalankan cmdlet berikut dari instance Windows Anda untuk mengambil kredensyal keamanan untuk peran IAM.

[string]$token = Invoke-RestMethod ` -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} ` -Method PUT -Uri http://169.254.169.254/latest/api/token
Invoke-RestMethod ` -Headers @{"X-aws-ec2-metadata-token" = $token} ` -Method GET -Uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
IMDSv1
Linux

Jalankan perintah berikut dari instance Linux Anda untuk mengambil kredensyal keamanan untuk peran IAM.

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
Windows

Jalankan cmdlet berikut dari instance Windows Anda untuk mengambil kredensyal keamanan untuk peran IAM.

Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name

Berikut ini adalah output contoh. Jika Anda tidak dapat mengambil kredensyal keamanan, lihat Saya tidak dapat mengakses kredensyal keamanan sementara pada EC2 instans saya di Panduan Pengguna IAM.

{ "Code" : "Success", "LastUpdated" : "2012-04-26T16:39:16Z", "Type" : "AWS-HMAC", "AccessKeyId" : "ASIAIOSFODNN7EXAMPLE", "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "Token" : "token", "Expiration" : "2017-05-17T15:09:54Z" }

Untuk aplikasi, AWS CLI, dan Alat untuk PowerShell perintah Windows yang berjalan pada instance, Anda tidak perlu secara eksplisit mendapatkan kredensil keamanan sementara — AWS SDKs, AWS CLI, dan Alat untuk Windows PowerShell secara otomatis mendapatkan kredensyal dari layanan metadata instance dan menggunakannya. EC2 Untuk membuat panggilan di luar instans menggunakan kredensial keamanan sementara (sebagai contoh, untuk menguji kebijakan IAM), Anda harus menyediakan kunci akses, kunci rahasia, dan token sesi. Untuk informasi selengkapnya, lihat Menggunakan Kredensyal Keamanan Sementara untuk Meminta Akses ke AWS Sumber Daya di Panduan Pengguna IAM.