Mengasumsikan Peran RAM memungkinkan Anda sementara waktu mendapatkan izin peran tersebut untuk mengakses sumber daya Alibaba Cloud. Anda dapat mengasumsikan Peran RAM melalui Konsol, menggunakan Alibaba Cloud CLI, atau dengan memanggil operasi API Layanan Token Keamanan (STS).
Apa itu asumsi peran
Berbeda dengan Pengguna RAM, Peran RAM tidak dapat digunakan untuk login langsung ke Konsol. Anda harus terlebih dahulu login ke Konsol sebagai Pengguna RAM atau melalui SSO, lalu beralih ke Peran RAM target. Proses ini disebut asumsi peran.
Saat Anda mengganti identitas di Konsol, izin identitas awal akan ditangguhkan sementara, dan Anda beroperasi menggunakan izin dari Peran RAM yang diasumsikan. Peran RAM yang diasumsikan dapat berada dalam Akun Alibaba Cloud yang sama dengan Pengguna RAM yang sedang login, atau dalam akun berbeda (asumsi peran cross-account).
Cara kerjanya
Contoh berikut menunjukkan cara kerja asumsi peran. Dalam contoh ini, Pengguna RAM Alice mengasumsikan Peran RAM prod-role dan mengakses OSS sebagai peran tersebut:
Permintaan untuk mengasumsikan Peran RAM. Pengguna RAM Alice meminta kredensial sementara (token STS) untuk Peran RAM
prod-roledari Alibaba Cloud Security Token Service (STS). RAM memverifikasi identitas Alice (misalnya, menggunakan Pasangan AccessKey), apakah Alice memiliki izin untuk mengasumsikan peran tersebut (sts:AssumeRole), serta apakah kebijakan kepercayaanprod-rolemengizinkan Alice mengasumsikannya (apakahPrincipalsesuai dengan Alice).Mendapatkan token STS. Setelah verifikasi berhasil, Alice menerima token STS yang dikembalikan oleh STS.
Mengakses sumber daya cloud sebagai peran tersebut. Alice menggunakan token STS untuk mengakses sumber daya cloud seperti OSS sebagai peran
prod-role. Permintaan ini dievaluasi berdasarkan kebijakan akses peranprod-role(misalnya,oss:*). Kredensial asli Alice tetap valid; hanya permintaan yang menggunakan token STS yang menggunakan izin peran tersebut.
Metode asumsi peran
Anda dapat mengasumsikan Peran RAM dengan cara-cara berikut:
Ganti identitas di Konsol — Setelah Pengguna RAM login ke Alibaba Cloud Management Console, pengguna tersebut menggunakan fitur Switch Identity untuk beralih ke peran target. Metode ini dijelaskan secara rinci dalam topik ini.
Panggil operasi API — Administrator atau developer menggunakan Alibaba Cloud CLI, SDK, atau OpenAPI untuk memanggil operasi
AssumeRole(atau operasi asumsi peran lainnya, sepertiAssumeRoleWithSAML) guna mendapatkan token STS. Metode ini dijelaskan secara rinci dalam topik ini.SSO berbasis peran — Pengguna login ke Konsol melalui SSO berbasis peran (berdasarkan protokol SAML 2.0) menggunakan penyedia identitas (IdP) perusahaan mereka. Saat proses login ke Konsol selesai, pengguna tersebut telah mengasumsikan Peran RAM.
Kaitkan peran ke sumber daya Alibaba Cloud — Kaitkan atau asosiasikan peran tersebut dengan sumber daya Alibaba Cloud tertentu (seperti Instance ECS, Function Compute, atau Pod ACK/ACS), lalu gunakan fitur bawaan platform Alibaba Cloud untuk menyelesaikan asumsi peran. Untuk informasi lebih lanjut, lihat Aplikasi di Alibaba Cloud mengakses sumber daya Alibaba Cloud.
Dua skenario terakhir tidak dijelaskan secara rinci dalam topik ini. Untuk petunjuk penggunaan, lihat dokumen referensi di atas.
Cara mengasumsikan Peran RAM
Pilih metode berdasarkan skenario Anda. Untuk semua metode asumsi peran yang tersedia, lihat Metode asumsi peran.
Operasi manual di Konsol — Beralih ke Peran RAM di Konsol untuk melakukan operasi secara interaktif.
Otomatisasi untuk program atau layanan — Panggil operasi STS untuk mendapatkan token STS, lalu gunakan token tersebut untuk mengakses sumber daya Alibaba Cloud secara programatik.
Operasi interaktif di command line — Gunakan Alibaba Cloud CLI untuk melakukan operasi sebagai Peran RAM.
Prasyarat
Sebelum mengasumsikan Peran RAM, pastikan persyaratan berikut terpenuhi:
Peran RAM target — Peran RAM target tersedia, dan kebijakan kepercayaannya mengizinkan identitas awal untuk mengasumsikan peran tersebut. Misalnya, kata kunci
Principaldalam kebijakan kepercayaan sesuai dengan identitas awal.Izin identitas awal — Identitas awal diberikan izin untuk mengasumsikan peran target. Sambungkan kebijakan sistem
AliyunSTSAssumeRoleAccessatau kebijakan kustom yang berisi operasists:AssumeRoleke identitas awal. Kebijakan sistemAliyunSTSAssumeRoleAccessmemungkinkan Pengguna RAM mengasumsikan semua Peran RAM. Untuk informasi lebih lanjut tentang otorisasi, lihat Memberikan izin kepada Pengguna RAM.Login SSO berbasis peran — Jika Anda login melalui SSO berbasis peran, Anda sudah login sebagai Peran RAM. Untuk beralih ke peran lain, pastikan peran saat ini memiliki izin untuk mengasumsikan peran target. Misalnya, jika identitas setelah login SSO berbasis peran adalah Peran A dan Anda ingin beralih ke Peran B, Peran A harus memiliki kebijakan akses yang mengizinkan asumsi Peran B.
Pasangan AccessKey (hanya untuk API dan CLI) — Persiapkan Pasangan AccessKey Pengguna RAM untuk autentikasi programatik. Untuk langkah-langkah detail, lihat Membuat dan menggunakan Pasangan AccessKey untuk akses programatik.
Mengasumsikan Peran RAM di Konsol
Setelah Anda login ke Konsol sebagai Pengguna RAM atau melalui SSO berbasis peran, Anda dapat mengasumsikan Peran RAM dengan mengganti identitas.
Prosedur1. Login ke Konsol RAM sebagai Pengguna RAM atau melalui SSO berbasis peran.
Arahkan kursor ke gambar profil di pojok kanan atas dan klik Switch Identity.

