All Products
Search
Document Center

Resource Access Management:Elemen dasar kebijakan izin

Last Updated:May 21, 2026

Di RAM, kebijakan izin mendefinisikan izin dan terdiri dari elemen dasar, yaitu Effect, Action/NotAction, Resource, Condition, serta Principal.

Parameter

Deskripsi

Effect

Efek otorisasi. Nilai yang valid adalah:

  • Allow: Memberikan izin.

  • Deny: Mencabut izin.

Action/NotAction

Operasi pada suatu resource. Dalam sebuah pernyataan, Anda harus menentukan salah satu antara Action atau NotAction.

  • Action: Operasi spesifik yang diizinkan atau ditolak.

  • NotAction: Pengecualian terhadap operasi yang ditentukan. Semua operasi kecuali yang ditentukan dalam NotAction diizinkan atau ditolak.

Resource

Objek atau objek-objek yang dicakup oleh pernyataan tersebut.

Condition

Kondisi yang diperlukan agar kebijakan berlaku.

Principal

Entitas yang diizinkan atau ditolak aksesnya ke suatu resource. Elemen ini hanya digunakan dalam kebijakan berbasis resource, seperti kebijakan kepercayaan Peran RAM.

Effect

Elemen Effect yang wajib menentukan apakah suatu pernyataan mengizinkan atau menolak akses.

Nilai yang valid adalah Allow dan Deny.

Catatan

Jika kebijakan izin mencakup efek Allow dan Deny, maka Deny memiliki prioritas lebih tinggi.

Contoh:

"Effect": "Allow"

Action/NotAction

Elemen Action menentukan operasi yang diizinkan atau ditolak, sedangkan elemen NotAction menentukan operasi yang dikecualikan dari efek Allow atau Deny. Setiap pernyataan harus mencakup salah satu dari elemen tersebut—Action atau NotAction.

Nilainya berupa nama operasi API dari layanan Alibaba Cloud.

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

Nilai dalam Action dan NotAction umumnya tidak peka terhadap huruf besar/kecil. Namun, untuk memastikan perilaku yang konsisten, gunakan awalan layanan <ram-code> dan nama aksi <action-name> secara persis seperti yang ditentukan dalam dokumentasi masing-masing layanan Alibaba Cloud.

Contoh:

  • Contoh tindakan

    "Action": [
      "oss:ListBuckets",
      "ecs:Describe*",
      "rds:Describe*"
    ]
  • Contoh NotAction

    Contoh berikut mengizinkan semua operasi kecuali operasi RAM. Penggunaan NotAction untuk hanya mencantumkan aksi yang dikecualikan (ram:*) membuat pernyataan lebih ringkas dibandingkan dengan mencantumkan semua aksi yang diizinkan. Namun, pendekatan ini dapat memberikan izin yang terlalu luas, sehingga gunakan NotAction dengan hati-hati.

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

Resource

Elemen Resource yang wajib menentukan satu atau beberapa objek yang dipengaruhi oleh pernyataan tersebut dan digunakan dalam kebijakan berbasis identitas.

Nilainya berupa ARN resource (Aliyun Resource Name) dari layanan Alibaba Cloud.

Format ARN resource adalah acs:<ram-code>:<region>:<account-id>:<relative-id>. Gunakan ARN resource secara persis seperti yang ditentukan dalam dokumentasi otorisasi masing-masing layanan Alibaba Cloud.

Tabel berikut menjelaskan format tersebut.

  • acs: Singkatan dari Alibaba Cloud Service, menunjukkan platform cloud publik Alibaba Cloud.

  • ram-code: Kode RAM dari layanan Alibaba Cloud. Untuk informasi selengkapnya, lihat kolom RAM Code dalam Layanan yang kompatibel dengan RAM.

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

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

  • relative-id: Bagian deskripsi resource yang terkait dengan layanan. Semantiknya ditentukan oleh layanan cloud spesifik. Format bagian ini mendukung struktur berbentuk pohon (mirip jalur file). Misalnya, format untuk objek OSS 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 yang opsional menentukan kondisi yang harus dipenuhi agar kebijakan berlaku.

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

条件块判断逻辑

Catatan

Sistem tidak memvalidasi elemen Condition karena bersifat opsional. Jika Anda menyertakan kondisi, pastikan ejaan serta penggunaan huruf besar dan kecilnya benar.

