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 yang menggunakan metadata instans dengan IAM peran, pastikan Anda tidak mengekspos kredensialnya saat layanan melakukan HTTP panggilan atas nama Anda. Jenis layanan yang dapat mengekspos kredensional Anda termasuk HTTP proxy, layanan HTML CSS /validator, dan prosesor yang mendukung inklusi. XML XML

Untuk EC2 beban kerja Amazon Anda, sebaiknya Anda mengambil kredenal sesi menggunakan metode yang dijelaskan di bawah ini. Kredensil ini harus memungkinkan beban kerja Anda untuk membuat AWS API permintaan, tanpa perlu menggunakan sts:AssumeRole untuk mengambil peran yang sama yang sudah dikaitkan dengan instance. Kecuali Anda perlu meneruskan tag sesi untuk kontrol akses berbasis atribut (ABAC) atau meneruskan kebijakan sesi untuk membatasi izin peran lebih lanjut, panggilan asumsi peran tersebut tidak diperlukan karena panggilan tersebut membuat kumpulan baru kredenal 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 Memodifikasi kebijakan kepercayaan peran di Panduan IAM Pengguna.

Perintah berikut mengambil kredensi keamanan untuk peran IAM bernama. s3access

cURL

IMDSv2

[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" http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access

IMDSv1

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access
PowerShell

IMDSv2

PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access

IMDSv1

PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access

Berikut ini adalah output contoh. Jika Anda tidak dapat mengambil kredensi keamanan, lihat Saya tidak dapat mengakses kredensil keamanan sementara pada EC2 instance 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 kredensil dari layanan metadata instance dan menggunakannya. EC2 Untuk melakukan panggilan di luar instance menggunakan kredensil keamanan sementara (misalnya, untuk menguji IAM kebijakan), Anda harus memberikan kunci akses, kunci rahasia, dan token sesi. Untuk informasi selengkapnya, lihat Menggunakan Kredensial Keamanan Sementara untuk Meminta Akses ke AWS Sumber Daya di IAMPanduan Pengguna.