Gunakan kredensi sementara dengan sumber daya AWS - AWS Identity and Access Management

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

Gunakan kredensi sementara dengan sumber daya AWS

Anda dapat menggunakan kredensi keamanan sementara untuk membuat permintaan terprogram untuk AWS sumber daya menggunakan AWS CLI atau AWS API (menggunakan). AWS SDKs Kredensi sementara memberikan izin yang sama dengan kredenal keamanan jangka panjang, seperti kredensial pengguna. IAM Namun, ada beberapa perbedaan:

  • Saat Anda melakukan panggilan menggunakan kredensi keamanan sementara, panggilan harus menyertakan token sesi, yang dikembalikan bersama dengan kredensial sementara tersebut. AWS menggunakan token sesi untuk memvalidasi kredenal keamanan sementara.

  • Kredensi sementara kedaluwarsa setelah interval yang ditentukan. Setelah kredensi sementara kedaluwarsa, panggilan apa pun yang Anda lakukan dengan kredensi tersebut akan gagal, jadi Anda harus membuat kumpulan kredensi sementara yang baru. Kredensi sementara tidak dapat diperpanjang atau disegarkan di luar interval yang ditentukan asli.

  • Saat Anda menggunakan kredensial sementara untuk membuat permintaan, prinsipal Anda mungkin mencakup satu set tanda. Tanda ini berasal dari tanda sesi dan tanda yang dilampirkan pada peran yang Anda asumsikan. Untuk informasi lebih lanjut tentang tanda sesi, lihat Lulus tag sesi di AWS STS.

Jika Anda menggunakan, AWS Command Line Interface(AWS CLI) AWS SDKs, atau Tools untuk Windows PowerShell, cara untuk mendapatkan dan menggunakan kredenal keamanan sementara berbeda dengan konteksnya. Jika Anda menjalankan kode, AWS CLI, atau PowerShell perintah Alat untuk Windows di dalam sebuah EC2 instance, Anda dapat memanfaatkan peran untuk AmazonEC2. Jika tidak, Anda dapat memanggil AWS STS APIuntuk mendapatkan kredensi sementara, dan kemudian menggunakannya secara eksplisit untuk melakukan panggilan ke layanan. AWS

catatan

Anda dapat menggunakan AWS Security Token Service (AWS STS) untuk membuat dan menyediakan kredenal keamanan sementara kepada pengguna tepercaya yang dapat mengontrol akses ke sumber daya Anda AWS . Untuk informasi lebih lanjut tentang AWS STS, lihatKredensi keamanan sementara di IAM. AWS STS adalah layanan global yang memiliki titik akhir default dihttps://sts.amazonaws.com. Titik akhir ini berada di Wilayah AS Timur (Virginia N.), meskipun kredensi yang Anda dapatkan dari titik ini dan titik akhir lainnya valid secara global. Kredensial ini bekerja dengan layanan dan sumber daya di Wilayah mana pun. Anda juga dapat memilih untuk melakukan AWS STS API panggilan ke titik akhir di salah satu Wilayah yang didukung. Hal ini dapat mengurangi latensi dengan membuat permintaan dari server di Wilayah yang secara geografis lebih dekat dengan Anda. Tidak peduli dari Wilayah mana kredensial Anda berasal, mereka bekerja secara global. Untuk informasi selengkapnya, lihat Kelola AWS STS dalam sebuah Wilayah AWS.

Menggunakan kredensi sementara di instans Amazon EC2

Jika Anda ingin menjalankan AWS CLI perintah atau kode di dalam EC2 instance, cara yang disarankan untuk mendapatkan kredensi adalah dengan menggunakan peran untuk Amazon. EC2 Anda membuat IAM peran yang menentukan izin yang ingin Anda berikan kepada aplikasi yang berjalan pada EC2 instance. Saat Anda meluncurkan instans, Anda mengaitkan peran dengan instans tersebut.

Aplikasi, AWS CLI, dan Alat untuk PowerShell perintah Windows yang berjalan pada instance kemudian bisa mendapatkan kredenal keamanan sementara otomatis dari metadata instance. Anda tidak perlu secara eksplisit mendapatkan kredensial kerahasiaan keamanan sementara. The AWS SDKs, AWS CLI, and Tools untuk Windows PowerShell secara otomatis mendapatkan kredensialnya dari EC2 Instance Metadata Service (IMDS) dan menggunakannya. Kredensial sementara memiliki izin yang Anda tentukan untuk peran yang terkait dengan instans.

Untuk informasi selengkapnya dan untuk contoh, lihat berikut ini:

Menggunakan kredensi keamanan sementara dengan AWS SDKs

Untuk menggunakan kredensi keamanan sementara dalam kode, Anda secara terprogram memanggil AWS STS API like AssumeRole dan mengekstrak kredenal dan token sesi yang dihasilkan. Anda kemudian menggunakan nilai-nilai tersebut sebagai kredensi untuk panggilan berikutnya ke. AWS Contoh berikut menunjukkan pseudocode untuk cara menggunakan kredenal keamanan sementara jika Anda menggunakan: AWS SDK

