Anda dapat membuat kebijakan kustom untuk menerapkan pengelolaan izin dengan detail halus.
Metode pembuatan
-
RAM menyediakan visual editor WYSIWYG. Anda dapat menghasilkan 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 editor skrip JSON. 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
-
Login ke Konsol RAM sebagai administrator RAM.
-
Di panel navigasi sebelah kiri, pilih .
-
Di halaman Policies, klik Create Policy.
-
Di 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 layanan 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 selengkapnya tentang elemen dasar kebijakan, lihat Elemen kebijakan izin.
-
Di bagian Effect, pilih Allow atau Deny.
-
Di bagian Service, pilih layanan.
CatatanKonsol menampilkan layanan-layanan yang mendukung visual editor.
-
Di bagian Action, pilih All action(s) atau Select action(s).
Sistem secara otomatis menampilkan daftar aksi yang tersedia berdasarkan layanan yang Anda pilih pada langkah sebelumnya. Jika Anda memilih Select action(s), Anda harus memilih aksi spesifik tersebut.
-
Di bagian Resources, pilih All Resources atau Specified resource(s).
Sistem secara otomatis menampilkan daftar jenis resource yang tersedia berdasarkan aksi 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 aksi terkait sebagai Required. Tentukan ARN ini untuk memastikan kebijakan berfungsi dengan benar.
-
Di bagian Condition, klik Add Condition untuk mengonfigurasi kondisi.
Kondisi mencakup kondisi umum Alibaba Cloud dan kondisi khusus layanan. Sistem secara otomatis menampilkan daftar kondisi yang tersedia berdasarkan layanan dan aksi yang telah 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 aksi yang tidak kompatibel.
-
Mempersempit cakupan resource.
-
Menghapus pernyataan duplikat atau menggabungkan pernyataan.
-
-
Di halaman Create Policy, klik OK.
-
Di kotak dialog Create Policy, masukkan Policy Name dan Description, lalu klik OK.
Menggunakan script editor
-
Login ke Konsol RAM sebagai administrator RAM.
-
Di panel navigasi sebelah kiri, pilih .
-
Di halaman Policies, klik Create Policy.
-
Di halaman Create Policy, klik tab JSON Editor.
Halaman 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 konten kebijakan.
Untuk informasi selengkapnya tentang sintaksis dan struktur kebijakan, lihat Struktur dan sintaksis 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 aksi yang tidak kompatibel.
-
Mempersempit cakupan resource.
-
Menghapus pernyataan duplikat atau menggabungkan pernyataan.
-
-
Di halaman Create Policy, klik OK.
-
Di kotak dialog Create Policy, masukkan Policy Name dan Description, lalu klik OK.
Contoh kebijakan kustom umum
Contoh berikut menunjukkan skenario umum dan JSON kebijakan terkait untuk mengonfigurasi kebijakan kustom dalam mode JSON Editor, membantu Anda menulis kebijakan dengan cepat.
Skenario 1: Memberikan izin manajemen pengguna RAM (tingkat akun)
API manajemen pengguna RAM (seperti ram:CreateUser, ram:CreateAccessKey, dan ram:ListUsers) merupakan operasi tingkat akun. Elemen Resource harus diatur ke "*", dan saat memberikan izin, Anda harus mengatur cakupan otorisasi ke Entire Alibaba Cloud Account. Operasi ini tidak dapat dibatasi ke kelompok sumber daya tertentu.
Contoh kebijakan: mengizinkan pembuatan pengguna RAM dan AccessKey.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateUser",
"ram:CreateAccessKey",
"ram:ListUsers"
],
"Resource": ["*"]
}
]
}
Jika Anda mengatur cakupan otorisasi kebijakan ini ke kelompok sumber daya tertentu, kebijakan tidak akan berlaku. Operasi manajemen pengguna RAM hanya mendukung cakupan otorisasi Entire Alibaba Cloud Account.
Skenario 2: Mengizinkan pengguna RAM mengubah hanya kata sandi mereka sendiri
Untuk mengizinkan pengguna RAM mengubah hanya kata sandi logon mereka sendiri, berikan izin ram:ChangePassword. Jangan berikan AliyunRAMFullAccess (izin akses penuh RAM), karena izin berlebihan menimbulkan risiko keamanan.
Contoh kebijakan: mengizinkan mengubah hanya kata sandi mereka sendiri.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:ChangePassword"
],
"Resource": ["*"]
}
]
}
Skenario 3: Memberikan akses read-only ke resource tertentu (menggunakan instans ECS sebagai contoh)
Untuk mengizinkan pengguna RAM melihat hanya instans ECS tertentu, tentukan ARN instans tersebut dalam elemen Resource. Format ARN adalah acs:ecs:{region}:{account-id}:instance/{instance-id}. Perhatikan bahwa instance harus diikuti oleh garis miring maju /.
Contoh kebijakan: mengizinkan melihat hanya instans ECS yang ditentukan.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeInstanceAttribute",
"ecs:DescribeInstanceStatus"
],
"Resource": [
"acs:ecs:*:*:instance/i-bp1xxxxxxxxxxxxxxxxx"
]
}
]
}
Ganti i-bp1xxxxxxxxxxxxxxxxx dengan ID instans ECS aktual. Untuk memberikan akses ke beberapa instans, tambahkan beberapa ARN ke array Resource, dipisahkan dengan koma.
Skenario 4: Otorisasi detail halus untuk Simple Log Service (SLS)
Operasi kueri di Simple Log Service memerlukan ARN pada tingkat proyek dan penyimpanan log. Jika panggilan SDK tetap mengembalikan error permission denied, tambahkan izin log:GetProject dan log:GetLogStore.
Contoh kebijakan: mengizinkan mengkueri data log dari penyimpanan log tertentu.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:GetLogStoreLogs",
"log:CreateStoreView",
"log:GetProject",
"log:GetLogStore"
],
"Resource": [
"acs:log:*:*:project/exampleproject",
"acs:log:*:*:project/exampleproject/logstore/examplelogstore"
]
}
]
}
Ganti exampleproject dan examplelogstore dengan nama proyek dan nama penyimpanan log aktual.
Skenario 5: Mengonfigurasi aksi spesifik yang tidak didukung di visual editor
Aksi dari beberapa produk tidak dapat dipilih dalam mode Visual Editor dan harus dikonfigurasi secara manual dalam mode JSON Editor. Aksi umum jenis ini meliputi:
|
Produk |
Action |
Description |
|
Server Guard (Security Center) |
|
Menanyakan daftar IP CDN |
|
Milvus |
|
Izin yang diperlukan untuk login ke konsol Milvus |
Skenario 6: Izin minimum untuk penerapan ECS
Pembuatan instans ECS melibatkan kombinasi aksi lintas layanan. Kebijakan hak istimewa terkecil harus mencakup izin operasi instans dan izin kueri untuk jaringan serta grup keamanan.
Contoh kebijakan: izin minimum yang diperlukan untuk membuat dan menerapkan instans ECS.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:RunInstances",
"ecs:DescribeInstances",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups"
],
"Resource": ["*"]
}
]
}
Deskripsi aksi: ecs:RunInstances (membuat dan menjalankan instans), ecs:DescribeInstances (menanyakan informasi instans), vpc:DescribeVpcs dan vpc:DescribeVSwitches (memungkinkan Anda memilih VPC dan vSwitch saat membuat instans), ecs:DescribeSecurityGroups (memilih grup keamanan).
Skenario 7: Izin minimum untuk konfigurasi jaringan VPC
Kebijakan izin minimum yang diperlukan untuk membuat virtual private cloud (VPC) dan vSwitch adalah sebagai berikut.
Contoh kebijakan: 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": ["*"]
}
]
}
Deskripsi aksi: vpc:CreateVpc (membuat VPC), vpc:CreateVSwitch (membuat vSwitch), vpc:CreateSecurityGroup (membuat grup keamanan), vpc:DescribeVpcs dan vpc:DescribeVSwitches (menanyakan resource jaringan yang ada).
Atasi error permission denied
Saat pengguna RAM memanggil API dan menerima error AccessForbidden, atau konsol menampilkan pesan permission denied, atasi masalah tersebut sebagai berikut:
-
Gunakan tool API Troubleshoot untuk menemukan izin yang hilang
Masukkan RequestID yang dikembalikan bersama error ke tool API Troubleshoot Alibaba Cloud. Tool ini menampilkan AuthAction yang hilang secara spesifik, sehingga Anda dapat menambahkan izin yang diperlukan sesuai petunjuk.
-
Verifikasi bahwa cakupan otorisasi sesuai
Untuk operasi tingkat akun (seperti
ram:CreateUser), cakupan otorisasi harus diatur ke Entire Alibaba Cloud Account. Untuk API yang mendukung kelompok sumber daya, pastikan kebijakan diberikan ke kelompok sumber daya yang benar atau Entire Alibaba Cloud Account. Jika cakupan otorisasi tidak sesuai dengan definisiResourcedalam kebijakan, izin tidak akan berlaku. -
Periksa izin dependensi implisit
Selain aksi utama, beberapa operasi memerlukan izin dasar terkait seperti Describe, List, atau Connect agar berfungsi dengan benar. Contohnya:
-
Simple Log Service (SLS): selain
log:GetLogStoreLogsuntuk mengkueri log, Anda juga memerlukan izinlog:GetProjectdanlog:GetLogStore. -
Milvus: selain izin operasi utama untuk login ke konsol, Anda juga memerlukan izin koneksi seperti
CreateConnectiondanDbmConnect.
Kami menyarankan Anda merujuk ke dokumentasi otorisasi RAM dari layanan Alibaba Cloud terkait untuk menambahkan izin yang diperlukan.
-
Optimalkan kebijakan yang terlalu besar
Konten JSON 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 panjang kebijakan.
Pisahkan kebijakan berdasarkan fungsi
Pisahkan kebijakan besar yang mencakup beberapa fungsi menjadi kebijakan terpisah, dan sambungkan masing-masing ke pengguna RAM 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 kebijakan yang 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, hindari memilih semua aksi. Pilih terlebih dahulu himpunan aksi dengan hak istimewa terkecil.
-
Setelah memisahkan kebijakan, Anda harus memberikan masing-masing kebijakan hasil pemisahan kepada pengguna RAM atau kelompok pengguna secara terpisah, yang meningkatkan kompleksitas manajemen.
-
Karakter wildcard dapat menyebabkan over-authorization. Tinjau cakupan izin dengan cermat sebelum menggunakannya.
-
Kebijakan langsung berlaku setelah diberikan. Tidak perlu menunggu.
Dengan mengimpor kebijakan
-
Login ke Konsol RAM sebagai administrator RAM.
-
Di panel navigasi sebelah kiri, pilih .
-
Di halaman Policies, klik Create Policy.
-
Di halaman Create Policy, klik Import Policy.
-
Di kotak dialog Import Policy, dari daftar drop-down di pojok kanan atas, pilih templat kebijakan atau System Policy, lalu impor kebijakan tersebut.
-
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, konten kebijakan yang baru diimpor sepenuhnya menimpa konten yang ada. Anda juga dapat memilih Do NOT overwrite but append new statements. untuk menambahkan konten kebijakan yang baru diimpor ke akhir konten yang ada.
-
Klik Import.
-
-
Di visual editor atau script editor, lihat dan modifikasi konten 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 aksi yang tidak kompatibel.
-
Mempersempit cakupan resource.
-
Menghapus pernyataan duplikat atau menggabungkan pernyataan.
-
-
Di halaman Create Policy, klik OK.
-
Di 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:
-
Beberapa aksi belum diperbarui di daftar visual: beberapa API yang baru dirilis atau API tingkat rendah mungkin belum disinkronkan ke daftar aksi dalam mode Visual Editor, atau karakter wildcard (seperti
swas-open:*) mungkin memiliki konflik parsing di bawah pembatasan resource tertentu. Kami menyarankan Anda beralih ke mode JSON Editor dan memasukkan aksi secara manual. -
Nama aksi salah eja: beberapa nama aksi API memiliki perbedaan bentuk tunggal dan jamak (misalnya, operasi ECS untuk menginisialisasi ulang disk adalah
ecs:ReInitDisksbukanecs:ReInitDisk). Verifikasi nama aksi yang tepat di dokumentasi API layanan Alibaba Cloud terkait. -
Kebijakan sistem belum disinkronkan: jika Anda tidak dapat menemukan kebijakan sistem tertentu (seperti
AliyunAccountCenterFullAccess), Anda dapat melihat konten JSON resmi kebijakan sistem tersebut dan membuat kebijakan kustom dengan efek yang sama dalam mode JSON Editor. -
Validasi format JSON gagal: periksa apakah sintaksis JSON benar. Perhatikan kesalahan umum berikut:
-
Resourcetidak dapat didefinisikan lebih dari sekali. Untuk menentukan beberapa resource, cantumkan dalam satu array, dipisahkan dengan koma. -
Format ARN harus mematuhi pola berikut:
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:
-
Akses konsol memerlukan izin dasar tambahan: selain izin bisnis, beberapa konsol produk (seperti layanan bernilai tambah Pendaftaran ICP) juga memerlukan izin akses konsol dasar seperti
PowerUserAccess. Kebijakan FullAccess khusus bisnis saja mungkin tidak cukup untuk memuat halaman konsol. Rujuk dokumentasi produk untuk mengonfirmasi kombinasi lengkap izin yang diperlukan untuk akses konsol. -
Cakupan otorisasi tidak sesuai dengan Resource dalam kebijakan: cakupan otorisasi yang Anda pilih saat memberikan izin (Entire Alibaba Cloud Account atau kelompok sumber daya tertentu) harus konsisten dengan definisi
Resourcedalam kebijakan. Misalnya, operasi tingkat instans seperti OceanBase memerlukan cakupan otorisasi Entire Alibaba Cloud Account, dengan ARN instans spesifik yang didefinisikan dalam kebijakan. -
Konflik kebijakan atau override Deny: periksa apakah pernyataan
DenymengoverrideAllow, atau apakah terdapat konflik antara kebijakan kustom Anda dan kebijakan sistem. Logika evaluasi kebijakan RAM adalah: Deny eksplisit > Allow > Deny default. Untuk skenario kompleks (seperti akses jaringan publik MQTT), jika kebijakan kustom tidak berlaku, kami menyarankan Anda terlebih dahulu menggunakan kebijakan sistem yang direkomendasikan secara resmi (sepertiAliyunMQFullAccess) untuk memverifikasi konektivitas, lalu memperhalus izin secara bertahap.