All Products
Search
Document Center

Elastic Compute Service:Terapkan pembatas keamanan dengan kebijakan RAM

Last Updated:Apr 02, 2026

Pemanfaatan mekanisme kondisi dan efek Deny dalam kebijakan Resource Access Management (RAM) mengubah standar keamanan serta persyaratan kepatuhan menjadi garis dasar keamanan yang otomatis dan dapat diberlakukan. Pendekatan ini menetapkan pembatas pencegahan terhadap pembuatan dan konfigurasi sumber daya cloud yang tidak aman—seperti melarang penugasan Alamat IP publik ke Instance ECS, mewajibkan penggunaan pasangan kunci untuk logon, serta membatasi grup keamanan agar tidak membuka port berisiko tinggi—sehingga membantu Anda membangun lingkungan cloud yang aman secara default.

Risiko keamanan

Kebijakan akses RAM standar umumnya menggunakan efek Allow untuk mendefinisikan tindakan yang diizinkan bagi pengguna. Sebagai contoh, sebuah kebijakan dapat memberikan izin untuk membuat Instance ECS melalui aksi ecs:RunInstances:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",  #Allow
      "Resource": "acs:ecs:*:*:instance/*", #Resource scope
      "Action": [   #OpenAPI operation
        "ecs:RunInstances"
        ]
    }
}

Meskipun pendekatan ini sederhana, pendekatan tersebut membawa risiko signifikan karena memberikan kebebasan tanpa batas dalam cakupan izin yang diberikan. Hal ini berpotensi mengakibatkan pembuatan sumber daya yang melanggar praktik keamanan terbaik, seperti:

  • Permukaan serangan yang terbuka: Server database yang seharusnya hanya digunakan untuk layanan internal secara keliru diberi alamat IP elastis (EIP).

  • Kredensial lemah: Instance ECS dibuat menggunakan metode logon berbasis password, yang rentan terhadap serangan brute-force.

  • Pelanggaran kepatuhan: Sumber daya dibuat tanpa menggunakan image yang telah diperkeras keamanannya sesuai standar perusahaan.

Praktik terbaik

Prinsip inti

Prinsip utamanya adalah menambahkan lapisan kebijakan Deny dengan kondisi spesifik di atas kebijakan Allow yang sudah ada.

  1. Deny memiliki prioritas lebih tinggi: Saat RAM mengevaluasi permintaan, sistem memeriksa semua kebijakan yang berlaku. Jika terdapat kebijakan dengan efek Deny yang cocok dengan permintaan tersebut, aksi tersebut langsung ditolak, terlepas dari adanya kebijakan Allow lain yang mungkin juga berlaku.

  2. Kontrol kondisional yang tepat: Kebijakan Deny dapat mencakup blok kondisi. Efek Deny hanya dipicu jika permintaan cocok dengan elemen Action, Resource, dan kondisi dalam kebijakan tersebut.

