Mengambil kredensial identitas sementara (token STS) untuk mengasumsikan Peran RAM.
Deskripsi operasi
Skenario umum
-
Otorisasi akses sementara: Biasanya, panggil Operasi API dari sisi server untuk mencegah kebocoran kunci akses. Namun, dalam beberapa skenario unggah file, lebih baik menggunakan unggahan langsung dari sisi Klien untuk menghindari overhead penerusan sisi server. Dalam hal ini, server dapat menerbitkan token keamanan sementara (token STS), dan Klien dapat menggunakan token STS untuk mengunggah Sumber daya secara langsung. Untuk informasi lebih lanjut, lihat Gunakan token keamanan sementara untuk aplikasi seluler guna mengakses Alibaba Cloud.
-
Akses lintas akun: Jika Anda memiliki beberapa akun Alibaba Cloud, seperti Akun A dan Akun B, dan Anda ingin Akun B mengakses Sumber daya tertentu dari Akun A. Dalam hal ini, Anda dapat membuat Peran RAM di Akun A dengan Akun B sebagai entitas tepercaya, dan memberikan otorisasi kepada Pengguna RAM atau Peran RAM di Akun B untuk mengasumsikan peran tersebut. Kemudian, Pengguna RAM atau Peran RAM di Akun B dapat mengakses Sumber daya tertentu dari Akun A dengan mengasumsikan peran tersebut. Untuk informasi lebih lanjut, lihat Akses Sumber daya lintas akun Alibaba Cloud.
Sebelum Anda memulai
Anda tidak dapat memanggil operasi ini menggunakan akun Alibaba Cloud. Anda hanya dapat memanggil operasi ini sebagai Pengguna RAM atau Peran RAM. Pastikan pemanggil (Pengguna RAM atau Peran RAM) telah diberikan otorisasi untuk asumsi peran STS (AliyunSTSAssumeRoleAccess).
Jika tidak, error berikut akan dikembalikan:
Anda tidak diotorisasi untuk melakukan aksi ini. Anda harus diotorisasi oleh RAM.
Penyebab dan Solusi:
Pemanggil tidak memiliki Kebijakan akses yang mengizinkan asumsi peran STS: Sambungkan Kebijakan sistem (AliyunSTSAssumeRoleAccess) atau kebijakan kustom ke pemanggil. Untuk informasi lebih lanjut, lihat Dapatkah saya menentukan Peran RAM yang dapat diasumsikan oleh Pengguna RAM? dan Berikan izin kepada Pengguna RAM.
Kebijakan kepercayaan Peran RAM tidak menyertakan pemanggil, yang berarti Peran RAM tidak mengizinkan pemanggil untuk mengasumsikannya: Tambahkan kebijakan kepercayaan yang mengizinkan pemanggil untuk mengasumsikan Peran RAM. Untuk informasi lebih lanjut, lihat Ubah kebijakan kepercayaan Peran RAM.
Praktik terbaik
Token STS berlaku untuk periode tertentu setelah diterbitkan. Kami menyarankan Anda menetapkan periode validitas token yang wajar dan menggunakan kembali token tersebut dalam periode validitas. Hal ini mencegah batas laju penerbitan token STS memengaruhi bisnis Anda saat laju permintaan meningkat. Untuk informasi lebih lanjut tentang batas laju, lihat Apakah ada batas berapa kali Anda dapat memanggil layanan STS?. Anda dapat menetapkan periode validitas token menggunakan parameter permintaan DurationSeconds.
Dalam skenario seperti mengunggah atau mengunduh file OSS dari Klien seluler, volume akses adalah Tingkat Tinggi. Bahkan jika Anda menggunakan kembali token STS, persyaratan Pembatasan kecepatan mungkin tidak terpenuhi. Untuk mencegah Pembatasan kecepatan STS menjadi hambatan bagi akses OSS, coba Solusi OSS menyertakan tanda tangan dalam URL. Untuk informasi lebih lanjut, lihat Sertakan tanda tangan dalam URL dan Penandatanganan sisi server dan unggahan langsung.
Coba sekarang
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
sts:AssumeRole |
get |
*Role
|
|
|
Parameter permintaan
|
Parameter |
Type |
Required |
Description |
Example |
| DurationSeconds |
integer |
No |
Periode validitas token. Unit: detik. Periode validitas minimum adalah 900 detik, dan periode validitas maksimum adalah nilai Anda dapat menetapkan parameter |
3600 |
| Policy |
string |
No |
Kebijakan akses tambahan yang disambungkan ke token STS untuk lebih membatasi izin token STS. Detail:
Nilai harus memiliki panjang 1 hingga 2.048 karakter. Untuk informasi lebih lanjut tentang elemen dan contoh Kebijakan akses, lihat Elemen dasar Kebijakan akses dan Contoh Kebijakan akses. |
{"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"} |
| RoleArn |
string |
Yes |
Nama Sumber Daya Alibaba Cloud Peran RAM yang akan diasumsikan. Entitas tepercaya Peran RAM adalah akun Alibaba Cloud. Untuk informasi lebih lanjut, lihat Buat Peran RAM untuk akun Alibaba Cloud tepercaya atau CreateRole. Format: Anda dapat melihat Nama Sumber Daya Alibaba Cloud Peran RAM di Konsol RAM atau dengan memanggil Operasi API. Detail:
|
acs:ram::123456789012****:role/adminrole |
| RoleSessionName |
string |
Yes |
Nama sesi peran. Parameter ini ditentukan pengguna. Biasanya, tetapkan parameter ini ke identitas pengguna yang memanggil Operasi API, seperti nama pengguna. Dalam log ActionTrail, meskipun operasi dilakukan oleh Peran RAM yang sama, Anda dapat mengidentifikasi operator sebenarnya berdasarkan Nilai harus memiliki panjang 2 hingga 64 karakter dan dapat berisi huruf, angka, serta karakter khusus berikut: |
alice |
| ExternalId |
string |
No |
ID eksternal peran. Parameter ini disediakan oleh pihak eksternal untuk mengidentifikasi peran. Tujuan utamanya adalah mencegah masalah wakil yang bingung. Untuk informasi lebih lanjut, lihat Gunakan ExternalId untuk mencegah masalah wakil yang bingung. Nilai harus memiliki panjang 2 hingga 1.224 karakter dan dapat berisi huruf, angka, serta karakter khusus berikut: |
abcd1234 |
| SourceIdentity |
string |
No |
Identitas sumber. Saat Anda mengasumsikan peran, Anda dapat menentukan identitas sumber pemanggil sebagai identitas awal sesi. Identitas sumber tetap ada di seluruh sesi berantai asumsi peran dan tidak dapat diubah. Hal ini memastikan keterlacakan dan keamanan operasi. Nilai SourceIdentity harus memiliki panjang 2 hingga 64 karakter dan dapat berisi huruf, angka, serta karakter khusus berikut: |
Alice |
Untuk informasi lebih lanjut tentang parameter permintaan umum, lihat Parameter umum.
Elemen respons
|
Element |
Type |
Description |
Example |
|
object |
Parameter tanggapan. |
||
| RequestId |
string |
ID permintaan. |
6894B13B-6D71-4EF5-88FA-F32781734A7F |
| AssumedRoleUser |
object |
Identitas sementara yang digunakan untuk asumsi peran. |
|
| AssumedRoleId |
string |
ID identitas sementara. |
34458433936495****:alice |
| Arn |
string |
ARN identitas sementara. |
acs:ram::123456789012****:role/adminrole/alice |
| Credentials |
object |
Kredensial akses. |
|
| SecurityToken |
string |
Token keamanan. Catatan
Panjang token keamanan tidak tetap. Jangan batasi panjang maksimum token keamanan. |
******** |
| Expiration |
string |
Pengatur waktu saat token kedaluwarsa. Pengatur waktu ditampilkan dalam UTC. |
2015-04-09T11:52:19Z |
| AccessKeySecret |
string |
Rahasia AccessKey. |
wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK**** |
| AccessKeyId |
string |
ID AccessKey. |
STS.L4aBSCSJVMuKg5U1**** |
| SourceIdentity |
string |
Identitas sumber. Saat Anda mengasumsikan peran, Anda dapat menentukan identitas sumber pemanggil sebagai identitas awal sesi. Identitas sumber tetap ada di seluruh sesi berantai asumsi peran dan tidak dapat diubah. Hal ini memastikan keterlacakan dan keamanan operasi. Jika identitas sumber tidak ditentukan, bidang ini tidak dikembalikan. |
Alice |
Contoh
Respons sukses
JSONformat
{
"RequestId": "6894B13B-6D71-4EF5-88FA-F32781734A7F",
"AssumedRoleUser": {
"AssumedRoleId": "34458433936495****:alice",
"Arn": "acs:ram::123456789012****:role/adminrole/alice"
},
"Credentials": {
"SecurityToken": "********",
"Expiration": "2015-04-09T11:52:19Z",
"AccessKeySecret": "wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****",
"AccessKeyId": "STS.L4aBSCSJVMuKg5U1****"
},
"SourceIdentity": "Alice"
}
Kode kesalahan
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | InvalidParameter.DurationSeconds | The Min/Max value of DurationSeconds is 15min/1hr. | Parameter DurationSeconds tidak valid. Nilai minimum DurationSeconds adalah 15 menit dan nilai maksimum adalah 1 jam. |
| 400 | InvalidParameter.ExternalId | The parameter ExternalId is wrongly formed. | Parameter ExternalId tidak valid. |
| 400 | InvalidParameter.RoleArn | The parameter RoleArn is wrongly formed. | Parameter RoleArn tidak boleh kosong. |
| 400 | InvalidParameter.RoleSessionName | The parameter RoleSessionName is wrongly formed. | Format parameter RoleSessionName tidak valid. |
| 400 | InvalidParameter.SerialNumber | The parameter SerialNumber is wrongly formed. | |
| 400 | InvalidParameter.TokenCode | The parameter TokenCode is wrongly formed. | |
| 400 | InvalidParameter.PolicyGrammar | The parameter Policy has not passed grammar check. | Sintaks parameter Policy tidak lolos pemeriksaan validasi. |
| 400 | InvalidParameter.PolicySize | The size of Policy must be smaller than 2048 bytes. | Parameter Policy tidak valid. Panjang Policy harus kurang dari 2048 byte. |
| 400 | InvalidParameter.ContentType | The ContentType request header must be either "application/json" or "application/x-www-form-urlencoded". | |
| 500 | InternalError | STS Server Internal Error happened, please send the RequestId to us. | Terjadi error internal. |
| 403 | NoPermission | You are not authorized to do this action. You should be authorized by RAM. | |
| 403 | AuthenticationFail.ApiUsername | The specified api username is not legal. | |
| 403 | AuthenticationFail.ApiPassword | The specified api password is not legal. | |
| 404 | EntityNotExist.Role | The specified Role not exists . |
Lihat Error Codes untuk daftar lengkap.
Catatan rilis
Lihat Release Notes untuk daftar lengkap.