Anda dapat membuat kebijakan kustom untuk menerapkan pengelolaan izin detail halus.
Metode pembuatan
RAM menyediakan visual editor WYSIWYG. Anda dapat membuat kebijakan kustom dengan memilih Effect, service, action, resource, dan condition. Fitur validasi cerdas bawaan membantu memastikan kebijakan Anda valid dan efektif. Metode ini mudah digunakan.
RAM menyediakan JSON script editor. Anda harus menulis kebijakan kustom sesuai dengan sintaksis dan struktur kebijakan. Metode ini menawarkan fleksibilitas lebih tinggi dan cocok jika Anda sudah terbiasa dengan sintaksis kebijakan.
Impor templat kebijakan: RAM menyediakan templat kebijakan untuk skenario umum, seperti administrator sistem, staf keuangan, dan administrator jaringan. Anda dapat mengimpor templat yang sesuai dan melakukan sedikit modifikasi untuk membuat kebijakan kustom secara cepat.
Impor kebijakan sistem: Anda dapat mengimpor kebijakan sistem dan memodifikasinya agar sesuai dengan kebutuhan bisnis Anda. Ini merupakan cara praktis dan cepat untuk membuat kebijakan kustom dari templat standar.
Menggunakan visual editor
Masuk ke RAM console sebagai administrator RAM.
Di panel navigasi sebelah kiri, pilih .
Pada halaman Policies, klik Create Policy.
Pada halaman Create Policy, klik tab Visual Editor.
Visual editor menampilkan formulir pernyataan yang mencakup bidang-bidang berikut: Effect (wajib diisi, dapat diatur ke Allow atau Deny, default: Allow), Service (wajib diisi), Action (wajib diisi), Resource (wajib diisi), dan Condition (opsional). Anda harus memilih service terlebih dahulu sebelum dapat mengonfigurasi Action, Resource, dan Condition. Di bagian bawah halaman, Anda dapat mengklik Add Statement untuk menambahkan lebih banyak pernyataan.
Konfigurasikan kebijakan.
Untuk informasi lebih lanjut tentang elemen dasar kebijakan, lihat Elemen dasar kebijakan.
Pada bagian Effect, pilih Allow atau Deny.
Pada bagian Service, pilih sebuah service.
CatatanKonsol menampilkan layanan yang mendukung editor visual.
Pada bagian Action, pilih All action(s) atau Select action(s).
Sistem secara otomatis mencantumkan action yang tersedia berdasarkan service yang Anda pilih pada langkah sebelumnya. Jika Anda memilih Select action(s), Anda harus memilih action spesifik tersebut.
Pada bagian Resources, pilih All Resources atau Specified resource(s).
Sistem secara otomatis mencantumkan jenis resource yang tersedia berdasarkan action yang Anda pilih. Jika Anda memilih Specified resource(s), Anda harus mengklik Add Resource untuk menentukan ARN. Anda dapat menggunakan fitur Match All untuk memilih semua resource untuk suatu item konfigurasi secara cepat.
CatatanUI menandai ARN untuk action terkait sebagai Required. Tentukan ARN ini untuk memastikan kebijakan berfungsi dengan benar.
Pada bagian Condition, klik Add Condition untuk mengonfigurasi kondisi.
Kondisi mencakup kondisi umum Alibaba Cloud dan kondisi khusus layanan. Sistem secara otomatis mencantumkan kondisi yang tersedia berdasarkan service dan action yang Anda konfigurasi. Cukup pilih kunci kondisi dan atur nilainya.
Klik Add Statement dan ulangi langkah-langkah sebelumnya untuk mengonfigurasi beberapa pernyataan.
Di bagian atas halaman, klik Optimize, lalu klik Perform untuk melakukan optimasi lanjutan pada kebijakan.
Fitur optimasi kebijakan lanjutan melakukan tugas-tugas berikut:
Memisahkan resource atau kondisi untuk action yang tidak kompatibel.
Mempersempit cakupan resource.
Menghapus pernyataan duplikat atau menggabungkan pernyataan.
Pada halaman Create Policy, klik OK.
Pada kotak dialog Create Policy, masukkan policy name dan Description, lalu klik OK.
Menggunakan script editor
Masuk ke RAM console sebagai administrator RAM.
Di panel navigasi sebelah kiri, pilih .
Pada halaman Policies, klik Create Policy.
Pada halaman Create Policy, klik tab JSON Editor.
Halaman ini menampilkan editor JSON. Templat kebijakan default mencakup elemen
Version(diatur ke"1") dan arrayStatement. Setiap pernyataan mencakup elemenEffect(default ke"Allow"),Action,Resource, danCondition. Anda harus mengisi elemenActiondanResource.Masukkan isi kebijakan.
Untuk informasi lebih lanjut tentang sintaksis dan struktur kebijakan, lihat Sintaksis dan struktur kebijakan.
Di bagian atas halaman, klik Optimize, lalu klik Perform untuk melakukan optimasi lanjutan pada kebijakan.
Fitur optimasi kebijakan lanjutan melakukan tugas-tugas berikut:
Memisahkan resource atau kondisi untuk action yang tidak kompatibel.
Mempersempit cakupan resource.
Menghapus pernyataan duplikat atau menggabungkan pernyataan.
Pada halaman Create Policy, klik OK.
Pada kotak dialog Create Policy, masukkan policy name dan Description, lalu klik OK.
Contoh kebijakan kustom umum
Contoh berikut menunjukkan cara mengonfigurasi kebijakan kustom untuk skenario otorisasi umum menggunakan script editor.
Otorisasi operasi tingkat akun
Operasi tingkat akun, seperti membuat RAM user dan AccessKey, mengharuskan Anda mengatur elemen Resource ke "*" dan mengatur cakupan otorisasi ke Entire Alibaba Cloud Account. Operasi ini tidak dapat dibatasi hanya pada kelompok sumber daya tertentu.
Contoh berikut memberikan izin untuk membuat RAM user dan AccessKey:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateUser",
"ram:CreateAccessKey"
],
"Resource": "*"
}
]
}Saat Anda menyambungkan kebijakan ini ke RAM user, Anda harus mengatur cakupan otorisasi ke Entire Alibaba Cloud Account. Jika Anda mengatur cakupan ke kelompok sumber daya tertentu, kebijakan tidak akan berlaku untuk operasi tingkat akun.
Izinkan RAM user mengubah password mereka sendiri
Contoh berikut memberikan izin minimum yang diperlukan bagi RAM user untuk mengubah kata sandi logon mereka sendiri:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ram:ChangePassword",
"Resource": "*"
}
]
}Jangan memberikan AliyunRAMFullAccess untuk tujuan ini. AliyunRAMFullAccess memberikan hak istimewa administratif penuh atas semua resource RAM, yang jauh melebihi hak istimewa minimum yang diperlukan untuk mengubah password.
Akses read-only ke resource tertentu
Contoh berikut memberikan akses read-only ke Instance ECS tertentu. Ganti i-xxx dengan ID instans Anda yang sebenarnya.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:Describe*",
"Resource": "acs:ecs:*:*:instance/i-xxx"
}
]
}Dalam format ARN, garis miring (/) wajib digunakan antara jenis resource dan ID resource. Misalnya, gunakan instance/i-xxx, bukan instancei-xxx.
Otorisasi detail halus Simple Log Service
Contoh berikut memberikan izin untuk mengkueri log dan membuat store view di Simple Log Service. Ganti exampleproject dan examplelogstore dengan nama project dan penyimpanan log Anda yang sebenarnya.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:GetLogStoreLogs",
"log:CreateStoreView"
],
"Resource": [
"acs:log:*:*:project/exampleproject/logstore/examplelogstore",
"acs:log:*:*:project/exampleproject"
]
}
]
}Jika panggilan SDK gagal dengan error permission denied setelah Anda memberikan izin di atas, tambahkan izin log:GetProject dan log:GetLogStore. Ini adalah izin dependensi implisit yang diperlukan agar action utama berfungsi dengan benar.
Contoh berikut memberikan izin untuk menjalankan eksekusi OOS:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "oos:StartExecution",
"Resource": "*"
}
]
}Penerapan ECS (izin minimum)
Penerapan Instance ECS memerlukan kombinasi action lintas beberapa layanan. Contoh berikut memberikan izin minimum yang diperlukan untuk membuat Instance ECS, termasuk akses read-only ke resource VPC dan security group yang diperlukan selama pembuatan instans:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:RunInstances",
"ecs:DescribeInstances",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups"
],
"Resource": "*"
}
]
}ecs:RunInstances: membuat dan menjalankan Instance ECS.ecs:DescribeInstances: mengkueri detail instans.vpc:DescribeVpcsdanvpc:DescribeVSwitches: memungkinkan Anda memilih VPC dan vSwitch saat membuat instans.ecs:DescribeSecurityGroups: memungkinkan Anda memilih security group saat membuat instans.
Konfigurasi jaringan VPC (izin minimum)
Contoh berikut memberikan izin minimum yang diperlukan untuk membuat VPC dan vSwitch:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"vpc:CreateVpc",
"vpc:CreateVSwitch",
"vpc:CreateSecurityGroup",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches"
],
"Resource": "*"
}
]
}vpc:CreateVpc: membuat VPC.vpc:CreateVSwitch: membuat vSwitch.vpc:CreateSecurityGroup: membuat security group.vpc:DescribeVpcsdanvpc:DescribeVSwitches: mengkueri resource jaringan.
Troubleshooting error permission denied
Saat RAM user menerima error AccessForbidden atau pesan permission denied di konsol, ikuti langkah-langkah berikut untuk mengidentifikasi dan menyelesaikan masalah:
Langkah 1: Gunakan tool API Troubleshoot untuk mengidentifikasi izin yang hilang
Gunakan tool API Troubleshoot Alibaba Cloud dan masukkan RequestID dari permintaan yang gagal. Tool ini mengidentifikasi AuthAction yang tepat yang hilang, sehingga Anda dapat menambahkan izin yang diperlukan ke kebijakan kustom Anda.
Langkah 2: Verifikasi cakupan otorisasi
Pastikan cakupan otorisasi sesuai dengan jenis operasi:
Operasi tingkat akun (seperti
ram:CreateUser): Cakupan otorisasi harus diatur ke Entire Alibaba Cloud Account. Membatasi cakupan hanya pada kelompok sumber daya tertentu menyebabkan operasi ini gagal.Operasi yang sadar kelompok sumber daya: Verifikasi bahwa kebijakan disambungkan dengan cakupan kelompok sumber daya yang benar, atau atur cakupan ke Entire Alibaba Cloud Account.
Langkah 3: Periksa izin dependensi implisit
Beberapa operasi memerlukan izin tambahan di luar action utama. Contohnya:
Kueri Simple Log Service: Selain
log:GetLogStoreLogs, Anda mungkin memerlukan izinlog:GetProjectdanlog:GetLogStore.Login konsol Milvus: Selain action manajemen utama, Anda memerlukan izin
CreateConnectiondanDbmConnect.
Lihat dokumentasi otorisasi RAM untuk layanan Alibaba Cloud yang sesuai guna mengidentifikasi semua izin yang diperlukan.
Optimalkan kebijakan yang terlalu besar
Dokumen kebijakan kebijakan kustom tidak boleh melebihi 6.144 byte. Saat batas ini dilampaui, operasi CreatePolicy mengembalikan error InvalidParameter.PolicyDocument.Length dengan pesan The policy document size is limited to 6144 bytes. Anda dapat menggunakan metode berikut untuk mengurangi ukuran kebijakan.
Kurangi ukuran kebijakan dengan wildcard
Gabungkan beberapa action yang memiliki awalan sama menjadi wildcard, yang dapat secara signifikan mengurangi ukuran kebijakan. Misalnya, ubah kebijakan berikut:
{"Action": ["oss:GetBucket", "oss:GetObject", "oss:GetBucketAcl", "oss:GetBucketLogging"]}kepada:
{"Action": ["oss:Get*"]}Pisahkan kebijakan berdasarkan fungsi
Pisahkan kebijakan besar yang mencakup beberapa fungsi menjadi kebijakan terpisah, dan sambungkan masing-masing ke RAM user atau kelompok pengguna yang berbeda. Misalnya, pisahkan operasi baca dan tulis menjadi dua kebijakan:
Kebijakan read-only:
{"Action": ["oss:Get*", "oss:List*"]}Kebijakan tulis:
{"Action": ["oss:Put*", "oss:Delete*"]}
Pisahkan kebijakan berdasarkan resource
Pisahkan kebijakan berdasarkan resource. Misalnya, pisahkan izin untuk Bucket OSS yang berbeda ke dalam kebijakan berbeda, sehingga setiap kebijakan hanya memberikan izin untuk bucket tertentu. Hal ini menghindari satu kebijakan mengelola terlalu banyak resource.
Catatan penggunaan
Saat mengonfigurasi kebijakan di visual editor, jangan memilih semua action. Pilih set action dengan hak istimewa paling rendah untuk menjaga dokumen kebijakan sekecil mungkin.
Setelah memisahkan kebijakan, Anda harus menyambungkan setiap kebijakan hasil pemisahan ke RAM user atau kelompok pengguna secara terpisah, yang meningkatkan kompleksitas manajemen.
Menggabungkan action dengan wildcard dapat menyebabkan over-authorization. Tinjau cakupan izin secara hati-hati untuk menghindari pemberian izin lebih dari yang sebenarnya dibutuhkan oleh bisnis Anda.
Kebijakan langsung berlaku setelah disambungkan. Tidak perlu menunggu.
Dengan mengimpor kebijakan
Masuk ke RAM console sebagai administrator RAM.
Di panel navigasi sebelah kiri, pilih .
Pada halaman Policies, klik Create Policy.
Pada halaman Create Policy, klik Import Policy.
Di pojok kanan atas kotak dialog Import Policy, pilih Policy Template atau System Policy dari daftar drop-down.
Pilih templat kebijakan atau kebijakan sistem.
Untuk beberapa templat kebijakan, Anda harus mengonfigurasi parameter sesuai kebutuhan bisnis Anda.
Pilih aturan overwrite untuk kebijakan yang diimpor.
Secara default, isi kebijakan yang diimpor sepenuhnya menimpa isi yang ada. Anda juga dapat memilih Do not overwrite, append new statements to the end.
Klik Import.
Di visual editor atau script editor, lihat dan modifikasi isi kebijakan yang diimpor.
Di bagian atas halaman, klik Optimize, lalu klik Perform untuk melakukan optimasi lanjutan pada kebijakan.
Fitur optimasi kebijakan lanjutan melakukan tugas-tugas berikut:
Memisahkan resource atau kondisi untuk action yang tidak kompatibel.
Mempersempit cakupan resource.
Menghapus pernyataan duplikat atau menggabungkan pernyataan.
Pada halaman Create Policy, klik OK.
Pada kotak dialog Create Policy, masukkan policy name dan Description, lalu klik OK.
FAQ
Mengapa saya tidak dapat menemukan izin tertentu di visual editor atau mengapa penyimpanan kebijakan gagal?
Masalah ini dapat terjadi karena alasan berikut:
Action tidak didukung atau belum tercantum di visual editor
Beberapa action API yang baru dirilis atau tingkat rendah, seperti oos:StartExecution dan pola wildcard seperti swas-open:*, mungkin tidak tersedia di visual editor. Visual editor juga mungkin tidak menangani pola wildcard dengan benar di bawah pembatasan resource tertentu. Untuk mengatasi masalah ini, klik tab Script Editor dan masukkan nama action secara manual.
Nama action salah eja
Beberapa nama action API memiliki perbedaan bentuk tunggal dan jamak. Misalnya, nama action yang benar adalah ecs:ReInitDisks, bukan ecs:ReInitDisk. Verifikasi nama action yang tepat di referensi API untuk layanan Alibaba Cloud yang sesuai.
Kebijakan sistem belum disinkronkan
Jika Anda tidak dapat menemukan kebijakan sistem tertentu, seperti AliyunAccountCenterFullAccess, cari konten JSON resmi kebijakan sistem tersebut dan buat ulang sebagai kebijakan kustom menggunakan Script Editor.
Validasi format JSON gagal
Verifikasi bahwa sintaksis JSON Anda benar. Kesalahan umum meliputi:
Menentukan bidang
Resourcelebih dari sekali dalam satu pernyataan. Untuk menentukan beberapa resource, cantumkan sebagai array JSON dalam satu bidangResource. Contoh:"Resource": ["acs:ecs:*:*:instance/i-aaa", "acs:ecs:*:*:instance/i-bbb"].Menggunakan format ARN yang salah. Pastikan ARN mengikuti pola
acs:<service>:<region>:<account-id>:<resource-type>/<resource-id>.
Mengapa saya tidak dapat mengakses konsol atau melakukan operasi setelah memberikan FullAccess atau kebijakan kustom?
Masalah ini dapat terjadi karena alasan berikut:
Dependensi akses konsol
Beberapa konsol produk memerlukan izin akses konsol dasar, seperti PowerUserAccess, selain izin khusus bisnis. Memberikan hanya kebijakan FullAccess khusus bisnis mungkin tidak cukup untuk memuat halaman konsol. Sambungkan kebijakan akses dasar yang diperlukan ke RAM user.
Ketidaksesuaian cakupan otorisasi
Verifikasi bahwa cakupan otorisasi yang Anda pilih saat menyambungkan kebijakan sesuai dengan definisi Resource dalam kebijakan. Misalnya, operasi tingkat instans untuk layanan seperti OceanBase mengharuskan cakupan otorisasi diatur ke Entire Alibaba Cloud Account, dengan kebijakan menentukan ARN instans.
Prioritas dan konflik kebijakan
Periksa apakah pernyataan Deny dalam kebijakan lain mengesampingkan izin Allow, atau apakah terdapat konflik antara kebijakan kustom Anda dan kebijakan sistem. Untuk skenario kompleks, seperti akses jaringan publik MQTT, jika kebijakan kustom tidak berlaku, coba kebijakan sistem yang direkomendasikan secara resmi (seperti AliyunMQFullAccess) untuk memverifikasi konektivitas sebelum melakukan troubleshooting lebih lanjut pada kebijakan kustom Anda.