All Products
Search
Document Center

Resource Access Management:Elemen Kebijakan Izin

Last Updated:Aug 26, 2026

Di RAM, Anda menggunakan kebijakan izin untuk menentukan izin tertentu. Kebijakan izin terdiri atas elemen dasar, yaitu Effect, Action/NotAction, Resource, Condition, dan Principal.

Element

Description

Effect

Menentukan apakah pernyataan kebijakan mengizinkan atau menolak akses. Nilai yang valid adalah:

  • Allow: Mengizinkan akses.

  • Deny: Menolak akses.

Action/NotAction

Operasi yang dilakukan pada resource tertentu. Anda harus menentukan Action atau NotAction dalam pernyataan kebijakan:

  • Action: Operasi spesifik yang diizinkan atau ditolak.

  • NotAction: Operasi yang dikecualikan dari kebijakan. Saat Anda menggunakan NotAction, semua operasi diizinkan atau ditolak kecuali yang tercantum.

Resource

Objek spesifik atau beberapa objek yang menjadi sasaran kebijakan.

Condition

Kondisi yang harus dipenuhi agar otorisasi berlaku.

Principal

Entitas yang diizinkan atau ditolak aksesnya ke suatu resource. Elemen ini hanya berlaku untuk kebijakan berbasis resource, seperti kebijakan kepercayaan (trust policy) Peran RAM.

Effect

Elemen Effect menentukan apakah kebijakan mengizinkan atau menolak akses dan wajib disertakan.

Nilai yang valid untuk elemen ini adalah Allow dan Deny.

Catatan

Jika suatu kebijakan izin mencakup keduanya, Deny memiliki prioritas lebih tinggi daripada Allow.

Contoh:

"Effect": "Allow"

Action/NotAction

Pernyataan kebijakan harus mencakup elemen Action atau NotAction. Elemen Action menentukan operasi yang diizinkan atau ditolak, sedangkan NotAction menentukan operasi yang dikecualikan dari kebijakan.

Nilai yang valid untuk elemen Action/NotAction adalah nama operasi API yang didefinisikan oleh layanan cloud.

Format elemen Action/NotAction adalah <ram-code>:<action-name>.

Nilai elemen Action/NotAction umumnya tidak peka huruf besar/kecil. Namun, untuk memastikan perilaku konsisten, gunakan awalan <ram-code> dan <action-name> secara eksak sesuai yang ditentukan dalam dokumentasi otorisasi layanan cloud.

Contoh:

  • Contoh tindakan

    "Action": [
      "oss:ListBuckets",
      "ecs:Describe*",
      "rds:Describe*"
    ]
  • Kemandirian urutan

    Urutan elemen dalam array Action tidak memengaruhi hasil otorisasi. Setiap aksi dievaluasi secara independen, terlepas dari posisinya dalam array. Oleh karena itu, dua notasi berikut setara:

    "Action": [
      "ecs:DescribeSecurityGroups",
      "ecs:DescribeInstances"
    ]
    "Action": [
      "ecs:DescribeInstances",
      "ecs:DescribeSecurityGroups"
    ]
  • Contoh NotAction

    Contoh berikut mengizinkan semua operasi kecuali yang ada di RAM. Kebijakan hanya mencantumkan operasi yang dikecualikan (ram:*) alih-alih semua operasi yang diizinkan, sehingga pernyataan kebijakan menjadi lebih singkat. Namun, hal ini memberikan izin yang sangat luas. Gunakan dengan hati-hati dan pastikan kebijakan berperilaku sesuai harapan Anda.

    {
    	"Effect": "Allow",
    	"NotAction": "ram:*",
    	"Resource": "*"
    }

Resource

Elemen Resource menjelaskan satu atau beberapa objek yang menjadi sasaran kebijakan. Elemen ini digunakan dalam kebijakan berbasis identitas dan wajib ada.

Nilai elemen Resource adalah ARN (Aliyun Resource Name) dari resource yang didefinisikan oleh layanan cloud.