Nama (kunci) kunci kondisi peka terhadap huruf besar/kecil, sedangkan sensitivitas huruf besar/kecil pada nilai kondisi (value) bergantung pada operator kondisi yang digunakan. Misalnya, untuk kunci kondisi bertipe string, operator StringEquals melakukan pencocokan yang peka terhadap huruf besar/kecil antara nilai dalam kebijakan dan nilai dalam permintaan, sedangkan operator StringEqualsIgnoreCase melakukan pencocokan yang tidak peka terhadap huruf besar/kecil.

Rincian elemen Condition adalah sebagai berikut:

  • Logika evaluasi

    • Pencocokan kondisi: Kunci kondisi dapat memiliki satu atau beberapa nilai. Kondisi dianggap terpenuhi jika nilai kunci dalam permintaan cocok dengan salah satu nilai yang ditentukan dalam kebijakan (logika OR).

    • Pencocokan klausa kondisi: Klausa kondisi terpenuhi hanya jika semua kunci kondisinya terpenuhi (logika AND).

    • Pencocokan blok kondisi: Blok kondisi terpenuhi hanya jika semua klausa kondisinya terpenuhi (logika AND).

  • Operator kondisi

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

  • Kunci kondisi

    • Format kunci kondisi global adalah acs:<condition-key>.

      Kunci kondisi global

      Tipe

      Deskripsi

      acs:CurrentTime

      Date and time

      Waktu saat server web menerima permintaan.

      Catatan

      Waktu dalam UTC dan sesuai dengan standar ISO 8601. 

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

      acs:SecureTransport

      Boolean

      Menentukan apakah permintaan dikirim melalui saluran aman, seperti HTTPS.

      acs:SourceIp

      IP address

      Alamat IP klien tempat permintaan dikirim.

      Catatan

      Nilai acs:SourceIp dapat berupa alamat IP tertentu atau Blok CIDR. Jangan menulis alamat IP tertentu dalam format CIDR. Misalnya, 10.0.0.1 tidak boleh ditulis sebagai 10.0.0.1/32.

      acs:MFAPresent

      Boolean

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

      Catatan

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

      acs:PrincipalARN

      String

      Identitas pihak yang berwenang yang membuat permintaan. Kunci kondisi ini hanya tersedia dalam kebijakan kontrol Resource Directory dan kebijakan kepercayaan Peran RAM. Contoh: acs:ram:*:*:role/*resourcedirectory*.

      Catatan

      Saat ini, Anda hanya dapat menentukan ARN Peran RAM, dan ARN tersebut harus menggunakan huruf kecil. Anda dapat melihat ARN Peran RAM di halaman detail peran di Konsol RAM.

      acs:PrincipalRDId

      String

      ID Resource Directory tempat Akun Alibaba Cloud dari pihak yang berwenang terdaftar. Kunci kondisi ini hanya dapat digunakan dalam kebijakan kepercayaan Peran RAM dan kebijakan bucket OSS.

      acs:PrincipalRDPath

      String

      Jalur Akun Alibaba Cloud dari pihak yang berwenang dalam Resource Directory. Kunci kondisi ini hanya dapat digunakan dalam kebijakan kepercayaan Peran RAM dan kebijakan bucket OSS.

      acs:RequestTag/<tag-key>

      String

      Informasi tag yang dikirim dalam permintaan. <tag-key> adalah kunci tag. Ganti dengan nilai aktual. Untuk layanan cloud dan tipe resource yang didukung, lihat informasi Resource Type Authentication dalam Layanan cloud yang mendukung tag.

      acs:ResourceTag/<tag-key>

      String

      Menentukan informasi tentang tag yang dilampirkan pada resource yang diminta. <tag-key> adalah kunci tag. Ganti dengan nilai aktual. Untuk layanan cloud dan tipe resource yang didukung, lihat informasi Resource Type Authorization dalam Layanan cloud yang mendukung tag.

    • Format kunci kondisi khusus layanan adalah <ram-code>:<condition-key>.

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

      Untuk daftar kunci kondisi setiap layanan Alibaba Cloud, lihat dokumentasi otorisasi layanan tersebut.

  • Contoh kondisi

    Kondisi dalam satu pernyataan dievaluasi menggunakan logika AND. Jika Anda ingin menerapkan logika OR pada kondisi tertentu, letakkan kondisi tersebut dalam pernyataan terpisah.

    Contoh 1: Izinkan Pengguna RAM mengakses instans ECS hanya jika pengguna telah mengaktifkan MFA dan menginisiasi permintaan akses 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 hanya jika pengguna telah mengaktifkan MFA atau menginisiasi permintaan akses 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 dalam kebijakan berbasis resource, menentukan entitas yang diizinkan atau ditolak aksesnya. Misalnya, dalam kebijakan kepercayaan Peran RAM, elemen Principal digunakan untuk menentukan entitas mana yang dapat mengasumsikan peran tersebut.

Catatan

Elemen Principal tidak dapat digunakan dalam kebijakan berbasis identitas. Dalam kebijakan jenis ini, entitas RAM (Pengguna RAM, kelompok, atau Peran RAM) yang menjadi tempat kebijakan dilampirkan berperan sebagai principal implisit.

Anda dapat menambahkan beberapa tipe principal ke elemen Principal dan menentukan beberapa principal untuk setiap tipe. Gunakan koma (,) untuk memisahkan tipe principal yang berbeda. Untuk satu tipe principal dengan beberapa nilai, gunakan tanda kurung siku ([ ]) dan pisahkan nilainya dengan koma (,). Hubungan antara beberapa principal adalah logika OR, yang berarti semua principal yang ditentukan dalam kebijakan diberikan izin.

Contoh principal:

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

Principal adalah entitas RAM yang telah diautentikasi dan dapat berupa salah satu tipe berikut:

  • Akun Alibaba Cloud

    Anda dapat menetapkan Akun Alibaba Cloud sebagai principal, yang memberikan izin kepada Pengguna RAM dan Peran RAM di bawah akun tersebut. Saat menentukan Akun Alibaba Cloud, gunakan ARN-nya (acs:ram::<account-id>:root). Contoh:

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

    ARN ini merepresentasikan akun itu sendiri, bukan identitas pengguna root tertentu.

  • Pengguna RAM

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

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

    Saat menentukan Pengguna RAM dalam elemen Principal, Anda tidak dapat menggunakan karakter wildcard (*) untuk pencocokan parsial; Anda harus menentukannya secara eksplisit.

    Penting

    Dalam kebijakan kepercayaan Peran RAM, jika elemen Principal berisi ARN Pengguna RAM tertentu, sistem akan mengonversi ARN tersebut menjadi ID (misalnya, 29695932303672****) saat kebijakan disimpan. ID ini biasanya tidak diketahui oleh Anda dan hanya muncul dalam kebijakan kepercayaan jika Pengguna RAM tersebut telah dihapus. Dalam kasus tersebut, Anda dapat menghapus ID tersebut atau menggantinya dengan ARN Pengguna RAM yang benar—pendekatan ini membantu mengurangi risiko keamanan. Selain itu, saat membuat atau memperbarui kebijakan kepercayaan, Anda tidak perlu khawatir tentang huruf besar/kecil pada <user-name>, karena sistem secara otomatis mengonversinya menjadi ARN standar.

  • Peran RAM

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

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

    Saat menentukan Peran RAM dalam elemen Principal, Anda tidak dapat menggunakan karakter wildcard (*) untuk pencocokan parsial; Anda harus menentukannya secara eksplisit.

    Penting

    Dalam kebijakan kepercayaan Peran RAM, jika elemen Principal berisi ARN Peran RAM tertentu, sistem akan mengonversi ARN tersebut menjadi ID (misalnya, 38915594982675****) saat kebijakan disimpan. ID ini biasanya tidak diketahui oleh Anda dan hanya muncul dalam kebijakan kepercayaan jika Peran RAM tersebut telah dihapus. Dalam kasus tersebut, Anda dapat menghapus ID tersebut atau menggantinya dengan ARN Peran RAM yang benar—pendekatan 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>, karena sistem secara otomatis mengonversinya menjadi ARN standar.

  • Layanan Alibaba Cloud

    Anda dapat menetapkan layanan Alibaba Cloud sebagai principal dengan menentukan nama layanannya. Nama layanan merupakan pengenal layanan Alibaba Cloud dan umumnya mengikuti format <service-name>.aliyuncs.com. Untuk <service-name>, gunakan nama layanan lengkap yang disediakan oleh layanan Alibaba Cloud terkait. Contoh:

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

    Anda dapat menentukan penyedia identitas (IdP) sebagai principal dengan menggunakan ARN-nya. Alibaba Cloud mendukung Single Sign-On (SSO) melalui SAML 2.0 dan OIDC. Untuk SSO SAML, gunakan ARN penyedia identitas SAML: acs:ram::<account-id>:saml-provider/<provider-name>. Untuk SSO berbasis OIDC, Anda harus membuat penyedia identitas OIDC dengan ARN: acs:ram::<account-id>:oidc-provider/<provider-name>. Dalam elemen Principal, nilai ARN peka terhadap huruf besar/kecil; gunakan ARN standar penyedia identitas yang disediakan oleh sistem.

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