assumeRoleResult = AssumeRole(role-arn); tempCredentials = new SessionAWSCredentials( assumeRoleResult.AccessKeyId, assumeRoleResult.SecretAccessKey, assumeRoleResult.SessionToken); s3Request = CreateAmazonS3Client(tempCredentials);

Untuk contoh yang ditulis dalam Python (menggunakan AWS SDK for Python (Boto)), lihatBeralih ke IAM peran (AWS API). Contoh ini menunjukkan cara melakukan panggilan AssumeRole untuk mendapatkan kredensial keamanan sementara dan kemudian menggunakan kredensial tersebut untuk melakukan panggilan ke Amazon S3

Untuk detail tentang cara menelepon AssumeRoleGetFederationToken, dan API operasi lainnya, lihat AWS Security Token Service APIReferensi. Untuk informasi tentang mendapatkan kredensi keamanan sementara dan token sesi dari hasilnya, lihat dokumentasi SDK yang sedang Anda kerjakan. Anda dapat menemukan dokumentasi untuk semua AWS SDKs pada halaman AWS dokumentasi utama, di bagian SDKsdan Toolkit.

Anda harus memastikan bahwa Anda mendapatkan set kredensial baru sebelum kredensial yang lama kedaluwarsa. Di beberapaSDKs, Anda dapat menggunakan penyedia yang mengelola proses penyegaran kredensi untuk Anda; periksa dokumentasi untuk yang SDK Anda gunakan.

Menggunakan kredensial keamanan sementara dengan AWS CLI

Anda dapat menggunakan kredensial keamanan sementara dengan AWS CLI Ini dapat berguna untuk menguji kebijakan.

Menggunakan AWS CLI, Anda dapat memanggil AWS STS APIsuka AssumeRole atau GetFederationToken dan kemudian menangkap output yang dihasilkan. Contoh berikut ini menunjukkan panggilan ke AssumeRole yang mengirimkan output ke file. Dalam contoh, profile parameter diasumsikan sebagai profil dalam file AWS CLI konfigurasi. Hal ini juga diasumsikan untuk referensi kredensi untuk IAM pengguna yang memiliki izin untuk mengambil peran.

aws sts assume-role --role-arn arn:aws:iam::123456789012:role/role-name --role-session-name "RoleSession1" --profile IAM-user-name > assume-role-output.txt

Setelah perintah selesai, Anda dapat mengekstrak access key ID, secret access key, dan token sesi dari mana pun Anda merutekannya. Anda dapat melakukannya secara manual atau dengan menggunakan skrip. Kemudian Anda dapat menetapkan nilai-nilai ini ke variabel lingkungan.

Ketika Anda menjalankan AWS CLI perintah, AWS CLI mencari kredensi dalam urutan tertentu—pertama dalam variabel lingkungan dan kemudian di file konfigurasi. Oleh karena itu, setelah Anda memasukkan kredensi sementara ke dalam variabel lingkungan, kredensialnya akan AWS CLI digunakan secara default. (Jika Anda menentukan profile parameter dalam perintah, AWS CLI melewatkan variabel lingkungan. Sebagai gantinya, AWS CLI tampilan dalam file konfigurasi, yang memungkinkan Anda mengganti kredensi dalam variabel lingkungan jika perlu.)

Contoh berikut menunjukkan bagaimana Anda dapat mengatur variabel lingkungan untuk kredenal keamanan sementara dan kemudian memanggil perintah AWS CLI . Karena tidak ada profile parameter yang disertakan dalam AWS CLI perintah, AWS CLI mencari kredensi terlebih dahulu dalam variabel lingkungan dan oleh karena itu menggunakan kredenal sementara.

Linux

$ export AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE $ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY $ export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of session token> $ aws ec2 describe-instances --region us-west-1

Windows

C:\> SET AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE C:\> SET AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> SET AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of token> C:\> aws ec2 describe-instances --region us-west-1

Menggunakan kredensi keamanan sementara dengan operasi API

Jika Anda membuat HTTPS API permintaan langsung AWS, Anda dapat menandatangani permintaan tersebut dengan kredenal keamanan sementara yang Anda dapatkan dari AWS Security Token Service ()AWS STS. Untuk melakukan ini, Anda menggunakan ID kunci akses dan kunci akses rahasia yang Anda terima AWS STS. Anda menggunakan access key ID dan secret access key dengan cara yang sama seperti Anda menggunakan kredensial jangka panjang untuk menandatangani permintaan. Anda juga menambahkan token sesi yang Anda terima ke API permintaan Anda AWS STS. Anda menambahkan token sesi ke HTTP header atau ke parameter string kueri bernamaX-Amz-Security-Token. Anda menambahkan token sesi ke HTTP header atau parameter string kueri, tetapi tidak keduanya. Untuk informasi selengkapnya tentang penandatanganan HTTPS API permintaan, lihat Menandatangani AWS API Permintaan di Referensi Umum AWS.

Informasi lain

Untuk informasi selengkapnya tentang penggunaan AWS STS dengan AWS layanan lain, lihat tautan berikut: