Meminta kredensial keamanan sementara - 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.

Meminta kredensial keamanan sementara

Untuk meminta kredensil keamanan sementara, Anda dapat menggunakan operasi AWS Security Token Service (AWS STS) di API. AWS Ini termasuk operasi untuk membuat dan menyediakan kredensi keamanan sementara kepada pengguna tepercaya yang dapat mengontrol akses ke sumber daya Anda AWS . Untuk informasi lebih lanjut tentang AWS STS, lihatKredensial keamanan sementara di IAM. Untuk mempelajari lebih lanjut tentang berbagai metode berbeda yang dapat Anda gunakan untuk meminta kredensial keamanan sementara dengan mengasumsikan peran, lihat Menggunakan peran IAM.

Untuk memanggil operasi API, Anda dapat menggunakan salah satu SDK AWS. SDK tersedia untuk berbagai bahasa dan lingkungan pemrograman, termasuk Java, .NET, Python, Ruby, Android, dan iOS. SDK menangani tugas seperti menandatangani permintaan Anda secara kriptografis, mencoba kembali permintaan jika perlu, dan menangani respons kesalahan. Anda juga dapat menggunakan AWS STS Query API, yang dijelaskan dalam Referensi AWS Security Token Service API. Akhirnya, dua alat baris perintah mendukung AWS STS perintah: AWS Command Line Interface, dan AWS Tools for Windows PowerShell.

Operasi AWS STS API membuat sesi baru dengan kredensial keamanan sementara yang mencakup access key pair dan session token. Pasangan pasangan access key terdiri dari access key ID dan secret access key. Pengguna (atau aplikasi yang dijalankan pengguna) dapat menggunakan kredensial ini untuk mengakses sumber daya Anda. Anda dapat membuat sesi peran dan meneruskan kebijakan sesi dan tag sesi secara terprogram menggunakan operasi AWS STS API. Izin sesi yang dihasilkan adalah persimpangan kebijakan berbasis identitas peran dan kebijakan sesi. Untuk informasi lebih lanjut tentang kebijakan sesi, lihat Kebijakan sesi. Untuk informasi lebih lanjut tentang tanda sesi, lihat Melewati tag sesi di AWS STS.

catatan

Ukuran token sesi yang dikembalikan operasi AWS STS API tidak tetap. Kami sangat menyarankan agar Anda tidak membuat asumsi tentang ukuran maksimum. Ukuran token umumnya kurang dari 4096 byte, tetapi itu dapat bervariasi.

Menggunakan AWS STS dengan AWS Wilayah

Anda dapat mengirim panggilan AWS STS API ke titik akhir global atau ke salah satu titik akhir Regional. Jika Anda memilih titik akhir yang lebih dekat dengan Anda, Anda dapat mengurangi latensi dan meningkatkan kinerja panggilan API Anda. Anda juga dapat memilih untuk mengarahkan panggilan Anda ke titik akhir Regional alternatif jika Anda tidak lagi dapat berkomunikasi dengan titik akhir awal. Jika Anda menggunakan salah satu dari berbagai AWS SDK, gunakan metode SDK tersebut untuk menentukan Region sebelum Anda melakukan panggilan API. Jika Anda membuat permintaan HTTP API secara manual, maka Anda harus mengarahkan permintaan ke titik akhir yang benar sendiri. Untuk informasi lebih lanjut, lihat bagian AWS STS dari Wilayah dan Titik Akhir dan Mengelola AWS STS dalam Wilayah AWS.

Berikut ini adalah operasi API yang dapat Anda gunakan untuk memperoleh kredensil sementara untuk digunakan di AWS lingkungan dan aplikasi Anda.

AssumeRolependelegasian lintas akun dan federasi melalui broker identitas khusus

Operasi AssumeRole API berguna untuk memungkinkan pengguna IAM yang ada mengakses AWS sumber daya yang belum mereka akses. Misalnya, pengguna mungkin memerlukan akses ke sumber daya di tempat lain Akun AWS. Itu juga berguna sebagai sarana untuk mendapatkan akses istimewa sementara waktu—misalnya, untuk menyediakan Multi-Factor Authentication (MFA) Anda harus memanggil API ini menggunakan kredensi aktif. Untuk mempelajari siapa yang dapat memanggil operasi ini, lihatMembandingkan operasi AWS STS API. Lihat informasi yang lebih lengkap di Membuat peran untuk mendelegasikan izin kepada pengguna IAM dan Mengonfigurasi akses API yang dilindungi MFA.

Panggilan ini harus dilakukan menggunakan kredensil AWS keamanan yang valid. Saat Anda melakukan panggilan ini, Anda menyampaikan informasi berikut:

  • Amazon Resource Name (ARN) dari peran yang harus diasumsikan oleh aplikasi.

  • (Opsional) Durasi, yang menentukan durasi kredensial keamanan sementara. Gunakan parameter DurationSeconds untuk menentukan durasi sesi peran dari 900 detik (15 menit) hingga pengaturan durasi sesi maksimum untuk peran tersebut. Untuk mempelajari cara melihat nilai maksimum untuk peran Anda, lihat Lihat pengaturan durasi sesi maksimum untuk peran. Jika Anda tidak meneruskan parameter ini, kredensial sementara akan kedaluwarsa dalam satu jam. Parameter DurationSeconds dari API ini terpisah dari Parameter HTTP SessionDuration yang Anda gunakan untuk menentukan durasi sesi konsol. Gunakan Parameter HTTP SessionDuration dalam permintaan ke titik akhir federasi untuk token masuk konsol. Untuk informasi selengkapnya, lihat Mengaktifkan akses broker identitas khusus ke konsol AWS.

  • Nama sesi peran. Gunakan nilai string ini untuk mengidentifikasi sesi ketika peran digunakan oleh penanggung jawab yang berbeda. Untuk tujuan keamanan, administrator dapat melihat bidang ini dalam log AWS CloudTrail untuk membantu mengidentifikasi siapa yang melakukan tindakan di AWS. Administrator Anda mungkin mengharuskan Anda untuk menentukan nama pengguna IAM sebagai nama sesi saat Anda mengasumsikan peran tersebut. Untuk informasi selengkapnya, lihat sts:RoleSessionName.

  • (Opsional) Sumber identitas. Anda dapat meminta pengguna untuk menentukan identitas sumber ketika mereka mengambil peran. Setelah identitas sumber diatur, nilai tidak dapat diubah. Hal ini tedapat dalam permintaan untuk semua tindakan yang diambil selama sesi peran. Nilai identitas sumber tetap diseluruh sesi peran berantai. Anda dapat menggunakan informasi identitas sumber dalam AWS CloudTrail log untuk menentukan siapa yang mengambil tindakan dengan peran. Untuk informasi selengkapnya tentang penggunaan identitas sumber, lihat Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan.

  • (Opsional) Kebijakan sesi inline atau terkelola. Kebijakan ini membatasi izin dari kebijakan berbasis identitas peran yang ditetapkan untuk sesi peran. Izin sesi yang dihasilkan adalah titik pertemuan antara kebijakan berbasis identitas peran dan kebijakan sesi. Kebijakan sesi tidak dapat digunakan untuk memberikan lebih banyak izin daripada yang diizinkan oleh kebijakan berbasis identitas dari peran yang sedang diasumsikan. Untuk informasi lebih lanjut tentang izin sesi peran ini, lihat Kebijakan sesi.

  • (Opsional) Tanda sesi. Anda dapat mengambil peran dan kemudian menggunakan kredensial sementara untuk membuat permintaan. Saat Anda melakukannya, tanda penanggung jawab sesi ini mencakup tanda peran dan tanda sesi yang diteruskan. Jika Anda melakukan panggilan ini menggunakan kredensial sementara, sesi baru juga akan menurunkan tanda sesi transitif dari sesi panggilan Untuk informasi lebih lanjut tentang tanda sesi, lihat Melewati tag sesi di AWS STS.

  • (Opsional) Informasi MFA. Jika dikonfigurasikan untuk menggunakan Autentikasi Multi-Faktor (MFA) maka Anda menyertakan pengidentifikasi untuk perangkat MFA dan kode sekali pakai yang disediakan oleh perangkat tersebut.

  • (Opsional) Nilai ExternalId yang dapat digunakan saat mendelegasikan akses akun Anda ke pihak ketiga. Nilai ini membantu memastikan bahwa hanya pihak ketiga yang ditentukan yang dapat mengakses peran tersebut. Untuk informasi selengkapnya, lihat Cara menggunakan ID eksternal saat memberikan akses ke sumber daya AWS Anda kepada pihak ketiga.

Contoh berikut menunjukkan permintaan sampel dan respons menggunakan AssumeRole. Contoh permintaan ini mengasumsikan peran demo untuk durasi yang ditentukan dengan disertakan Kebijakan sesi, tanda sesi, ID eksternal, dan identitas sumber. Sesi yang dihasilkan diberi nama John-session.

contoh Contoh Permintaan
https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=AssumeRole &RoleSessionName=John-session &RoleArn=arn:aws::iam::123456789012:role/demo &Policy=%7B%22Version%22%3A%222012-10-17%22%2C%22Statement%22%3A%5B%7B%22Sid%22%3A%20%22Stmt1%22%2C%22Effect%22%3A%20%22Allow%22%2C%22Action%22%3A%20%22s3%3A*%22%2C%22Resource%22%3A%20%22*%22%7D%5D%7D &DurationSeconds=1800 &Tags.member.1.Key=Project &Tags.member.1.Value=Pegasus &Tags.member.2.Key=Cost-Center &Tags.member.2.Value=12345 &ExternalId=123ABC &SourceIdentity=DevUser123 &AUTHPARAMS

Nilai kebijakan yang ditunjukkan dalam contoh sebelumnya adalah versi kebijakan berkode URL dari kebijakan berikut ini:

{"Version":"2012-10-17","Statement":[{"Sid":"Stmt1","Effect":"Allow","Action":"s3:*","Resource":"*"}]}

Parameter AUTHPARAMS dalam contoh adalah placeholder untuk tanda tangan Anda. Tanda tangan adalah informasi otentikasi yang harus Anda sertakan dengan permintaan AWS HTTP API. Kami menyarankan menggunakan SDK AWS untuk membuat permintaan API, dan satu keuntungan dalam melakukannya adalah SDK mengurus tanda tangan permintaan untuk Anda. Jika Anda harus membuat dan menandatangani permintaan API secara manual, lihat Menandatangani AWS Permintaan Dengan Menggunakan Tanda Tangan Versi 4 di bagian Referensi Umum Amazon Web Servicesuntuk mempelajari cara menandatangani permintaan.

Selain kredensial keamanan sementara, responsnya mencakup Amazon Resource Name (ARN) untuk pengguna federasi dan waktu kedaluwarsa kredensial tersebut.

contoh Contoh tanggapan
<AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <AssumeRoleResult> <SourceIdentity>DevUser123</SourceIdentity> <Credentials> <SessionToken> AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU 9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA== </SessionToken> <SecretAccessKey> wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY </SecretAccessKey> <Expiration>2019-07-15T23:28:33.359Z</Expiration> <AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId> </Credentials> <AssumedRoleUser> <Arn>arn:aws:sts::123456789012:assumed-role/demo/John</Arn> <AssumedRoleId>ARO123EXAMPLE123:John</AssumedRoleId> </AssumedRoleUser> <PackedPolicySize>8</PackedPolicySize> </AssumeRoleResult> <ResponseMetadata> <RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId> </ResponseMetadata> </AssumeRoleResponse>
catatan

AWS Konversi memampatkan kebijakan sesi dan tag sesi yang diteruskan ke dalam format biner yang dikemas yang memiliki batas terpisah. Permintaan Anda bisa gagal untuk batas ini bahkan jika teks biasa Anda memenuhi persyaratan lain. Elemen respons PackedPolicySize menunjukkan persentase seberapa dekat kebijakan dan tanda untuk permintaan Anda dengan batas ukuran atas.

AssumeRoleWithWebIdentity—federasi melalui penyedia identitas berbasis web

AssumeRoleWithWebIdentity Operasi API mengembalikan satu set kredensial keamanan sementara untuk pengguna federasi yang diautentikasi melalui penyedia identitas umum. Contoh penyedia identitas umum mencakup Login with Amazon, Facebook, Google, atau penyedia identitas mana pun yang kompatibel dengan OpenID Connect (OIDC). Operasi ini berguna untuk membuat aplikasi mobile atau aplikasi web berbasis klien yang memerlukan akses ke. AWS Menggunakan operasi ini berarti bahwa pengguna Anda tidak memerlukan identitas mereka sendiri AWS atau IAM. Untuk informasi selengkapnya, lihat Federasi OIDC.

Alih-alih menelepon langsungAssumeRoleWithWebIdentity, kami menyarankan Anda menggunakan Amazon Cognito dan penyedia kredensi Amazon Cognito dengan AWS SDK untuk pengembangan seluler. Untuk informasi selengkapnya, lihat Otentikasi dengan Amplify di Dokumentasi Amplify.

Jika Anda tidak menggunakan Amazon Cognito, Anda menyebut AssumeRoleWithWebIdentity tindakan. AWS STS Ini adalah panggilan tanpa tanda tangan, yang berarti bahwa aplikasi tidak perlu memiliki akses ke kredensial keamanan AWS untuk membuat panggilan. Saat Anda melakukan panggilan ini, Anda menyampaikan informasi berikut:

  • Amazon Resource Name (ARN) dari peran yang harus diasumsikan oleh aplikasi. Jika aplikasi Anda mendukung beberapa cara bagi pengguna untuk masuk, Anda harus menentukan beberapa peran, satu per penyedia identitas. Panggilan ke AssumeRoleWithWebIdentity harus menyertakan ARN peran yang spesifik untuk penyedia yang digunakan pengguna untuk masuk.

  • Token yang diperoleh aplikasi dari IdP setelah aplikasi mengautentikasi pengguna.

  • Anda dapat mengonfigurasi IdP Anda untuk meneruskan atribut ke dalam token Anda sebagai tanda sesi.

  • (Opsional) Durasi, yang menentukan durasi kredensial keamanan sementara. Gunakan parameter DurationSeconds untuk menentukan durasi sesi peran dari 900 detik (15 menit) hingga pengaturan durasi sesi maksimum untuk peran tersebut. Untuk mempelajari cara melihat nilai maksimum untuk peran Anda, lihat Lihat pengaturan durasi sesi maksimum untuk peran. Jika Anda tidak meneruskan parameter ini, kredensial sementara akan kedaluwarsa dalam satu jam. Parameter DurationSeconds dari API ini terpisah dari Parameter HTTP SessionDuration yang Anda gunakan untuk menentukan durasi sesi konsol. Gunakan Parameter HTTP SessionDuration dalam permintaan ke titik akhir federasi untuk token masuk konsol. Untuk informasi selengkapnya, lihat Mengaktifkan akses broker identitas khusus ke konsol AWS.

  • Nama sesi peran. Gunakan nilai string ini untuk mengidentifikasi sesi ketika peran digunakan oleh penanggung jawab yang berbeda. Untuk tujuan keamanan, administrator dapat melihat bidang ini dalam log AWS CloudTrail untuk mempelajari siapa yang melakukan tindakan di AWS. Administrator Anda mungkin akan meminta Anda memberikan nilai spesifik untuk nama sesi ketika Anda mengasumsikan peran tersebut. Untuk informasi selengkapnya, lihat sts:RoleSessionName.

  • (Opsional) Sumber identitas. Anda dapat meminta pengguna gabungan untuk menentukan identitas sumber saat mereka mengambil peran. Setelah identitas sumber diatur, nilai tidak dapat diubah. Hal ini tedapat dalam permintaan untuk semua tindakan yang diambil selama sesi peran. Nilai identitas sumber tetap diseluruh sesi peran berantai. Anda dapat menggunakan informasi identitas sumber dalam AWS CloudTrail log untuk menentukan siapa yang mengambil tindakan dengan peran. Untuk informasi selengkapnya tentang penggunaan identitas sumber, lihat Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan.

  • (Opsional) Kebijakan sesi inline atau terkelola. Kebijakan ini membatasi izin dari kebijakan berbasis identitas peran yang ditetapkan untuk sesi peran. Izin sesi yang dihasilkan adalah titik pertemuan antara kebijakan berbasis identitas peran dan kebijakan sesi. Kebijakan sesi tidak dapat digunakan untuk memberikan lebih banyak izin daripada yang diizinkan oleh kebijakan berbasis identitas dari peran yang sedang diasumsikan. Untuk informasi lebih lanjut tentang izin sesi peran ini, lihat Kebijakan sesi.

    catatan

    Sebuah panggilan ke AssumeRoleWithWebIdentity tidak ditandatangani (dienkripsi). Oleh karena itu, Anda hanya boleh menyertakan kebijakan sesi opsional jika permintaan dikirim melalui perantara terpercaya. Dalam hal ini, seseorang dapat mengubah kebijakan untuk menghapus pembatasan.

Saat Anda menelepon AssumeRoleWithWebIdentity AWS , verifikasi keaslian token. Misalnya, tergantung pada penyedia, AWS mungkin melakukan panggilan ke penyedia dan menyertakan token yang telah dilewati aplikasi. Dengan asumsi bahwa penyedia identitas memvalidasi token, AWS mengembalikan informasi berikut kepada Anda:

  • Serangkaian kredensial keamanan sementara. Ini terdiri dari access key ID, secret access key, dan token sesi.

  • ID peran dan ARN peran yang diasumsikan.

  • Suatu nilai SubjectFromWebIdentityToken yang memuat ID pengguna unik.

Bila Anda memiliki kredensil keamanan sementara, Anda dapat menggunakannya untuk melakukan panggilan AWS API. Ini adalah proses yang sama dengan membuat panggilan AWS API dengan kredensil keamanan jangka panjang. Perbedaannya adalah bahwa Anda harus menyertakan token sesi, yang memungkinkan AWS memverifikasi bahwa kredensial keamanan sementara valid.

Aplikasi Anda harus menyimpan kredensial. Sebagaimana diketahui, secara default kredensial kedaluwarsa setelah satu jam. Jika Anda tidak menggunakan CredentialsProvider operasi Amazonsts di AWS SDK, terserah Anda dan aplikasi Anda untuk menelepon lagi. AssumeRoleWithWebIdentity Panggil operasi ini untuk mendapatkan rangkaian kredensial keamanan sementara yang baru sebelum kredensial lama kedaluwarsa.

AssumeRoleWithSAML—federasi melalui Penyedia Identitas perusahaan yang kompatibel dengan SAFL 2.0

Operasi API AssumeRoleWithSAML mengembalikan serangkaian kredensial keamanan sementara untuk pengguna federasi yang diautentikasi oleh sistem identitas yang ada milik organisasi Anda. Pengguna juga harus menggunakan SAML 2.0 (Security Assertion Markup Language) untuk menyampaikan informasi autentikasi dan otorisasi ke AWS. Operasi API ini berguna pada organisasi yang telah mengintegrasikan sistem identitas mereka (seperti Windows Active Directory atau OpenLDAP) dengan perangkat lunak yang dapat menghasilkan pernyataan SAML. Integrasi tersebut menyediakan informasi tentang identitas dan izin pengguna (seperti ctive Directory Federation Services atau Shibboleth). Untuk informasi selengkapnya, lihat Federasi SAML 2.0.

catatan

Sebuah panggilan ke AssumeRoleWithSAML tidak ditandatangani (dienkripsi). Oleh karena itu, Anda hanya boleh menyertakan kebijakan sesi opsional jika permintaan dikirim melalui perantara terpercaya. Dalam hal ini, seseorang dapat mengubah kebijakan untuk menghapus pembatasan.

