Menggunakan kredensial 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.

Menggunakan kredensial sementara dengan sumber daya AWS.

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

  • Saat Anda melakukan panggilan menggunakan kredensial keamanan sementara, panggilan harus menyertakan token sesi, yang dikembalikan di sepanjang kredensial sementara tersebut. AWS menggunakan token sesi untuk memvalidasi kredensial 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 Melewati tag sesi di AWS STS.

Jika Anda menggunakan AWSSDK, AWS Command Line Interface(AWS CLI), 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 instans EC2, Anda dapat memanfaatkan peran untuk Amazon EC2. Jika tidak, Anda dapat menghubungi API AWS STS untuk mendapatkan kredensial sementara, kemudian menggunakannya secara eksplisit untuk melakukan panggilan ke layanan AWS.

catatan

Anda dapat menggunakan AWS Security Token Service (AWS STS) untuk membuat dan menyediakan kredensial keamanan sementara yang dapat mengontrol akses ke sumber daya AWS Anda. Untuk informasi lebih lanjut tentang AWS STS, lihat Kredensial keamanan sementara di IAM. AWS STS adalah layanan global yang memiliki titik akhir default di https://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 panggilan API AWS STS 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 Mengelola AWS STS dalam Wilayah AWS.

Menggunakan kredensial sementara di instans Amazon EC2

Jika Anda ingin menjalankan AWS CLI perintah atau kode di dalam instans EC2, cara yang disarankan untuk mendapatkan kredensi adalah dengan menggunakan peran untuk Amazon EC2. Anda membuat peran IAM yang menentukan izin yang ingin Anda berikan ke aplikasi yang berjalan di instans EC2 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. AWSSDK,AWS CLI, dan Tools untuk Windows PowerShell secara otomatis mendapatkan kredensi 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 kredensial keamanan sementara dengan SDK AWS

Untuk menggunakan kredensial keamanan sementara dalam kode, Anda secara terprogram memanggil API AWS STS seperti AssumeRole dan mengekstraksi kredensial yang dihasilkan serta token sesi. Kemudian Anda menggunakan nilai tersebut sebagai kredensial untuk panggilan selanjutnya ke AWS. Contoh berikut ini menunjukkan pseudocode tentang cara menggunakan kredensial keamanan sementara jika Anda menggunakan SDK AWS:

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 peran IAM (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 memanggil AssumeRoleGetFederationToken, dan operasi API lainnya, lihat Referensi AWS Security Token Service API. Untuk informasi tentang mendapatkan kredensial keamanan sementara dan token sesi dari hasilnya, lihat dokumentasi untuk SDK yang sedang Anda kerjakan. Anda dapat menemukan dokumentasi untuk semua SDK AWS di bagian Halaman dokumentasi AWS, di bagian SDK dan Toolkit.

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

Menggunakan kredensial keamanan sementara dengan AWS CLI

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

Dengan menggunakan AWS CLI, Anda dapat memanggil AWS STSAPI seperti AssumeRole atau GetFederationToken dan kemudian menangkap output yang dihasilkan. Contoh berikut ini menunjukkan panggilan ke AssumeRole yang mengirimkan output ke file. Dalam contoh, parameter profile diasumsikan sebagai profil dalam file konfigurasi file AWS CLI. Itu juga diasumsikan sebagai kredensial referensi untuk pengguna IAM yang memiliki izin untuk mengambil peran tersebut.

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 ID kunci akses, kunci akses rahasia, 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 kredensial sementara ke dalam variabel lingkungan, AWS CLI secara default menggunakan kredensial tersebut. (Jika Anda menentukan parameter profile dalam perintah, AWS CLI melompati variabel lingkungan. Sebaliknya, AWS CLI mencari di file konfigurasi, yang memungkinkan Anda untuk menimpa kredensial di variabel lingkungan jika Anda memerlukannya.)

Contoh berikut menunjukkan bagaimana Anda dapat mengatur variabel lingkungan untuk kredensial keamanan sementara dan kemudian memanggil perintah AWS CLI. Karena tidak ada parameter profile yang disertakan dalam perintah AWS CLI, AWS CLI mencari kredensial terlebih dahulu dalam variabel lingkungan dan oleh karena itu menggunakan kredensial 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 kredensial keamanan sementara dengan operasi API

Jika Anda membuat permintaan API HTTPS langsung ke AWS, Anda dapat menandatangani permintaan tersebut dengan kredensial keamanan sementara yang Anda dapatkan dari AWS Security Token Service (AWS STS). Untuk melakukannya, Anda menggunakan access key ID dan secret access key yang Anda terima dari 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 ke permintaan API Anda token sesi yang Anda terima dari AWS STS. Anda menambahkan token sesi untuk header HTTP atau parameter string kueri bernama X-Amz-Security-Token. Anda menambahkan token sesi untuk HTTP header atauparameter string kueri, tetapi tidak keduanya. Untuk informasi lebih lanjut tentang menandatangani permintaan API HTTPS, lihat Menandatangani Permintaan API AWS di Referensi Umum AWS.

Informasi lain

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