Format elemen Resource adalah acs:<ram-code>:<region>:<account-id>:<relative-id>. Gunakan ARN eksak sesuai yang ditentukan dalam dokumentasi otorisasi layanan cloud.

Format tersebut dijelaskan sebagai berikut:

  • acs: Singkatan untuk Alibaba Cloud Service. Ini mengidentifikasi permintaan sebagai target platform cloud publik Alibaba Cloud.

  • ram-code: Kode RAM untuk layanan cloud. Untuk informasi selengkapnya, lihat kolom RAM Code dalam Layanan Alibaba Cloud yang mendukung RAM.

  • region: Informasi wilayah. Untuk resource global yang dapat diakses tanpa menentukan wilayah, gunakan tanda bintang (*). Untuk informasi selengkapnya, lihat Wilayah dan zona ketersediaan.

  • account-id: ID Akun Alibaba Cloud. Contohnya, 123456789012****.

  • relative-id: Bagian ARN yang menjelaskan resource, dengan semantik yang ditentukan oleh layanan cloud spesifik. Bagian ini mendukung struktur seperti pohon, mirip dengan path file. Misalnya, untuk menentukan objek OSS, formatnya adalah relative-id = "mybucket/dir1/object1.jpg".

Contoh:

"Resource": [
  "acs:ecs:*:*:instance/inst-001",
  "acs:ecs:*:*:instance/inst-002",
  "acs:oss:*:*:mybucket",
  "acs:oss:*:*:mybucket/*"
]

Condition

Elemen Condition menentukan kondisi yang harus dipenuhi agar kebijakan berlaku. Elemen ini bersifat opsional.

Elemen Condition, juga dikenal sebagai blok kondisi, terdiri dari satu atau beberapa klausa kondisi. Setiap klausa mencakup operator kondisi, kunci kondisi, dan satu atau beberapa nilai kondisi.

条件块判断逻辑

Catatan

Karena elemen Condition bersifat opsional, sistem tidak memvalidasi keberadaannya. Jika Anda menggunakan elemen ini untuk menentukan kondisi, pastikan penulisan serta penggunaan huruf besar dan kecilnya benar.

Nama (key) kunci kondisi peka huruf besar/kecil. Sementara itu, sensitivitas huruf besar/kecil pada nilai kondisi (value) bergantung pada operator kondisi yang digunakan. Misalnya, untuk kunci kondisi bertipe string, jika Anda menggunakan operator StringEquals, nilai dalam kebijakan akan dicocokkan dengan nilai dalam permintaan secara peka huruf besar/kecil. Namun, jika menggunakan operator StringEqualsIgnoreCase, pencocokan dilakukan tanpa memedulikan huruf besar/kecil.