Ini adalah panggilan tanpa tanda tangan, yang berarti bahwa aplikasi tidak perlu memiliki akses ke kredensial keamanan AWS untuk membuat panggilan. Saat Anda melakukan panggilan ini, Anda menyampaikan informasi berikut:

  • Amazon Resource Name (ARN) dari peran yang harus diasumsikan oleh aplikasi.

  • ARN dari penyedia SAML yang dibuat di IAM yang menjelaskan penyedia identitas.

  • Pernyataan SAML, yang dikodekan di basis64, yang disediakan oleh penyedia identitas SAML dalam respon autentikasinya terhadap permintaan masuk dari aplikasi Anda.

  • Anda dapat mengonfigurasi Anda untuk meneruskan atribut ke pernyataan SAML Anda sebagai tanda sesi.

  • (Opsional) Durasi, yang menentukan durasi kredensial keamanan sementara. Gunakan parameter DurationSeconds untuk menentukan durasi sesi peran dari 900 detik (15 menit) hingga pengaturan durasi sesi maksimum untuk peran tersebut. Untuk mempelajari cara melihat nilai maksimum untuk peran Anda, lihat Lihat pengaturan durasi sesi maksimum untuk peran. Jika Anda tidak meneruskan parameter ini, kredensial sementara akan kedaluwarsa dalam satu jam. Parameter DurationSeconds dari API ini terpisah dari Parameter HTTP SessionDuration yang Anda gunakan untuk menentukan durasi sesi konsol. Gunakan Parameter HTTP SessionDuration dalam permintaan ke titik akhir federasi untuk token masuk konsol. Untuk informasi selengkapnya, lihat Mengaktifkan akses broker identitas khusus ke konsol AWS.

  • (Opsional) Kebijakan sesi inline atau terkelola. Kebijakan ini membatasi izin dari kebijakan berbasis identitas peran yang ditetapkan untuk sesi peran. Izin sesi yang dihasilkan adalah titik pertemuan antara kebijakan berbasis identitas peran dan kebijakan sesi. Kebijakan sesi tidak dapat digunakan untuk memberikan lebih banyak izin daripada yang diizinkan oleh kebijakan berbasis identitas dari peran yang sedang diasumsikan. Untuk informasi lebih lanjut tentang izin sesi peran ini, lihat Kebijakan sesi.

  • Nama sesi peran. Gunakan nilai string ini untuk mengidentifikasi sesi ketika peran digunakan oleh penanggung jawab yang berbeda. Untuk tujuan keamanan, administrator dapat melihat bidang ini dalam log AWS CloudTrail untuk mempelajari siapa yang melakukan tindakan di AWS. Administrator Anda mungkin akan meminta Anda memberikan nilai spesifik untuk nama sesi ketika Anda mengasumsikan peran tersebut. Untuk informasi selengkapnya, lihat sts:RoleSessionName.

  • (Opsional) Sumber identitas. Anda dapat meminta pengguna gabungan untuk menentukan identitas sumber saat mereka mengambil peran. Setelah identitas sumber diatur, nilai tidak dapat diubah. Hal ini tedapat dalam permintaan untuk semua tindakan yang diambil selama sesi peran. Nilai identitas sumber tetap diseluruh sesi peran berantai. Anda dapat menggunakan informasi identitas sumber dalam AWS CloudTrail log untuk menentukan siapa yang mengambil tindakan dengan peran. Untuk informasi selengkapnya tentang penggunaan identitas sumber, lihat Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan.

Saat Anda meneleponAssumeRoleWithSAML, AWS verifikasi keaslian pernyataan SAFL. Dengan asumsi bahwa penyedia identitas memvalidasi pernyataan, AWS mengembalikan informasi berikut kepada Anda:

  • Serangkaian kredensial keamanan sementara. Ini terdiri dari access key ID, secret access key, dan token sesi.

  • ID peran dan ARN peran yang diasumsikan.

  • Nilai Audience yang berisi nilai atribut Recipient dari SubjectConfirmationData elemen pernyataan SAML.

  • Nilai Issuer yang berisi nilai dari elemen Issuer pernyataan SAML.

  • NameQualifierElemen yang berisi nilai hash yang dibangun dari Issuer nilai, Akun AWS ID, dan nama ramah penyedia SAFL. Saat digabungkan dengan elemen Subject, mereka dapat mengidentifikasi pengguna federasi secara unik.

  • Suatu Elemen Subject yang berisi nilai dari elemen NameID dalam elemen Subject pernyataan SAML.

  • Suatu elemen SubjectType yang menunjukkan format elemen Subject. Kunci ini dapat berupa persistent, transient, atau URI Format penuh dari elemen Subject dan NameID yang digunakan dalam pernyataan SAML Anda. Untuk informasi tentang elemen NameID Format atribut, lihat Konfigurasikan pernyataan SAMP untuk respons otentikasi.

Bila Anda memiliki kredensil keamanan sementara, Anda dapat menggunakannya untuk melakukan panggilan AWS API. Ini adalah proses yang sama dengan membuat panggilan AWS API dengan kredensil keamanan jangka panjang. Perbedaannya adalah bahwa Anda harus menyertakan token sesi, yang memungkinkan AWS memverifikasi bahwa kredensial keamanan sementara valid.

Aplikasi Anda harus menyimpan kredensial. Secara default kredensial kedaluwarsa setelah satu jam. Jika Anda tidak menggunakan CredentialsProvider tindakan Amazonsts di AWS SDK, terserah Anda dan aplikasi Anda untuk menelepon lagi. AssumeRoleWithSAML Hubungi operasi ini untuk mendapatkan set keamanan kredensial sementara yang baru sebelum kredensial lama kedaluwarsa.

GetFederationToken—federasi melalui pialang identitas khusus

Operasi API GetFederationToken mengembalikan satu set kredensial keamanan sementara untuk pengguna federasi. API ini berbeda dari AssumeRole karena periode kedaluwarsa default jauh lebih lama (12 jam, bukan satu jam). Sebagai tambahan, Anda dapat menggunakan parameter DurationSeconds untuk menentukan durasi untuk kredensial keamanan sementara agar tetap valid. Kredensi yang dihasilkan berlaku untuk durasi yang ditentukan, antara 900 detik (15 menit) hingga 129.600 detik (36 jam). Masa kedaluwarsa yang lebih lama dapat membantu mengurangi jumlah panggilan AWS karena Anda tidak perlu mendapatkan kredensi baru sesering mungkin.

