Menjawab pertanyaan umum mengenai peran RAM dan token STS, termasuk izin, masa berlaku, batas laju permintaan, dan keamanan.
Mengapa saya mendapatkan error "You are not authorized..." saat memanggil AssumeRole?
Pemanggilan AssumeRole dapat mengembalikan error berikut:
Error message: You are not authorized to do this action. You should be authorized by RAM.
Kemungkinan penyebabnya:
-
Anda memanggil operasi ini sebagai akun Alibaba Cloud.
AssumeRole tidak dapat dipanggil oleh akun Alibaba Cloud. Gunakan RAM user atau role sebagai gantinya.
-
Identitas pemanggil tidak memiliki izin untuk mengasumsikan role tersebut.
Sambungkan kebijakan AliyunSTSAssumeRoleAccess atau kebijakan kustom ke identitas pemanggil. Kebijakan kustom harus mengizinkan aksi sts:AssumeRole, seperti yang ditunjukkan dalam Contoh kebijakan di bawah ini.
-
Kebijakan kepercayaan role tersebut tidak mencantumkan identitas pemanggil sebagai principal.
Perbarui kebijakan kepercayaan role target agar mengizinkan identitas pemanggil untuk mengasumsikannya. Untuk informasi selengkapnya, lihat Mengubah kebijakan kepercayaan peran RAM.
Siapa yang dapat memanggil operasi API AssumeRole?
Hanya RAM user atau role yang dapat memanggil AssumeRole untuk mendapatkan kredensial keamanan temporary bagi suatu RAM role. Akun Alibaba Cloud tidak dapat memanggil operasi ini.
Apa saja jenis peran RAM dan siapa yang dapat mengasumsikannya?
RAM menyediakan jenis role berikut berdasarkan principal:
|
Type |
Description |
Common use cases |
|
Alibaba Cloud account |
Setiap identitas dalam akun—akun itu sendiri, RAM user, atau RAM role lainnya—dapat mengasumsikan role tersebut. Akun tersebut dapat menjadi pemilik role atau akun yang berbeda. |
RAM user melakukan pergantian identitas di Konsol atau memanggil |
|
Alibaba Cloud service |
Layanan cloud tertentu dapat mengasumsikan role tersebut. Ini disebut service role. |
Mendelegasikan layanan cloud untuk bertindak atas nama Anda. Misalnya, sambungkan instance RAM role ke instance ECS agar aplikasinya dapat mengakses bucket Object Storage Service (OSS). Banyak layanan cloud juga menggunakan service-linked role—role yang telah ditentukan sebelumnya dan terhubung dengan layanan tersebut—untuk mengaktifkan fungsionalitasnya. |
|
Identity provider (IdP) |
Pengguna dari IdP tertentu (yang mendukung SAML 2.0 atau OIDC) dapat mengasumsikan role tersebut. Hal ini memungkinkan federasi identitas. |
Pengguna dari IdP perusahaan Anda dapat menggunakan single sign-on (SSO) berbasis role untuk login ke Konsol Alibaba Cloud. Pengguna federasi dapat memanggil operasi |
Bagaimana cara membatasi RAM user tertentu agar tidak dapat mengasumsikan RAM role tertentu?
-
Perbarui kebijakan kepercayaan RAM role tersebut.
Dalam kebijakan kepercayaan RAM role, gunakan elemen
Principaluntuk menentukan RAM user yang diizinkan mengasumsikan role tersebut. Dalam kebijakan, ganti<account-id>dengan ID akun Alibaba Cloud Anda, dan<user-name>dengan nama RAM user tersebut. Untuk informasi selengkapnya, lihat Mengubah kebijakan kepercayaan peran RAM.Contoh kebijakan:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<account-id>:user/<user-name>" ] } } ], "Version": "1" } -
Berikan izin kepada RAM user untuk mengasumsikan role tersebut.
Sambungkan kebijakan AliyunSTSAssumeRoleAccess atau kebijakan kustom ke RAM user tersebut. Kebijakan kustom memungkinkan Anda membatasi role mana saja yang dapat diasumsikan oleh user tersebut.
Dalam kebijakan kustom, gunakan elemen
Resourceuntuk menentukan ARN dari RAM role yang dapat diasumsikan. Dalam kebijakan, ganti<account-id>dengan ID akun Alibaba Cloud Anda, dan<role-name>dengan nama RAM role tersebut. Untuk informasi selengkapnya, lihat Membuat kebijakan kustom dan Mengelola izin RAM user.Contoh kebijakan:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Resource": "acs:ram:*:<account-id>:role/<role-name>" } ], "Version": "1" }
Bagaimana cara melihat ARN dari suatu RAM role?
-
Login ke Konsol RAM.
-
Di panel navigasi sebelah kiri, pilih .
-
Klik nama RAM role yang dituju.
-
Di bagian Basic Information, temukan dan salin ARN role tersebut.

Apakah ada batas permintaan API untuk STS?
AssumeRole dibatasi hingga 100 permintaan per detik per akun Alibaba Cloud (dibagi bersama oleh semua RAM user dan role).
Jika Anda melebihi batas ini, STS akan mengembalikan salah satu pesan error berikut:
-
Pesan error
Error code
Error message
Throttling.Api
Request was denied due to api flow control.
Throttling.User
Request was denied due to user flow control.
Throttling
Request was denied due to flow control.
-
Kode status
302
Untuk mengatasi error ini, kurangi laju permintaan Anda. Untuk meminta kuota yang lebih tinggi, ajukan tiket.
Apa saja batasan izin token STS?
Izin token STS merupakan irisan antara kebijakan berbasis identitas dari role tersebut dan kebijakan sesi yang Anda sertakan dalam parameter Policy pada pemanggilan AssumeRole.
Jika Anda tidak menentukan kebijakan sesi saat memanggil AssumeRole, token STS yang dikembalikan memiliki izin yang sama dengan role tersebut.
Berapa lama masa berlaku token STS?
Token STS secara default berlaku selama 3.600 detik (1 jam). Rentang yang valid: 900 detik (15 menit) hingga durasi sesi maksimum role tersebut.
-
Tentukan masa berlaku token dengan parameter DurationSeconds pada AssumeRole.
-
Untuk mengonfigurasi durasi sesi maksimum suatu role, lihat Menetapkan durasi sesi maksimum untuk peran RAM.
Apakah beberapa token STS untuk role yang sama dapat berlaku secara bersamaan?
Ya. Setiap token tetap berlaku hingga masa berlakunya habis. Membuat token baru tidak membatalkan token yang sudah ada.
Apa yang harus saya lakukan jika token STS bocor?
Jika token STS dikompromikan, batalkan semua token aktif untuk role tersebut dengan mencabut izinnya atau menghapus role tersebut:
-
Login ke Konsol RAM.
-
Cabut semua kebijakan dari RAM role tersebut.
Untuk informasi selengkapnya, lihat Mencabut izin dari peran RAM.
-
Atau, hapus seluruh RAM role tersebut.
Untuk informasi selengkapnya, lihat Menghapus peran RAM.
Tindakan ini langsung membatalkan semua token STS yang belum kedaluwarsa untuk role tersebut.
Untuk melanjutkan penggunaan role tersebut setelahnya, buat role baru dengan nama dan kebijakan yang sama.
Apakah ada panjang maksimum untuk token STS?
Tidak. Panjang token bersifat variabel. Jangan mengasumsikan adanya panjang maksimum dalam kode Anda.