Topik ini menjelaskan cara mengatasi dan menyelesaikan error izin yang terjadi ketika Pengguna RAM atau Peran RAM mengakses sumber daya Alibaba Cloud.
Deskripsi masalah
Secara default, entitas berwenang RAM seperti Pengguna RAM dan Peran RAM tidak memiliki izin apa pun. Mereka hanya dapat mengakses sumber daya cloud tertentu setelah secara eksplisit diberikan izin tersebut. Izin dapat berupa Allow atau Deny. Ketika entitas berwenang RAM melakukan suatu aksi pada sumber daya Alibaba Cloud, error akses ditolak akan dikembalikan jika aksi tersebut secara eksplisit ditolak atau tidak secara eksplisit diizinkan (dikenal sebagai penolakan implisit). Error tersebut mencakup:
-
Error akses konsol: Pesan
Permission Deniedditampilkan. -
Error panggilan API: Kode kesalahan seperti
NoPermission,Forbidden.RAM, atauNotAuthorizeddikembalikan.
Solusi
Akses konsol
Sebagian besar pesan pop-up akses ditolak di konsol menyediakan informasi diagnostik terperinci mengenai error tersebut.
Ikuti langkah-langkah berikut untuk mendiagnosis dan menyelesaikan error tersebut.
-
Identifikasi entitas berwenang.
Bagian auth subject menyediakan informasi terperinci mengenai entitas berwenang yang membuat permintaan tersebut. Detailnya meliputi:
-
Identity Type: Jenis entitas berwenang, seperti Pengguna RAM, Peran RAM, atau pengguna federasi.
-
Identity Information: Pengenal unik dari entitas berwenang. Untuk Pengguna RAM, ini adalah ID pengguna. Untuk Peran RAM, formatnya adalah
RoleName:RoleSessionName. Untuk pengguna federasi, formatnya sepertisaml-provider/AzureAD. -
account ID: ID akun Alibaba Cloud yang memiliki entitas berwenang tersebut.
-
-
Identifikasi izin yang hilang.
Bidang Action menunjukkan aksi spesifik yang ditolak, yang dapat Anda gunakan untuk mendiagnosis atau memberikan izin tersebut.
-
Identifikasi jenis kebijakan yang relevan.
Bidang Policy Type menunjukkan jenis kebijakan yang menyebabkan penolakan, termasuk control policy, session policy, trust policy, dan identity-based policy (di tingkat akun atau kelompok sumber daya). Untuk informasi lebih lanjut, lihat Policy evaluation process.
Jenis kebijakan menentukan cara Anda menyesuaikan kebijakan tersebut:
-
Jika aksi ditolak oleh control policy, hubungi administrator akun manajemen di Resource Directory Anda untuk memberikan izin tersebut. Kebijakan kontrol menetapkan batasan izin untuk akun anggota dalam Resource Directory dan memiliki prioritas lebih tinggi daripada kebijakan di dalam akun.
-
Jika aksi ditolak oleh session policy, hubungi administrator akun Anda untuk memeriksa kebijakan sesi yang diteruskan saat operasi API AssumeRole dipanggil.
-
Jika aksi ditolak oleh trust policy, hubungi administrator akun Anda untuk memeriksa kebijakan kepercayaan dari Peran RAM yang diasumsikan.
-
Jika aksi ditolak oleh identity-based policy, hubungi administrator akun Anda untuk memeriksa kebijakan izin yang disambungkan ke entitas berwenang tersebut.
-
-
Tentukan apakah penolakan tersebut merupakan implicit deny atau explicit deny.
-
Implicit deny: Pesan kesalahan menunjukkan bahwa aksi tersebut tidak diizinkan, dan bidang Denied Type menampilkan
Insufficient Permissions. Dalam kasus ini, administrator akun Anda harus memberikan izin yang diperlukan dengan menambahkan Action ke pernyataan Allow dalam suatu kebijakan. -
Explicit deny: Pesan kesalahan menunjukkan bahwa aksi tersebut secara eksplisit ditolak, dan bidang Denied Type menampilkan
Explicit Deny. Dalam kasus ini, administrator akun Anda harus meninjau kebijakan yang disambungkan dan memeriksa apakah pernyataan Deny mencakup Action.CatatanJika jenis kebijakan adalah control policy, explicit deny juga dikembalikan jika aksi yang diminta tidak termasuk dalam pernyataan Allow.
-
Sebagai tambahan, untuk produk yang mendukung diagnosis izin, Anda dapat mengklik Troubleshooting pada pop-up error untuk melihat penyebab dan solusi error tersebut.
Bagian Solution pada pop-up diagnosis izin merekomendasikan kebijakan sistem yang relevan, seperti AliyunRAMFullAccess dan AliyunRAMReadOnlyAccess. Pop-up tersebut juga menyediakan tindakan cepat seperti View Authorization, Create Policy, dan Add Permission.
Panggilan API
Tanggapan kesalahan dari panggilan API yang dilakukan menggunakan SDK Alibaba Cloud, CLI, atau OpenAPI Developer Portal menyediakan informasi terperinci. Contoh berikut menunjukkan tanggapan kesalahan yang dikembalikan selama debugging di OpenAPI Developer Portal.
{
"RequestId": "1090E608-D26F-5A08-BAE3-80D350E9FE20",
"HostId": "ram.aliyuncs.com",
"Code": "NoPermission",
"Message": "You are not authorized to do this action. Resource: acs:ram:*:xxx:user/* Action: ram:ListUsers",
"Recommend": "https://next.api.aliyun.com/troubleshoot?q=NoPermission&product=Ram",
"AccessDeniedDetail": {
"PolicyType": "AccountLevelIdentityBasedPolicy",
"AuthPrincipalOwnerId": "xxx",
"EncodedDiagnosticMessage": "AQIBIAAAAMDAbkn...jHF4TLvjT8hp17I0RFKObkV4=",
"AuthPrincipalType": "SubUser",
"AuthPrincipalDisplayName": "xxx",
"NoPermissionType": "ExplicitDeny",
"AuthAction": "ram:ListUsers"
}
}
Bidang AccessDeniedDetail dalam tanggapan kesalahan berisi detail mengenai error izin tersebut. Ikuti langkah-langkah berikut untuk menemukan penyebab dan menyelesaikan masalah tersebut.
-
Identifikasi entitas berwenang.
-
AuthPrincipalType: Jenis entitas berwenang. SubUser menunjukkan Pengguna RAM, AssumedRoleUser menunjukkan Peran RAM, dan Federated menunjukkan pengguna federasi.
-
AuthPrincipalDisplayName: Pengenal unik dari entitas berwenang. Untuk Pengguna RAM, ini adalah ID pengguna. Untuk Peran RAM, formatnya adalah
RoleName:RoleSessionName. Untuk pengguna federasi, formatnya sepertisaml-provider/AzureAD. -
AuthPrincipalOwnerId: ID akun Alibaba Cloud yang memiliki entitas berwenang tersebut.
-
-
Identifikasi izin yang hilang.
Bidang AuthAction menunjukkan aksi spesifik yang ditolak, yang dapat Anda gunakan untuk mendiagnosis atau memberikan izin tersebut.
-
Identifikasi jenis kebijakan yang relevan.
Bidang PolicyType menunjukkan jenis kebijakan yang menyebabkan penolakan, termasuk control policy, session policy, trust policy, dan identity-based policy (di tingkat akun atau kelompok sumber daya). Untuk informasi lebih lanjut, lihat Policy evaluation process.
Jenis kebijakan menentukan cara Anda menyesuaikan kebijakan tersebut:
-
Jika aksi ditolak oleh control policy, hubungi administrator akun manajemen di Resource Directory Anda untuk memberikan izin tersebut. Kebijakan kontrol menetapkan batasan izin untuk akun anggota dalam Resource Directory dan memiliki prioritas lebih tinggi daripada kebijakan di dalam akun.
-
Jika aksi ditolak oleh session policy, hubungi administrator akun Anda untuk memeriksa kebijakan sesi yang diteruskan saat operasi API AssumeRole dipanggil.
-
Jika aksi ditolak oleh trust policy, hubungi administrator akun Anda untuk memeriksa kebijakan kepercayaan dari Peran RAM yang diasumsikan.
-
Jika aksi ditolak oleh identity-based policy, hubungi administrator akun Anda untuk memeriksa kebijakan izin yang disambungkan ke entitas berwenang tersebut.
-
-
Tentukan apakah penolakan tersebut merupakan implicit deny atau explicit deny.
-
Implicit deny: Bidang NoPermissionType mengembalikan
ImplicitDeny. Dalam kasus ini, administrator akun Anda harus memberikan izin yang diperlukan dengan menambahkan AuthAction ke pernyataan Allow dalam suatu kebijakan. -
Explicit deny: Bidang NoPermissionType mengembalikan
ExplicitDeny. Dalam kasus ini, administrator akun Anda harus meninjau kebijakan yang disambungkan dan memeriksa apakah pernyataan Deny mencakup AuthAction.CatatanJika jenis kebijakan adalah control policy, explicit deny juga dikembalikan jika aksi yang diminta tidak termasuk dalam pernyataan Allow.
-
Sebagai tambahan, untuk produk yang mendukung diagnosis izin, Anda dapat memberikan seluruh isi bidang EncodedDiagnosticMessage kepada administrator akun Anda. Administrator tersebut kemudian dapat menggunakan pesan ini di halaman diagnosis izin RAM untuk mendiagnosis masalah tersebut. Untuk melakukan hal ini, administrator akun harus memiliki izin ram:DecodeDiagnosticMessage.
Memberikan izin kepada Pengguna RAM
Ketika Pengguna RAM menggunakan produk cloud seperti ECS, OSS, atau RDS, error Permission Denied ditampilkan di konsol atau error Forbidden.RAM dikembalikan oleh panggilan API. Error ini biasanya terjadi karena Pengguna RAM tidak memiliki izin yang diperlukan untuk produk cloud tersebut. Untuk memberikan izin kepada Pengguna RAM, ikuti langkah-langkah berikut:
-
Login ke RAM console menggunakan Akun Alibaba Cloud Anda.
-
Di panel navigasi sebelah kiri, pilih .
-
Di halaman Users, temukan Pengguna RAM yang dituju dan klik username-nya.
-
Klik tab Permissions, lalu klik Grant Permission.
-
Di kotak pencarian kebijakan, masukkan nama produk cloud yang dituju, seperti
ECS. Pilih kebijakan sistem yang sesuai dan berikan izin tersebut.Tabel berikut mencantumkan produk cloud umum dan kebijakan sistem yang sesuai.
Produk cloud
Kebijakan akses penuh
Kebijakan akses baca-saja
ECS
AliyunECSFullAccess
AliyunECSReadOnlyAccess
OSS
AliyunOSSFullAccess
AliyunOSSReadOnlyAccess
RDS
AliyunRDSFullAccess
AliyunRDSReadOnlyAccess
VPC
AliyunVPCFullAccess
AliyunVPCReadOnlyAccess
SLB
AliyunSLBFullAccess
AliyunSLBReadOnlyAccess
Untuk informasi lebih lanjut mengenai kebijakan sistem, lihat Manage permissions for RAM users.