All Products
Search
Document Center

Resource Access Management:Buat kebijakan kustom

Last Updated:Aug 27, 2026

Anda dapat membuat kebijakan kustom untuk menerapkan pengelolaan izin detail halus.

Metode pembuatan

  • Menggunakan visual editor

    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.

  • Menggunakan script editor

    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.

  • Dengan mengimpor 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

  1. Masuk ke RAM console sebagai administrator RAM.

  2. Di panel navigasi sebelah kiri, pilih Permissions > Policies.

  3. Pada halaman Policies, klik Create Policy.

  4. 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.

  5. Konfigurasikan kebijakan.

    Untuk informasi lebih lanjut tentang elemen dasar kebijakan, lihat Elemen dasar kebijakan.

    1. Pada bagian Effect, pilih Allow atau Deny.

    2. Pada bagian Service, pilih sebuah service.

      Catatan

      Konsol menampilkan layanan yang mendukung editor visual.

    3. 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.

    4. 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.

      Catatan

      UI menandai ARN untuk action terkait sebagai Required. Tentukan ARN ini untuk memastikan kebijakan berfungsi dengan benar.

    5. 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.

    6. Klik Add Statement dan ulangi langkah-langkah sebelumnya untuk mengonfigurasi beberapa pernyataan.

  6. 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.

  7. Pada halaman Create Policy, klik OK.

  8. Pada kotak dialog Create Policy, masukkan policy name dan Description, lalu klik OK.

Menggunakan script editor

  1. Masuk ke RAM console sebagai administrator RAM.

  2. Di panel navigasi sebelah kiri, pilih Permissions > Policies.

  3. Pada halaman Policies, klik Create Policy.

  4. Pada halaman Create Policy, klik tab JSON Editor.

    Halaman ini menampilkan editor JSON. Templat kebijakan default mencakup elemen Version (diatur ke "1") dan array Statement. Setiap pernyataan mencakup elemen Effect (default ke "Allow"), Action, Resource, dan Condition. Anda harus mengisi elemen Action dan Resource.

  5. Masukkan isi kebijakan.

    Untuk informasi lebih lanjut tentang sintaksis dan struktur kebijakan, lihat Sintaksis dan struktur kebijakan.

  6. 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.

  7. Pada halaman Create Policy, klik OK.

  8. 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": "*"
    }
  ]
}
Penting

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": "*"
    }
  ]
}
Penting

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"
    }
  ]
}
Penting

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"
      ]
    }
  ]
}
Penting

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.

Action khusus produk yang tidak tersedia di visual editor

Beberapa action tidak tercantum di visual editor dan hanya dapat dikonfigurasi menggunakan script editor. Contohnya meliputi:

  • Security Center: yundun-sc:DescribeCdnIpList

  • Akses konsol Milvus: CreateConnection, DbmConnect, dan action terkait lainnya

  • Operation Orchestration Service (OOS): oos:StartExecution

Contoh berikut memberikan izin untuk menjalankan eksekusi OOS:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "oos:StartExecution",
      "Resource": "*"
    }
  ]
}

Untuk action yang tidak tersedia di visual editor, klik tab Script Editor dan masukkan nama action secara manual.

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:DescribeVpcs dan vpc: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:DescribeVpcs dan vpc: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 izin log:GetProject dan log:GetLogStore.

  • Login konsol Milvus: Selain action manajemen utama, Anda memerlukan izin CreateConnection dan DbmConnect.

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

  1. Masuk ke RAM console sebagai administrator RAM.

  2. Di panel navigasi sebelah kiri, pilih Permissions > Policies.

  3. Pada halaman Policies, klik Create Policy.

  4. Pada halaman Create Policy, klik Import Policy.

  5. Di pojok kanan atas kotak dialog Import Policy, pilih Policy Template atau System Policy dari daftar drop-down.

    1. Pilih templat kebijakan atau kebijakan sistem.

    2. Untuk beberapa templat kebijakan, Anda harus mengonfigurasi parameter sesuai kebutuhan bisnis Anda.

    3. 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.

    4. Klik Import.

  6. Di visual editor atau script editor, lihat dan modifikasi isi kebijakan yang diimpor.

  7. 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.

  8. Pada halaman Create Policy, klik OK.

  9. 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 Resource lebih dari sekali dalam satu pernyataan. Untuk menentukan beberapa resource, cantumkan sebagai array JSON dalam satu bidang Resource. 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.