Saat Anda membuat permintaan ini, Anda menggunakan kredensial pengguna IAM tertentu. Izin untuk kredensials keamanan sementara ditentukan oleh kebijakan sesi yang Anda lewatkan saat Anda memanggil GetFederationToken. Izin sesi yang dihasilkan adalah persimpangan kebijakan pengguna IAM dan kebijakan sesi yang Anda lewati. Kebijakan sesi tidak dapat digunakan untuk memberikan lebih banyak izin daripada yang diizinkan oleh kebijakan berbasis-identitas dari pengguna IAM yang meminta federasi. Untuk informasi lebih lanjut tentang izin sesi peran ini, lihat Kebijakan sesi.

Saat Anda menggunakan kredensial sementara yang dikembalikan oleh operasi GetFederationToken, tanda utama sesi mencakup tanda pengguna dan tanda sesi yang lulus. Untuk informasi lebih lanjut tentang tanda sesi, lihat Melewati tag sesi di AWS STS.

GetFederationTokenPanggilan mengembalikan kredensil keamanan sementara yang terdiri dari token sesi, kunci akses, kunci rahasia, dan kedaluwarsa. Anda dapat menggunakan GetFederationToken jika anda ingin mengelola izin di dalam organization anda (misalnya, menggunakan aplikasi proksi untuk menetapkan izin).

Contoh berikut menunjukkan permintaan sampel dan respons yang menggunakan GetFederationToken. Permintaan contoh ini meminta menggabungkan pengguna panggilan untuk durasi yang ditentukan dengan ARN kebijakan sesi dantanda sesi. Sesi yang dihasilkan diberi nama Jane-session.

contoh Contoh Permintaan
https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetFederationToken &Name=Jane-session &PolicyArns.member.1.arn==arn%3Aaws%3Aiam%3A%3A123456789012%3Apolicy%2FRole1policy &DurationSeconds=1800 &Tags.member.1.Key=Project &Tags.member.1.Value=Pegasus &Tags.member.2.Key=Cost-Center &Tags.member.2.Value=12345 &AUTHPARAMS

Kebijakan ARN yang ditunjukkan dalam contoh sebelumnya mencakup ARN berkode URL berikut:

arn:aws:iam::123456789012:policy/Role1policy

Selain itu, perhatikan bahwa parameter &AUTHPARAMS dalam contoh dimaksudkan sebagai kerangka untuk informasi autentikasi. Ini adalah tanda tangan, yang harus Anda sertakan dengan permintaan AWS HTTP API. Kami menyarankan menggunakan SDK AWS untuk membuat permintaan API, dan satu keuntungan dalam melakukannya adalah SDK mengurus tanda tangan permintaan untuk Anda. Jika Anda harus membuat dan menandatangani permintaan API secara manual, buka AWS Permintaan Menandatangani Dengan Menggunakan Tanda Tangan Versi 4 di bagian Referensi Umum Amazon Web Servicesuntuk mempelajari cara menandatangani permintaan.

Selain kredensial keamanan sementara, responsnya mencakup Amazon Resource Name (ARN) untuk pengguna federasi dan waktu kedaluwarsa kredensial tersebut.

contoh Contoh tanggapan
<GetFederationTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <GetFederationTokenResult> <Credentials> <SessionToken> AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU 9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCEXAMPLE== </SessionToken> <SecretAccessKey> wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY </SecretAccessKey> <Expiration>2019-04-15T23:28:33.359Z</Expiration> <AccessKeyId>AKIAIOSFODNN7EXAMPLE;</AccessKeyId> </Credentials> <FederatedUser> <Arn>arn:aws:sts::123456789012:federated-user/Jean</Arn> <FederatedUserId>123456789012:Jean</FederatedUserId> </FederatedUser> <PackedPolicySize>4</PackedPolicySize> </GetFederationTokenResult> <ResponseMetadata> <RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId> </ResponseMetadata> </GetFederationTokenResponse>
catatan

AWS Konversi memampatkan kebijakan sesi dan tag sesi yang diteruskan ke dalam format biner yang dikemas yang memiliki batas terpisah. Permintaan Anda bisa gagal untuk batas ini bahkan jika teks biasa Anda memenuhi persyaratan lain. Elemen respons PackedPolicySize menunjukkan persentase seberapa dekat kebijakan dan tanda untuk permintaan Anda dengan batas ukuran atas.

AWS menyarankan agar Anda memberikan izin di tingkat sumber daya (misalnya, Anda melampirkan kebijakan berbasis sumber daya ke bucket Amazon S3), Anda dapat menghilangkan parameternya. Policy Namun, jika Anda tidak menyertakan kebijakan untuk pengguna federasi, kredensial keamanan sementara tidak akan memberikan izin apa pun. Dalam kasus ini, Anda harus menggunakan kebijakan sumber daya untuk memberikan akses pengguna gabungan ke sumber daya AWS Anda.

Misalnya, anggap Akun AWS nomor Anda 111122223333, dan Anda memiliki bucket Amazon S3 yang ingin Anda izinkan untuk diakses oleh Susan. Kredensial keamanan sementara Susan tidak menyertakan kebijakan untuk bucket. Dalam hal ini, Anda perlu memastikan bahwa bucket memiliki kebijakan ARN yang cocok dengan ARN Susan, seperti arn:aws:sts::111122223333:federated-user/Susan.