Elemen Condition memiliki karakteristik berikut:

  • Logika evaluasi

    • Kondisi terpenuhi jika nilai kunci dalam permintaan cocok dengan salah satu nilai dalam kebijakan (logika OR).

    • Jika sebuah klausa kondisi mencakup beberapa kunci kondisi, semua kunci tersebut harus cocok agar klausa terpenuhi (logika AND).

    • Seluruh blok kondisi terpenuhi hanya jika semua klausa di dalamnya terpenuhi (logika AND).

  • Jenis operator kondisi

    Jenis operator kondisi meliputi String, Number, Date and time, Boolean, dan IP address. Untuk makna dan contoh penggunaan operator kondisi, lihat Operator kondisi.

  • Kunci kondisi

    • Kunci kondisi global Alibaba Cloud menggunakan format: acs:<condition-key>.

      Global condition key

      Type

      Description

      acs:CurrentTime

      Date and time

      Waktu saat server web menerima permintaan.

      Catatan

      Gunakan waktu UTC dalam format standar ISO 8601. 

      Misalnya, pukul 20:00:00 pada 10 Januari 2023 waktu Beijing (UTC+8) direpresentasikan sebagai 2023-01-10T20:00:00+08:00 atau 2023-01-10T12:00:00Z.

      acs:SecureTransport

      Boolean

      Menunjukkan apakah permintaan dikirim melalui saluran aman, seperti HTTPS.

      acs:SourceIp

      IP address

      Alamat IP client tempat permintaan dikirim.

      Catatan

      Nilai acs:SourceIp dapat berupa alamat IP spesifik atau Blok CIDR. Jangan menuliskan alamat IP spesifik dalam format CIDR. Misalnya, jangan tulis 10.0.0.1 sebagai 10.0.0.1/32.

      acs:MFAPresent

      Boolean

      Menunjukkan apakah pengguna masuk dengan autentikasi multi-faktor (MFA).

      Catatan

      Jika MFA for RAM user sign-in diatur ke Required Only for Unusual Logon dalam pengaturan keamanan Pengguna RAM, kondisi acs:MFAPresent menjadi tidak efektif. Untuk informasi selengkapnya, lihat Mengelola pengaturan keamanan Pengguna RAM.

      acs:PrincipalARN

      String

      Identitas principal permintaan. Ini hanya dapat digunakan dalam kebijakan kontrol Direktori Sumber Daya dan kebijakan kepercayaan Peran RAM. Contohnya, acs:ram:*:*:role/*resourcedirectory*.

      Catatan

      Saat ini, hanya ARN Peran RAM yang didukung, dan harus dalam huruf kecil. Anda dapat menemukan ARN Peran RAM di halaman detailnya di Konsol RAM.

      acs:PrincipalRDId

      String

      ID Direktori Sumber Daya tempat akun cloud principal permintaan berada, misalnya, rd-AA****. Untuk melihat ID Direktori Sumber Daya, lihat Melihat informasi dasar direktori sumber daya.

      Ini hanya dapat digunakan dalam kebijakan kepercayaan Peran RAM dan Kebijakan Bucket OSS.

      acs:PrincipalRDPath

      String

      Path akun cloud principal permintaan dalam Direktori Sumber Daya. Formatnya biasanya <RD-Id>/<Root-folder-Id>/<Sub-folder-Id>/<Member-account-Id>, misalnya, rd-AA****/r-aQ****/fd-caiJfl****/199386846043****. Untuk informasi cara melihat RDPath lengkap akun anggota, lihat Melihat informasi anggota.

      Untuk mencocokkan semua akun anggota di bawah RDPath tertentu, Anda dapat menggunakan karakter wildcard * dengan operator kondisi StringLike. Misalnya, "Condition": {"StringLike": {"acs:PrincipalRDPath": ["<RD-Id>/<Root-folder-Id>/<Sub-folder-Id>*"]}}.

      Ini hanya dapat digunakan dalam kebijakan kepercayaan Peran RAM dan Kebijakan Bucket OSS.

      acs:RequestTag/<tag-key>

      String

      Tag yang disertakan dalam permintaan. Ganti <tag-key> dengan kunci tag aktual Anda. Untuk layanan cloud dan jenis resource yang didukung, lihat informasi Authentication by Resource Type dalam Layanan Alibaba Cloud yang mendukung tag.

      acs:ResourceTag/<tag-key>

      String

      Tag yang dilampirkan pada resource yang diminta. Ganti <tag-key> dengan kunci tag aktual Anda. Untuk layanan cloud dan jenis resource yang didukung, lihat informasi Authentication by Resource Type dalam Layanan Alibaba Cloud yang mendukung tag.

    • Kunci kondisi spesifik layanan menggunakan format: <ram-code>:<condition-key>.

      Misalnya, kunci kondisi OSS oss:Delimiter digunakan dalam permintaan ListObjects untuk mengelompokkan nama objek berdasarkan karakter tertentu.

      Untuk daftar kunci kondisi spesifik setiap layanan cloud, lihat dokumentasi otorisasi layanan terkait.

  • Contoh kondisi

    Klausa kondisi (seperti IpAddress dan Bool) dalam satu blok Condition dievaluasi dengan logika AND. Untuk menerapkan logika OR, tempatkan setiap kondisi dalam pernyataan kebijakan terpisah.

    Contoh 1: Izinkan Pengguna RAM untuk mengakses instance ECS hanya jika pengguna tersebut telah mengaktifkan Autentikasi Multi-Faktor (MFA) dan melakukan permintaan dari alamat IP 203.0.113.2.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ecs:*",
          "Resource": "*",
          "Condition": {
            "IpAddress": {
              "acs:SourceIp": [
                "203.0.113.2"
              ]
            },
            "Bool": {
              "acs:MFAPresent": [
                "true"
              ]
            }
          }
        }
      ]
    }

    Contoh 2: Izinkan Pengguna RAM mengakses instans ECS jika pengguna telah mengaktifkan MFA atau melakukan permintaan dari alamat IP 203.0.113.2.

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "ecs:*",
                "Resource": "*",
                "Condition": {
                    "IpAddress": {
                        "acs:SourceIp": [
                            "203.0.113.2"
                        ]
                    }
                }
            },
            {
                "Effect": "Allow",
                "Action": "ecs:*",
                "Resource": "*",
                "Condition": {
                    "Bool": {
                        "acs:MFAPresent": [
                            "true"
                        ]
                    }
                }
            }
        ]
    }