Sebagai contoh, saat membuat instans (ecs:RunInstances) untuk semua sumber daya instans (acs:ecs:*:*:instance/*), operasi tersebut ditolak ("Effect": "Deny") jika Alamat IP publik dikaitkan ("ecs:AssociatePublicIpAddress": "true").

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",  #Deny
      "Resource": "acs:ecs:*:*:instance/*", #Resource scope
      "Action": [   #OpenAPI operation
        "ecs:RunInstances"
      ],
      "Condition": {  #Condition rule
        "Bool": {
            "ecs:AssociatePublicIpAddress": "true"   #Condition key assertion
        }
      }
    }
  ]
}

Kombinasi “Allow + Deny bersyarat” ini pertama-tama memberikan izin Allow yang luas, lalu menerapkan pembatas keamanan untuk secara tepat menolak tindakan tertentu yang tidak sesuai dengan garis dasar keamanan. Misalnya, “Izinkan pembuatan Instance ECS, tetapi tolak operasi tersebut jika mencoba mengaitkan Alamat IP publik.” Pendekatan ini mengubah kebijakan keamanan Anda dari sekadar panduan menjadi seperangkat aturan yang dapat diberlakukan di platform cloud.

Prosedur

Untuk menerapkan pembatas ini, Anda harus menyambungkan baik kebijakan Allow (misalnya, AliyunECSFullAccess) maupun kebijakan Deny yang Anda buat ke entitas yang berwenang (seperti Pengguna RAM, kelompok, atau peran). Saat entitas tersebut mencoba melakukan suatu aksi, kebijakan Allow memberikan izin awal, sedangkan kebijakan Deny bertindak sebagai pemeriksaan keamanan untuk memblokir pelanggaran apa pun. Langkah-langkah berikut memandu Anda dalam membuat dan menerapkan garis dasar keamanan menggunakan kebijakan RAM.

  1. Identifikasi aksi dan kondisi utama yang perlu dibatasi

    Pertama, identifikasi aturan keamanan yang ingin Anda terapkan, lalu tentukan Action RAM dan kunci kondisi yang sesuai. Kunci kondisi merupakan parameter yang diekspos oleh API layanan cloud ke RAM untuk evaluasi selama pemberlakuan kebijakan. Anda biasanya dapat menemukan kunci-kunci ini dalam dokumentasi referensi API untuk layanan tertentu. Sebagai contoh, untuk aksi ecs:RunInstances, semua kunci kondisi yang didukung tercantum di bagian "Authorization Information" pada dokumentasi RunInstances.

  2. Buat Kebijakan Penolakan Akses Kondisional

    1. Login ke Konsol RAM. Di panel navigasi kiri, pilih Permissions > Permission Policy.

    2. Di halaman Policies, klik Create Policy.

    3. Di halaman Create Policy, klik tab JSON. Masukkan isi kebijakan, lalu klik OK.

      Contoh berikut menunjukkan kebijakan akses umum yang telah divalidasi:

      Contoh 1: Larang penugasan Alamat IP publik saat pembuatan Instance ECS

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Deny",
            "Action": "ecs:RunInstances",
            "Resource": "acs:ecs:*:*:instance/*",
            "Condition": {
              "Bool": {
                "ecs:AssociatePublicIpAddress": "true"
              }
            }
          }
        ]
      }

      Contoh 2: Wajibkan penggunaan pasangan kunci SSH untuk logon Instance ECS

      Kondisi "Null": {"ecs:KeyPairName": "true"} berarti bahwa jika parameter ecs:KeyPairName bernilai null (yaitu, pengguna tidak memilih pasangan kunci), kondisi tersebut bernilai true dan memicu efek Deny.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "ecs:RunInstances",
                  "Effect": "Deny",
                  "Resource": "acs:ecs:*:*:instance/*",
                  "Condition": {
                      "Null": {
                          "ecs:KeyPairName": "true"
                      }
                  }
              }
          ]
      }

      Contoh 3: Larang aturan grup keamanan membuka port berisiko tinggi ke internet (0.0.0.0/0)

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "ecs:AuthorizeSecurityGroup",
                  "Effect": "Deny",
                  "Resource": "acs:ecs:*:*:securitygroup/*",
                  "Condition": {
                      "StringEquals": {
                          "ecs:SourceCidrIp": "0.0.0.0/0"
                      },
                      "ForAnyValue:StringEquals": {
                          "ecs:PortRange": [
                              "22/22",
                              "3389/3389",
                              "3306/3306",
                              "6379/6379",
                              "27017/27017"
                          ]
                      }
                  }
              }
          ]
      }

      Catatan: Operator ForAnyValue:StringEquals berarti kondisi terpenuhi jika range port yang diminta cocok dengan salah satu nilai dalam daftar.

    4. Masukkan Policy Name: dan Remarks, lalu klik OK. Lengkapi verifikasi keamanan jika diminta.

  3. Sambungkan kebijakan akses

    Setelah membuat kebijakan, sambungkan kebijakan tersebut ke Pengguna RAM, kelompok pengguna, atau peran yang ingin Anda batasi.

    1. Login ke Konsol RAM. Di panel navigasi kiri, pilih Identities > User.

    2. Di halaman User, temukan Pengguna RAM yang dituju dan klik Add Permissions di kolom Operation.

    3. Di panel Add Permissions, pilih kebijakan akses tersebut dan klik OK.