GetSessionToken—kredensial sementara untuk pengguna di lingkungan yang tidak tepercaya

Operasi API GetSessionToken mengembalikan satu set kredensial keamanan sementara untuk pengguna IAM yang sudah ada. Ini berguna untuk memberikan keamanan yang ditingkatkan, seperti mengizinkan AWS permintaan hanya ketika MFA diaktifkan untuk pengguna IAM. Karena kredensial bersifat sementara, kredensial ini memberikan keamanan yang lebih baik ketika Anda memiliki pengguna IAM yang mengakses sumber daya Anda melalui lingkungan yang kurang aman. Contoh lingkungan yang kurang aman termasuk perangkat seluler atau browser web. Untuk informasi selengkapnya, lihat Meminta kredensial keamanan sementara atau GetSessionTokendi Referensi AWS Security Token Service API.

Secara default, kredensial keamanan sementara untuk pengguna IAM berlaku selama maksimal 12 jam. Tetapi Anda dapat meminta durasi sesingkat 15 menit atau selama 36 jam menggunakan parameter DurationSeconds. Untuk alasan keamanan, token untuk sebuah Pengguna root akun AWS dibatasi hingga durasi satu jam.

GetSessionTokenmengembalikan kredensil keamanan sementara yang terdiri dari token sesi, ID kunci akses, dan kunci akses rahasia. Contoh berikut menunjukkan permintaan sampel dan respons menggunakan GetSessionToken. Jawaban juga mencakup waktu kedaluwarsa kredensial keamanan sementara.

contoh Contoh Permintaan
https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetSessionToken &DurationSeconds=1800 &AUTHPARAMS

Parameter AUTHPARAMS dalam contoh adalah placeholder untuk tanda tangan Anda. Tanda tangan adalah informasi otentikasi yang harus Anda sertakan dengan permintaan AWS HTTP API. Kami menyarankan menggunakan SDK AWS untuk membuat permintaan API, dan satu keuntungan dalam melakukannya adalah SDK mengurus tanda tangan permintaan untuk Anda. Jika Anda harus membuat dan menandatangani permintaan API secara manual, buka AWS Permintaan Menandatangani Dengan Menggunakan Tanda Tangan Versi 4 di bagian Referensi Umum Amazon Web Servicesuntuk mempelajari cara menandatangani permintaan.

contoh Contoh tanggapan
<GetSessionTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <GetSessionTokenResult> <Credentials> <SessionToken> AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L To6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3z rkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtp Z3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE </SessionToken> <SecretAccessKey> wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY </SecretAccessKey> <Expiration>2011-07-11T19:55:29.611Z</Expiration> <AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId> </Credentials> </GetSessionTokenResult> <ResponseMetadata> <RequestId>58c5dbae-abef-11e0-8cfe-09039844ac7d</RequestId> </ResponseMetadata> </GetSessionTokenResponse>

Secara opsional, GetSessionToken permintaan dapat menyertakan SerialNumber dan TokenCode nilai untuk verifikasi otentikasi AWS multi-faktor (MFA). Jika nilai yang diberikan valid, AWS STS berikan kredensil keamanan sementara yang mencakup status otentikasi MFA. Kredensi keamanan sementara kemudian dapat digunakan untuk mengakses operasi API atau AWS situs web yang dilindungi MFA selama otentikasi MFA valid.

Contoh berikut menunjukkan permintaan GetSessionToken yang menyertakan kode verifikasi MFA dan nomor seri perangkat.

https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetSessionToken &DurationSeconds=7200 &SerialNumber=YourMFADeviceSerialNumber &TokenCode=123456 &AUTHPARAMS
catatan

Panggilan untuk AWS STS dapat ke titik akhir global atau ke salah satu titik akhir Regional yang Anda aktifkan. Akun AWS Untuk informasi lebih lanjut, lihat bagian AWS STS pada Wilayah dan Titik Akhir.

Parameter AUTHPARAMS dalam contoh adalah placeholder untuk tanda tangan Anda. Tanda tangan adalah informasi otentikasi yang harus Anda sertakan dengan permintaan AWS HTTP API. Kami menyarankan menggunakan SDK AWS untuk membuat permintaan API, dan satu keuntungan dalam melakukannya adalah SDK mengurus tanda tangan permintaan untuk Anda. Jika Anda harus membuat dan menandatangani permintaan API secara manual, lihat Menandatangani AWS Permintaan Dengan Menggunakan Tanda Tangan Versi 4 di bagian Referensi Umum Amazon Web Servicesuntuk mempelajari cara menandatangani permintaan.

Membandingkan operasi AWS STS API

Tabel berikut membandingkan fitur operasi API AWS STS yang mengembalikan kredensil keamanan sementara tersebut. Untuk mempelajari tentang berbagai metode yang dapat Anda gunakan untuk meminta kredensial keamanan sementara dengan mengambil peran, lihat Menggunakan peran IAM. Untuk mempelajari berbagai operasi AWS STS API yang memungkinkan Anda meneruskan tag sesi, lihatMelewati tag sesi di AWS STS.