Principal

Elemen Principal, yang wajib ada dalam kebijakan berbasis resource, menentukan entitas yang diizinkan atau ditolak untuk mengakses suatu resource.

Catatan

Anda tidak dapat menggunakan elemen Principal dalam kebijakan berbasis identitas. Kebijakan berbasis identitas adalah kebijakan izin yang dilampirkan pada identitas RAM (Pengguna RAM, kelompok, atau Peran RAM). Identitas tempat kebijakan tersebut dilampirkan merupakan principal implisit.

Dalam elemen Principal, Anda dapat menambahkan beberapa jenis principal dan menentukan beberapa principal untuk setiap jenis. Pisahkan beberapa jenis principal dengan koma (,). Jika jenis principal mencakup beberapa nilai, masukkan dalam tanda kurung siku ([ ]) dan pisahkan dengan koma (,). Beberapa principal memiliki hubungan OR, artinya semua principal yang ditentukan diberikan izin.

Berikut adalah contoh elemen Principal:

"Principal": {
  "RAM": [
    "acs:ram::123456789012****:root",
    "acs:ram::987654321098****:root"
  ],
  "Service": "ecs.aliyuncs.com"
}

Principal adalah entitas yang telah terotentikasi dan dapat berupa salah satu jenis berikut:

  • Akun Alibaba Cloud

    Anda dapat menetapkan Akun Alibaba Cloud sebagai principal. Hal ini memberikan izin kepada semua Pengguna RAM dan Peran RAM di bawah akun tersebut. Saat menetapkan Akun Alibaba Cloud, Anda harus menggunakan ARN-nya (acs:ram::<account-id>:root). Berikut contohnya:

    "Principal": {
        "RAM": "acs:ram::123456789012****:root"
    }
    Catatan

    Menetapkan ARN akun (...:root) sebagai principal berarti mempercayai seluruh akun, bukan identitas pengguna tertentu. Izin tersebut kemudian dapat didelegasikan dalam akun tersebut.

  • Pengguna RAM

    Anda dapat menetapkan Pengguna RAM sebagai principal. Anda harus menentukan ARN Pengguna RAM (acs:ram::<account-id>:user/<user-name>), di mana <user-name> harus merupakan nama Pengguna RAM. Berikut contohnya:

    "Principal": {
      "RAM": [
        "acs:ram::123456789012****:user/<user1-name>",
        "acs:ram::123456789012****:user/<user2-name>"
      ]
    }

    Saat menetapkan Pengguna RAM dalam elemen Principal, Anda tidak dapat menggunakan karakter wildcard (*) untuk pencocokan parsial. Anda harus menentukan nama lengkap Pengguna RAM.

    Penting

    Dalam kebijakan kepercayaan Peran RAM, jika elemen Principal berisi ARN Pengguna RAM, sistem akan mengonversi ARN tersebut menjadi ID (misalnya, 29695932303672****) saat Anda menyimpan kebijakan kepercayaan. Biasanya, Anda tidak melihat ID ini. ID tersebut hanya muncul dalam kebijakan kepercayaan jika Pengguna RAM yang ditentukan dihapus. Jika hal ini terjadi, Anda dapat menghapus ID tersebut atau menggantinya dengan ARN Pengguna RAM yang valid. Mekanisme ini membantu mengurangi risiko keamanan. Selain itu, saat membuat atau memperbarui kebijakan kepercayaan, Anda tidak perlu khawatir tentang penggunaan huruf besar/kecil pada <user-name> karena sistem secara otomatis mengonversinya menjadi ARN standar.

  • Peran RAM

    Anda dapat menetapkan Peran RAM sebagai principal. Anda harus menentukan ARN Peran RAM (acs:ram::<account-id>:role/<role-name>), di mana <role-name> harus merupakan nama Peran RAM. Berikut contohnya:

    "Principal": {
      "RAM": [
        "acs:ram::123456789012****:role/<role-name>"
      ]
    }

    Saat menetapkan Peran RAM dalam elemen Principal, Anda tidak dapat menggunakan karakter wildcard (*) untuk pencocokan parsial. Anda harus menentukan nama lengkap Peran RAM.

    Penting

    Dalam kebijakan kepercayaan Peran RAM, jika elemen Principal berisi ARN Peran RAM, sistem akan mengonversi ARN tersebut menjadi ID (misalnya, 38915594982675****) saat Anda menyimpan kebijakan kepercayaan. Biasanya, Anda tidak menyadari keberadaan ID ini. ID tersebut hanya ditampilkan dalam kebijakan kepercayaan ketika Peran RAM yang ditentukan dihapus. Dalam kasus ini, Anda dapat menghapus ID tersebut atau menggantinya dengan ARN Peran RAM yang valid. Mekanisme ini membantu mengurangi risiko keamanan. Selain itu, saat membuat atau memperbarui kebijakan kepercayaan, Anda tidak perlu khawatir tentang sensitivitas huruf besar/kecil pada <role-name>. Sistem secara otomatis mengonversinya menjadi ARN standar.

  • Layanan Alibaba Cloud

    Anda dapat menetapkan layanan Alibaba Cloud sebagai principal. Principal layanan adalah pengenal untuk layanan, yang biasanya menggunakan format <service-name>.aliyuncs.com. Untuk nilai <service-name>, gunakan nama layanan lengkap yang disediakan oleh layanan cloud. Berikut contohnya:

    "Principal": {
      "Service": [
        "ecs.aliyuncs.com"
      ]
    }
  • Penyedia identitas

    Anda dapat menetapkan penyedia identitas sebagai principal. Anda harus menentukan ARN penyedia identitas. Alibaba Cloud mendukung single-sign-on (SSO) berbasis SAML 2.0 dan OIDC. SSO yang menggunakan protokol SAML memerlukan penyedia identitas SAML, yang memiliki ARN dalam format acs:ram::<account-id>:saml-provider/<provider-name>. SSO yang menggunakan protokol OIDC memerlukan penyedia identitas OIDC, yang memiliki ARN dalam format acs:ram::<account-id>:oidc-provider/<provider-name>. Nilai ARN dalam elemen Principal peka huruf besar/kecil. Gunakan informasi ARN standar untuk penyedia identitas yang disediakan oleh sistem.

    "Principal": {
      "Federated": [
        "acs:ram::123456789012****:saml-provider/<provider-name>"
      ]
    }