Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Minta kredensil 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 Metode untuk mengambil peran.
Untuk memanggil operasi API, Anda dapat menggunakan salah satu AWS SDKs
Operasi AWS STS API membuat sesi baru dengan kredensial keamanan sementara yang mencakup access key pair dan token sesi. 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 Lulus 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 beragam AWS SDKs, 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 Kelola 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.
Meminta kredensi untuk delegasi dan federasi lintas akun melalui pialang 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, lihatBandingkan AWS STS kredensialnya. Untuk informasi selengkapnya, lihat Buat peran untuk memberikan izin kepada pengguna IAM dan Akses API aman dengan MFA.
Untuk meminta kredensi keamanan sementara untuk delegasi lintas akun dan federasi melalui broker identitas khusus
-
Otentikasi dengan kredensi AWS keamanan Anda. Panggilan ini harus dilakukan dengan menggunakan kredensial keamanan AWS yang berlaku.
-
Panggil operasi
AssumeRole
.
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:
Parameter AUTHPARAMS
dalam contoh adalah placeholder untuk tanda tangan Anda. Tanda tangan adalah informasi otentikasi yang harus Anda sertakan dengan permintaan AWS HTTP API. Sebaiknya gunakan AWS SDKs
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.
Meminta kredensi melalui penyedia OIDC
Operasi AssumeRoleWithWebIdentity
API mengembalikan satu set kredensil AWS keamanan sementara dengan imbalan JSON Web Token (JWT). Ini termasuk penyedia identitas publik, seperti Login with Amazon, Facebook, Google, dan penyedia yang mengeluarkan JWTs yang kompatibel dengan penemuan OpenID Connect (OIDC), seperti GitHub tindakan atau Azure Devops. Untuk informasi selengkapnya, lihat Federasi OIDC.
catatan
AssumeRoleWithWebIdentity
permintaan tidak ditandatangani dengan, dan tidak memerlukan AWS kredensil.
Meminta kredensi melalui penyedia OIDC
-
Panggil operasi
AssumeRoleWithWebIdentity
.Saat Anda menelepon
AssumeRoleWithWebIdentity
, AWS validasi token yang disajikan dengan memverifikasi tanda tangan digital menggunakan kunci publik yang tersedia melalui keyset web JSON (JWKS) IDP Anda. Jika token valid, dan semua kondisi yang ditetapkan dalam kebijakan kepercayaan peran IAM terpenuhi, AWS kembalikan 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.
-
-
Aplikasi Anda kemudian dapat menggunakan kredenal keamanan sementara yang dikembalikan dalam respons untuk melakukan panggilan AWS API. Ini adalah proses yang sama dengan membuat panggilan AWS API dengan kredensil keamanan jangka panjang. Perbedaannya adalah Anda harus menyertakan token sesi, yang memungkinkan AWS verifikasi bahwa kredenal keamanan sementara valid.
Aplikasi Anda harus menyimpan kredensil yang dikembalikan oleh AWS STS dan menyegarkannya sesuai kebutuhan. Jika aplikasi Anda dibuat menggunakan AWS SDK, SDK memiliki penyedia kredensi yang dapat menangani kredensi panggilan AssumeRoleWithWebIdentity
dan penyegaran AWS sebelum kedaluwarsa. Untuk informasi selengkapnya, lihat AWS SDKs dan Penyedia kredensi standar Alat di Panduan Referensi Alat AWS SDKs dan Alat.
Meminta kredensil melalui penyedia identitas SALL 2.0
Operasi AssumeRoleWithSAML
API mengembalikan satu set kredensil keamanan sementara untuk prinsipal federasi SAMP yang diautentikasi oleh sistem identitas organisasi Anda yang ada. Pengguna juga harus menggunakan SAML
-
Panggil operasi
AssumeRoleWithSAML
.Ini adalah panggilan yang tidak ditandatangani, artinya Anda tidak perlu mengautentikasi kredensi AWS keamanan sebelum membuat permintaan.
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. -
Saat Anda menelepon
AssumeRoleWithSAML
, 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 atributRecipient
dariSubjectConfirmationData
elemen pernyataan SAML. -
Nilai
Issuer
yang berisi nilai dari elemenIssuer
pernyataan SAML. -
NameQualifier
Elemen yang berisi nilai hash yang dibangun dariIssuer
nilai, Akun AWS ID, dan nama ramah penyedia SAMP. Ketika dikombinasikan denganSubject
elemen, mereka dapat secara unik mengidentifikasi prinsipal federasi SALL. -
Suatu Elemen
Subject
yang berisi nilai dari elemenNameID
dalam elemenSubject
pernyataan SAML. -
Suatu elemen
SubjectType
yang menunjukkan format elemenSubject
. Kunci ini dapat berupapersistent
,transient
, atau URIFormat
penuh dari elemenSubject
danNameID
yang digunakan dalam pernyataan SAML Anda. Untuk informasi tentang elemenNameID
Format
atribut, lihat Konfigurasikan pernyataan SAMP untuk respons otentikasi.
-
-
Gunakan kredenal keamanan sementara yang ditampilkan dalam respons 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 tindakan STSCredentialsPenyedia AmazonAssumeRoleWithSAML
lagi. Panggil operasi ini untuk mendapatkan rangkaian kredensial keamanan sementara yang baru sebelum kredensial lama kedaluwarsa.
Meminta kredensi melalui pialang identitas khusus
Operasi GetFederationToken
API mengembalikan satu set kredensil keamanan sementara untuk prinsipal pengguna AWS STS 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.
-
Otentikasi dengan kredensi AWS keamanan pengguna IAM spesifik Anda. Panggilan ini harus dilakukan menggunakan kredensil AWS keamanan yang valid.
-
Panggil operasi
GetFederationToken
.
GetFederationToken
Panggilan 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. Sebaiknya gunakan AWS SDKs
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 prinsipal pengguna AWS STS federasi, kredensil 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, anggaplah 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
.
Meminta kredensi 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.
-
Otentikasi dengan kredensi AWS keamanan pengguna IAM spesifik Anda. Panggilan ini harus dilakukan menggunakan kredensil AWS keamanan yang valid.
-
Panggil operasi
GetSessionToken
. -
GetSessionToken
mengembalikan kredensil keamanan sementara yang terdiri dari token sesi, ID kunci akses, dan kunci akses rahasia.
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.
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. Sebaiknya gunakan AWS SDKs
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. Sebaiknya gunakan AWS SDKs