Membandingkan opsi API Anda
AWS STS API Siapa yang bisa menelepon Masa pakai kredensi (min | maks | default) Support MFA¹ Dukungan kebijakan sesi² Pembatasan pada kredensi sementara yang dihasilkan
AssumeRole Pengguna IAM atau peran IAM dengan kredensial keamanan sementara yang ada 15 m | Pengaturan durasi sesi maksimum³ | 1 jam Ya Ya

Tidak bisa menelepon GetFederationToken atau GetSessionToken.

AssumeRoleWithSAM Setiap pengguna; penelepon harus melewati tanggapan autentikasi SAML yang menunjukkan autentikasi dari penyedia layanan yang dikenal 15 m | Pengaturan durasi sesi maksimum³ | 1 jam Tidak Ya

Tidak bisa menelepon GetFederationToken atau GetSessionToken.

AssumeRoleWithWebIdentity Setiap pengguna; penelepon harus melewati token JWT yang sesuai dengan OIDC yang menunjukkan otentikasi dari penyedia identitas yang dikenal 15 m | Pengaturan durasi sesi maksimum³ | 1 jam Tidak Ya

Tidak bisa menelepon GetFederationToken atau GetSessionToken.

GetFederationToken Pengguna IAM atau Pengguna root akun AWS

Pengguna IAM: 15 m | 1 jam | 1 jam

Pengguna root: 15 m | 1 jam | 1 jam

Tidak Ya

Tidak dapat memanggil operasi IAM menggunakan AWS CLI atau AWS API. Batasan ini tidak berlaku untuk sesi konsol.

Tidak dapat memanggil AWS STS operasi kecuali GetCallerIdentity .1

SSO ke konsol diperbolehkan.⁵

GetSessionToken Pengguna IAM atau Pengguna root akun AWS

Pengguna IAM: 15 m | 1 jam | 1 jam

Pengguna root: 15 m | 1 jam | 1 jam

Ya Tidak

Tidak dapat memanggil operasi API IAM kecuali informasi MFA disertakan dengan permintaan.

Tidak dapat memanggil operasi AWS STS API kecuali AssumeRole atauGetCallerIdentity.

SSO ke konsol tidak diperbolehkan.⁶

¹ Support MFA Anda dapat menyertakan informasi tentang perangkat otentikasi multi-faktor (MFA) saat Anda memanggil operasi dan API. AssumeRole GetSessionToken Hal ini memastikan kredensial keamanan sementara yang dihasilkan dari panggilan API hanya dapat digunakan oleh pengguna yang diautentikasi dengan perangkat MFA. Untuk informasi selengkapnya, lihat Mengonfigurasi akses API yang dilindungi MFA.

² Dukungan kebijakan sesi. Kebijakan sesi adalah kebijakan yang Anda jalankan sebagai parameter saat Anda secara terprogram membuat sesi sementara untuk peran atau pengguna federasi. Kebijakan ini membatasi izin dari peran atau kebijakan berbasis identitas pengguna yang ditetapkan untuk sesi. Izin sesi yang dihasilkan adalah titik pertemuan antara kebijakan berbasis identitas entitas dan kebijakan sesi. Kebijakan sesi tidak dapat digunakan untuk memberikan lebih banyak izin daripada yang diizinkan oleh kebijakan berbasis identitas dari peran yang sedang diasumsikan. Untuk informasi lebih lanjut tentang izin sesi peran, lihat Kebijakan sesi.

³ Pengaturan durasi sesi maksimum. Gunakan parameter DurationSeconds untuk menentukan durasi sesi peran Anda dari 900 detik (15 menit) hingga pengaturan durasi sesi maksimum untuk peran tersebut. Untuk mempelajari cara melihat nilai maksimum untuk peran Anda, lihat Lihat pengaturan durasi sesi maksimum untuk peran.

GetCallerIdentity. Tidak ada izin yang diperlukan untuk melakukan operasi ini. Jika administrator menambahkan kebijakan ke pengguna IAM Anda atau peran yang secara jelas menghalangi akses ke tindakan sts:GetCallerIdentity, Anda masih dapat melakukan operasi ini. Izin tidak diperlukan karena informasi yang sama dikembalikan saat pengguna IAM atau peran ditolak aksesnya. Untuk melihat contoh tanggapan, lihat Saya tidak berwenang untuk melakukan: iam:DeleteVirtualMFadevice.

Masuk tunggal (SSO) ke konsol. Untuk mendukung SSO, Anda AWS dapat memanggil federasi endpoint (https://signin.aws.amazon.com/federation) dan meneruskan kredensi keamanan sementara. Titik akhir mengembalikan token yang dapat Anda gunakan untuk membangun URL yang menandai pengguna secara langsung ke konsol tanpa memerlukan kata sandi. Untuk informasi selengkapnya, lihat Mengaktifkan pengguna gabungan SAML 2.0 untuk mengakses AWS Management Console dan Cara Mengaktifkan Akses Lintas Akun ke Konsol AWS Manajemen di Blog AWS Keamanan.

Setelah Anda mengambil kredensi sementara Anda, Anda tidak dapat mengakses AWS Management Console dengan meneruskan kredensialnya ke titik akhir masuk tunggal federasi. Untuk informasi selengkapnya, lihat Mengaktifkan akses broker identitas khusus ke konsol AWS.