Peran RAM adalah identitas tanpa kredensial jangka panjang yang diasumsikan oleh entitas tepercaya untuk memperoleh akses sementara ke resource Alibaba Cloud.
Apa itu peran RAM?
Peran RAM adalah jenis identitas RAM yang memiliki kebijakan terlampir. Berbeda dengan Pengguna RAM, peran tidak terikat pada satu orang atau aplikasi tertentu—setiap entitas tepercaya dapat mengasumsikannya. Peran tidak memiliki kredensial jangka panjang seperti kata sandi atau pasangan Kunci Akses. Ketika suatu entitas tepercaya mengasumsikan peran, Security Token Service (STS) menghasilkan kredensial keamanan sementara yang hanya berlaku untuk sesi tersebut.
Setiap peran RAM merupakan resource dalam akun Anda dengan Alibaba Cloud Resource Name (ARN) unik: acs:ram::<account-id>:role/<role-name>, yang digunakan untuk mereferensikan peran tersebut dalam kebijakan atau panggilan API. Untuk menemukan ARN peran, lihat View a RAM role.
Peran RAM dan Pengguna RAM dikelola melalui menu konsol yang berbeda:
-
RAM roles: Di panel navigasi sebelah kiri, pilih Identity Management > Roles.
-
RAM users: Di panel navigasi sebelah kiri, pilih Identity Management > Users.
Anda juga dapat menggunakan format ARN untuk membedakan jenis identitas tersebut: ARN yang berisi :role/ mengidentifikasi peran RAM (misalnya, acs:ram::123456789012:role/adminrole), sedangkan ARN yang berisi :user/ mengidentifikasi Pengguna RAM (misalnya, acs:ram::123456789012:user/user1).
Jika Anda tidak menemukan identitas yang dicari dalam daftar peran, carilah di daftar pengguna, dan sebaliknya.
Mengapa menggunakan peran RAM?
Peran RAM meningkatkan keamanan dan efisiensi akses:
-
Hak istimewa sementara yang ditingkatkan: Berikan hak istimewa tinggi kepada entitas tepercaya untuk tugas tertentu tanpa menyimpan kredensial jangka panjang berhak istimewa tinggi.
-
Akses resource cross-account: Berikan akses kepada entitas tepercaya di satu akun untuk mengakses resource di akun lain, memungkinkan manajemen terpusat tanpa duplikasi identitas.
-
Akses layanan dan aplikasi yang aman: Aplikasi pada instans Elastic Compute Service (ECS) atau layanan lain mengasumsikan peran melalui
AssumeRoleuntuk mendapatkan kredensial sementara, sehingga menghindari penyematan pasangan Kunci Akses secara langsung dalam kode aplikasi.
Konsep utama
Pahami konsep-konsep berikut sebelum bekerja dengan peran RAM.
Principal
Principal adalah identitas yang dapat mengasumsikan peran. Kebijakan kepercayaan peran tersebut menentukan principal mana yang dipercaya. Principal terbagi menjadi tiga jenis:
|
Jenis |
Deskripsi |
Kasus penggunaan umum |
|
Alibaba Cloud account |
Identitas apa pun dalam akun tersebut—akun itu sendiri, pengguna RAM, atau peran RAM lain—dapat mengasumsikan peran tersebut. Akun tersebut dapat menjadi pemilik peran atau akun yang berbeda. |
Pengguna RAM beralih identitas di konsol atau memanggil |
|
Alibaba Cloud service |
Layanan cloud tertentu dapat mengasumsikan peran tersebut. Ini disebut service role. |
Delegasikan layanan cloud untuk bertindak atas nama Anda. Misalnya, sambungkan instance RAM role ke instans ECS agar aplikasinya dapat mengakses bucket Object Storage Service (OSS). Banyak layanan cloud juga menggunakan service-linked role—peran yang telah ditentukan sebelumnya dan dikaitkan dengan layanan tersebut—untuk mengaktifkan fungsionalitasnya. |
|
Identity provider (IdP) |
Pengguna dari IdP tertentu (yang mendukung SAML 2.0 atau OIDC) dapat mengasumsikan peran tersebut. Hal ini memungkinkan federasi identitas. |
Pengguna dari IdP perusahaan Anda dapat menggunakan single sign-on (SSO) berbasis peran untuk login ke konsol Alibaba Cloud. Pengguna federasi dapat memanggil operasi |
Ketika akun Alibaba Cloud menjadi principal tepercaya, semua identitas dalam akun tersebut dapat mengasumsikan peran tersebut secara default. Untuk membatasi akses hanya ke Pengguna RAM atau peran tertentu, Modify the trust policy of a RAM role.
Role assumption
Mengasumsikan peran RAM adalah cara principal tepercaya memperoleh izin peran tersebut secara sementara. STS menerbitkan kredensial keamanan sementara dan memulai role session, di mana izin identitas asli ditangguhkan. Peran tersebut dapat berada di akun yang sama atau berbeda (asumsi cross-account).
Anda dapat assume a role dengan beralih identitas di konsol atau dengan memanggil operasi API seperti AssumeRole atau AssumeRoleWithSAML / AssumeRoleWithOIDC.
Trust policy
Kebijakan kepercayaan adalah dokumen JSON wajib yang dilampirkan pada peran RAM dan menentukan principal mana—akun, pengguna, peran, atau layanan—yang dapat mengasumsikan peran tersebut. Ini merupakan kebijakan berbasis resource di mana resource-nya adalah peran itu sendiri.
Fungsi utama:
-
Menentukan siapa yang dapat mengasumsikan peran: Elemen
Principalmenentukan principal tepercaya. -
Mengontrol kondisi asumsi: Tambahkan elemen
Conditionuntuk membatasi kapan peran dapat diasumsikan, misalnya dengan mewajibkan MFA atau IP sumber tertentu. -
Bekerja sama dengan kebijakan akses: Kebijakan kepercayaan menentukan siapa yang dapat mengasumsikan peran; access policies menentukan apa yang dapat dilakukan peran setelah diasumsikan.
Contoh:
Kebijakan kepercayaan ini memungkinkan identitas apa pun dalam akun 123456789012**** untuk mengasumsikan peran tersebut:
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::123456789012****:root"
]
}
}
],
"Version": "1"
}
Role session
Ketika suatu principal mengasumsikan peran, sesi peran dimulai. Kredensial sementara STS terikat pada sesi ini, dan semua tindakan yang dilakukan dengannya dikaitkan dengan sesi tersebut.
Sesi peran memiliki:
-
Nama sesi (
RoleSessionName): Pengenal sesi yang diberikan pengguna dan muncul dalam log ActionTrail, memungkinkan Anda melacak tindakan ke principal yang mengasumsikan peran tersebut. -
Durasi sesi: Siklus hidup tetap; kredensial kedaluwarsa saat sesi berakhir.
Berikan kebijakan sesi inline saat mengasumsikan peran untuk mempersempit izin dalam sesi tertentu. Izin efektif merupakan irisan antara kebijakan akses peran dan kebijakan sesi. Untuk informasi lebih lanjut, lihat parameter Policy dalam referensi API AssumeRole.
Role chaining
Role chaining terjadi ketika suatu peran digunakan untuk mengasumsikan peran lain. Misalnya, Pengguna RAM mengasumsikan Peran A, lalu menggunakan token STS-nya untuk mengasumsikan Peran B. Peran-peran tersebut dapat berada di akun yang sama atau berbeda.
Pola ini umum digunakan di lingkungan multi-akun. Misalnya, developer melakukan federasi ke akun jump pusat (Peran A), lalu mengasumsikan peran berhak istimewa (Peran B) di akun produksi untuk tugas tertentu.
Rantai peran menggunakan Alibaba Cloud CLI, SDK, atau konsol. Use role chaining.
Perbedaan antara peran RAM dan pengguna RAM
Peran dan pengguna keduanya merupakan identitas RAM tetapi memiliki tujuan berbeda.
|
Item perbandingan |
RAM user |
RAM role |
|
Penggunaan |
Merepresentasikan orang atau aplikasi tertentu dan digunakan secara langsung |
Merepresentasikan sekumpulan izin dan harus diasumsikan oleh principal |
|
Kredensial |
Memiliki kredensial jangka panjang (password dan/atau pasangan Kunci Akses) |
Tidak memiliki kredensial jangka panjang. Kredensial sementara (token STS) dihasilkan saat peran diasumsikan |
|
Masa berlaku kredensial |
Jangka panjang (sampai diubah atau dihapus secara manual) |
Sementara dan kedaluwarsa setelah durasi yang dapat dikonfigurasi |
|
Trust policy |
Tidak ada |
Memerlukan trust policy untuk menentukan siapa yang dapat mengasumsikan peran tersebut |
Peran RAM bukan wadah pengguna
Peran RAM tidak memiliki daftar anggota. Saat Anda membuka halaman detail peran RAM, Anda tidak akan melihat daftar pengguna.
Pengguna RAM mengasumsikan peran sebagai berikut:
-
Konfigurasikan entitas tepercaya di tab Trust Policy pada halaman detail peran.
-
Pengguna RAM memanggil operasi STS
AssumeRoleuntuk memperoleh kredensial sementara. -
Pengguna RAM menggunakan kredensial sementara tersebut untuk mengakses resource sebagai peran tersebut.
Hal ini berbeda dengan kelompok pengguna. Kelompok pengguna memiliki tab Group Member Management tempat Anda dapat langsung menambahkan dan melihat anggota, tetapi peran RAM tidak memiliki daftar anggota.
Untuk batasan terkait peran RAM, lihat Limitations.
Kasus penggunaan
-
Pemberian hak istimewa sementara yang ditingkatkan
Developer dengan izin terbatas sehari-hari mengasumsikan peran dengan hak istimewa administratif untuk melakukan operasi sensitif, seperti memodifikasi database produksi. Setelah tugas selesai, hak istimewa kembali ke set terbatas, menerapkan prinsip hak istimewa minimal.
-
Delegasi akses antar-akun
Organisasi memiliki akun Alibaba Cloud terpisah untuk pengembangan (Akun A) dan produksi (Akun B). Untuk memungkinkan pipeline CI/CD yang berjalan di Akun A men-deploy aplikasi ke ECS di Akun B, Anda dapat:
-
Buat peran di Akun B yang mempercayai Akun A.
-
Berikan izin kepada peran layanan CI/CD di Akun A untuk mengasumsikan peran tersebut di Akun B.
-
Pipeline CI/CD mengasumsikan peran di Akun B untuk memperoleh kredensial guna men-deploy aplikasi.
-
-
Pemberian akses ke layanan Alibaba Cloud
Aplikasi pada instans ECS perlu membaca dari bucket OSS. Alih-alih menyematkan pasangan Kunci Akses, buat service role dengan izin baca dan sambungkan ke instans tersebut. Aplikasi menggunakan kredensial sementara yang disediakan secara otomatis untuk mengakses OSS.
Untuk informasi lebih lanjut, lihat Instance RAM roles.
-
Pemberian akses bagi pengguna federasi
Perusahaan Anda menggunakan IdP eksternal (seperti Microsoft Entra ID atau Okta). Konfigurasikan federasi identitas dengan SAML 2.0 atau OIDC dan buat peran RAM yang mempercayai IdP tersebut. Pengguna terautentikasi mengasumsikan peran tersebut untuk mengakses Alibaba Cloud, memungkinkan manajemen pengguna terpusat tanpa membuat Pengguna RAM individual.
Overview of role-based SSO by using SAML dan Overview of role-based SSO by using OIDC.