Di halaman Switch Role, masukkan informasi Peran RAM yang ingin Anda asumsikan.
a. enterprise alias / default domain name / ID akun Alibaba Cloud: Masukkan salah satu dari berikut: enterprise alias (alias akun) dari akun yang memiliki Peran RAM, nama domain default, atau ID akun Alibaba Cloud dari akun yang memiliki peran tersebut. Untuk beralih lintas akun, masukkan ID akun Alibaba Cloud dari akun target.
b. Role name: Nama Peran RAM yang ingin Anda asumsikan. Tanyakan kepada administrator Anda, atau lihat di halaman Identity Management > Roles di Konsol RAM.
Klik Submit.
Setelah identitas dialihkan, Anda mengoperasikan Konsol sebagai Peran RAM. Area gambar profil di pojok kanan atas Konsol menampilkan identitas saat ini dan identitas login (identitas awal). Panel tersebut mencakup label RAM role yang mengidentifikasi jenis identitas saat ini. Di bagian bawah, tersedia tombol Back to Logon Identity dan Sign Out.
(Opsional) Untuk kembali ke identitas login awal, arahkan kursor ke gambar profil di pojok kanan atas Konsol dan klik Back to Logon Identity. Setelah beralih, izin Peran RAM menjadi tidak berlaku, dan izin identitas awal dipulihkan.
Tabel berikut menjelaskan format tampilan identitas login dan identitas saat ini:
| Skenario login | Identitas login | Identitas saat ini |
| Login Pengguna RAM | <RAM username> | <RoleName>/<RAM username> |
| Login SSO berbasis peran (pertama kali) | Tidak ditampilkan | <RoleName>/<RoleSessionName> |
| Ganti identitas setelah login SSO berbasis peran | <SSO role name>/<RoleSessionName> | <Switched role name>/<RoleSessionName> |
Deskripsi field
RoleName: Nama peran yang sedang diasumsikan.RoleSessionName: Nama sesi. Ini adalah username RAM saat Pengguna RAM login. Pada login SSO berbasis peran, nilainya disediakan oleh IdP dan tetap tidak berubah setelah Anda mengganti identitas.
Contoh
Pengguna Tom (UPN: tom@example.com, di mana UPN adalah User Principal Name) login ke Konsol melalui SSO berbasis peran sebagai peran test-saml-role1, lalu beralih ke peran alice-testrole. Asumsikan bahwa RoleSessionName adalah UPN pengguna. Identitas login dan identitas saat ini adalah sebagai berikut:
Identitas login:
test-saml-role1/tom@example.comIdentitas saat ini:
alice-testrole/tom@example.com
Mengasumsikan Peran RAM dengan memanggil operasi API
Anda dapat memanggil operasi STS untuk mengasumsikan Peran RAM dan mendapatkan token STS dari peran yang diasumsikan. Saat program atau layanan mengakses sumber daya Alibaba Cloud dengan token STS, program tersebut dapat melakukan operasi dalam batas izin peran yang diasumsikan.
Operasi asumsi peran
Tabel berikut menjelaskan operasi asumsi peran STS. Pilih operasi berdasarkan metode kredensial atau federasi identitas pemanggil.
| API | Deskripsi |
| AssumeRole | Mendapatkan token STS untuk mengasumsikan Peran RAM. Berlaku untuk skenario asumsi peran yang menggunakan kredensial seperti Pasangan AccessKey atau token STS. |
| AssumeRoleWithSAML | Mendapatkan token STS menggunakan Pernyataan SAML. Berlaku untuk skenario SSO berbasis peran SAML. |
| AssumeRoleWithOIDC | Mendapatkan token STS menggunakan token OpenID Connect (OIDC). Berlaku untuk skenario SSO berbasis peran OIDC. |
Saat memanggil operasi di atas, Anda harus menggunakan parameter RoleArn untuk menentukan Peran RAM yang ingin Anda asumsikan. Format ARN adalah acs:ram::<ID akun Alibaba Cloud>:role/<nama peran>.
Anda juga dapat meneruskan parameter Policy (kebijakan sesi) untuk lebih membatasi izin peran yang diasumsikan dalam sesi peran saat ini.
Izin yang diperlukan
Izin yang diperlukan berbeda-beda tergantung pada operasi yang Anda gunakan untuk asumsi peran:
Jika Anda menggunakan operasi AssumeRole, pemanggil harus diberikan izin operasi
sts:AssumeRole. Misalnya, Anda dapat menyambungkan kebijakan sistemAliyunSTSAssumeRoleAccesske pemanggil.Jika Anda menggunakan operasi AssumeRoleWithSAML atau AssumeRoleWithOIDC, Anda hanya perlu mengonfigurasi IdP SAML atau OIDC tepercaya dengan benar dalam kebijakan kepercayaan Peran RAM target. Tidak perlu memberikan kebijakan akses RAM secara terpisah ke identitas eksternal.
Anda dapat menggunakan kit pengembangan perangkat lunak (SDK) Alibaba Cloud untuk memanggil operasi asumsi peran guna mengasumsikan Peran RAM. Untuk contoh kode, lihat dokumentasi SDK terkait, seperti Menggunakan Pasangan AccessKey danRamRoleArnuntuk mendapatkan token STS (Python SDK).
Untuk memverifikasi bahwa token STS berfungsi, gunakan token tersebut untuk memanggil operasi GetCallerIdentity STS. Respons berisi ARN dari peran yang diasumsikan.
Mengasumsikan Peran RAM menggunakan Alibaba Cloud CLI
Contoh berikut menunjukkan cara menggunakan Alibaba Cloud CLI untuk mengasumsikan Peran RAM admin-role dan menyelesaikan tugas manajemen sebagai peran tersebut.
Konfigurasikan kredensial identitas untuk Alibaba Cloud CLI. Contoh ini menggunakan mode
RamRoleArn, yang menggunakan Pasangan AccessKey Pengguna RAM sebagai metode autentikasi untuk menyelesaikan asumsi peran.aliyun configure --profile RamRoleArnProfile --mode RamRoleArnSesuai prompt, masukkan ID AccessKey, Rahasia AccessKey, ARN peran yang ingin Anda asumsikan, nama sesi peran, dan informasi lainnya. Untuk informasi lebih lanjut tentang parameter dan penggunaan, lihat Mengonfigurasi kredensial untuk Alibaba Cloud CLI.
Configuring profile 'RamRoleArnProfile' in 'RamRoleArn' authenticate mode... Access Key Id []: <yourAccessKeyID> Access Key Secret []: <yourAccessKeySecret> Sts Region []: cn-shanghai Ram Role Arn []: acs:ram::012345678910****:role/admin-role Role Session Name []: user-name External ID []: abcd1234 Expired Seconds [900]: 900 Default Region Id []: cn-shanghai Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[RamRoleArnProfile] ...Done.Expired Secondsmempertahankan nilai default 900 detik (15 menit) yang ditampilkan dalam prompt CLI. Nilai ini berbeda dari nilai default (3.600 detik) parameterDurationSecondsoperasiAssumeRole*.Setelah autentikasi selesai, jalankan perintah yang diperlukan dengan profil tersebut. Identitas yang digunakan untuk menjalankan perintah adalah Peran RAM yang diasumsikan
admin-role, bukan Pengguna RAM pemilik Pasangan AccessKey.aliyun ram ListUsers --profile RamRoleArnProfilealiyun sts GetCallerIdentity --profile RamRoleArnProfile. Respons berisi ARN dari peran yang diasumsikan. Untuk mengasumsikan Peran RAM lain sebagai peran yang telah diasumsikan, lihat Rantai peran.
Jika asumsi peran gagal
Jika administrator mengonfigurasi aturan kondisi khusus untuk Peran RAM target, seperti sts:ExternalId atau sts:SourceIdentity, atau jika peran target hanya memercayai pihak utama tertentu seperti Pengguna RAM tertentu, asumsi peran mungkin gagal.
Jika asumsi peran gagal atau panggilan API mengembalikan error terkait izin, periksa kebijakan akses yang diberikan kepada identitas awal dan kebijakan kepercayaan peran target.
Asumsi peran cross-account
Asumsi peran cross-account memungkinkan Anda menggunakan identitas (Pengguna RAM atau Peran RAM) di bawah satu Akun Alibaba Cloud untuk mengasumsikan Peran RAM di bawah Akun Alibaba Cloud lain, sehingga dapat mengakses sumber daya akun tersebut.
Asumsi peran cross-account memerlukan kondisi berikut:
Peran target harus memercayai akun sumber, atau Pengguna RAM atau Peran RAM di bawah akun sumber. Hal ini ditentukan oleh kata kunci
Principaldalam kebijakan kepercayaan peran target.Identitas awal harus memiliki izin operasi
Untuk informasi lebih lanjut, lihat Melakukan asumsi peran cross-account.sts:AssumeRole.
Rantai peran
Rantai peran adalah proses di mana identitas RAM (atau identitas SSO berbasis peran) mengasumsikan satu peran, lalu terus mengasumsikan peran lain sebagai peran tersebut. Rantai peran dibangun di atas mekanisme asumsi peran standar yang dijelaskan dalam topik ini.
Agar Peran A dapat terus mengasumsikan Peran B, Peran A harus diberikan izin operasi sts:AssumeRole, dan Peran B harus memercayai Peran A.
Contoh berikut menggunakan Alibaba Cloud CLI untuk menunjukkan cara menggunakan rantai peran:
Ikuti contoh di Menggunakan CLI untuk mengasumsikan Peran RAM untuk mengonfigurasi Alibaba Cloud CLI dan mengasumsikan peran
admin-role(peran sumber).Tambahkan kebijakan sistem
AliyunSTSAssumeRoleAccesske peranadmin-role.Buat Peran RAM target, misalnya bernama
target-role. Ubah kebijakan kepercayaan peran target dan tentukan identitas sebagaiadmin-roledalam kata kunciPrincipal:{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<ACCOUNT_ID>:role/admin-role" ] } } ], "Version": "1" }Gunakan mode ChainableProfile untuk mengonfigurasi Alibaba Cloud CLI.
aliyun configure --profile ChainableProfile --mode ChainableRamRoleArnSesuai prompt, masukkan nama profil sumber, ARN peran yang ingin terus diasumsikan, dan informasi lainnya.
Configuring profile 'ChainableProfile' in 'ChainableRamRoleArn' authenticate mode... Source Profile []: RamRoleArnProfile Sts Region []: cn-shanghai Ram Role Arn []: acs:ram::012345678910****:role/target-role Role Session Name []: user-name External ID []: abcd1234 Expired Seconds [900]: 900 Default Region Id []: cn-shanghai Default Output Format [json]: json (Only support json) Default Language [zh|en] zh: en Saving profile[ChainableProfile] ...Done.Setelah autentikasi selesai, jalankan perintah berikut untuk melihat informasi identitas pemanggil saat ini. Respons berisi ARN dari peran target.
Dalam skenario rantai peran, pelacakan identitas pemanggil peran awal melalui log audit menjadi sulit. Sebagai praktik terbaik, aktifkan audit asumsi peran.aliyun sts GetCallerIdentity --profile ChainableProfile
Durasi sesi peran
Sesi peran adalah sesi akses berdurasi terbatas yang dibuat setelah pihak utama, seperti Pengguna RAM atau entitas tepercaya lainnya, berhasil mengasumsikan peran. Durasi sesi peran mengontrol berapa lama Anda dapat melakukan operasi sebagai peran tersebut. Setelah sesi berakhir, Anda harus mengasumsikan peran tersebut lagi untuk mendapatkan sesi baru.
Konsol
| Faktor penentu | Nilai default | Rentang valid | Deskripsi |
| Durasi sesi maksimum | 1 jam | 1 hingga 12 jam | Dapat dikonfigurasi untuk setiap peran secara individual. |
| Kedaluwarsa sesi login | 6 jam | 1 hingga 24 jam | Pengaturan global yang berlaku untuk semua Pengguna RAM dan Peran RAM. |
Durasi sesi efektif adalah nilai terkecil dari dua faktor di atas. Misalnya, jika kedaluwarsa sesi login diatur ke 8 jam dan durasi sesi maksimum Peran A diatur ke 1 jam, setelah Anda beralih ke Peran A, durasi sesinya adalah 1 jam. Setelah sesi berakhir, ganti identitas lagi untuk mengasumsikan peran tersebut.
OpenAPI
| Faktor penentu | Nilai default | Rentang valid | Deskripsi |
| Durasi sesi maksimum | 1 jam | 1 hingga 12 jam | Dapat dikonfigurasi untuk setiap peran secara individual. |
DurationSeconds parameter | 3.600 detik (1 jam) | 900 detik (15 menit) hingga durasi sesi maksimum | Ditentukan saat Anda memanggil operasi AssumeRole*. |
| Validitas respons SAML/token OIDC | Ditentukan oleh IdP (biasanya 1 jam) | Ditentukan oleh IdP | Hanya untuk skenario SSO berbasis peran, saat Anda mendapatkan token STS melalui operasi AssumeRoleWithSAML atau AssumeRoleWithOIDC. |
Durasi sesi efektif adalah nilai terkecil dari faktor-faktor di atas. Setelah sesi berakhir, panggil kembali operasi AssumeRole* untuk mengasumsikan peran tersebut.
Untuk mempelajari cara mengonfigurasi durasi sesi maksimum dan kedaluwarsa sesi login, lihat Mengonfigurasi durasi sesi maksimum Peran RAM dan Mengonfigurasi kedaluwarsa sesi login.
FAQ
Bagaimana cara membatasi pengguna agar hanya dapat mengasumsikan Peran RAM tertentu
Kebijakan sistem AliyunSTSAssumeRoleAccess memungkinkan asumsi semua Peran RAM. Untuk membatasi asumsi peran hanya pada Peran RAM tertentu, konfigurasikan kebijakan akses kustom untuk identitas awal dan ubah kebijakan kepercayaan peran target. Untuk informasi lebih lanjut, lihat Bagaimana cara membatasi Pengguna RAM tertentu agar tidak dapat mengasumsikan Peran RAM tertentu.
Apakah Akun Alibaba Cloud dapat mengasumsikan Peran RAM
Tidak. Akun Alibaba Cloud (akun root) tidak dapat beralih ke Peran RAM di Konsol, dan tidak dapat mengasumsikan Peran RAM dengan memanggil operasi AssumeRole.
Apa yang harus saya lakukan jika kredensial sementara yang diperoleh melalui asumsi peran bocor
Jika kredensial sementara yang Anda peroleh melalui asumsi peran bocor, Anda dapat mencabut semua token STS yang telah dikeluarkan. Untuk informasi lebih lanjut, lihat Apa yang harus saya lakukan jika token STS bocor.