All Products
Search
Document Center

Elastic Compute Service:Terapkan garis dasar keamanan dengan kebijakan Deny RAM

Last Updated:Apr 28, 2026

Tambahkan pernyataan Deny dengan elemen condition ke dalam kebijakan RAM untuk memblokir operasi ECS yang tidak aman, seperti penugasan alamat IP publik, logon berbasis password, atau eksposur port berisiko tinggi.

Risiko keamanan dari kebijakan Allow-only

Pernyataan kebijakan RAM standar menggunakan efek Allow untuk memberikan izin. Sebagai contoh, kebijakan berikut mengizinkan pengguna membuat instans ECS dengan aksi ecs:RunInstances:

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

Pendekatan ini memberikan izin yang terlalu luas sehingga dapat menghasilkan resource yang tidak sesuai kebijakan. Contohnya:

  • Permukaan serangan yang terbuka: Server database yang seharusnya hanya digunakan secara internal diberi Elastic IP Address (EIP).

  • Kredensial lemah: Instans ECS yang menggunakan logon berbasis password rentan terhadap serangan brute-force.

  • Pelanggaran kepatuhan: Resource dibuat tanpa menggunakan image yang telah diperkeras dan disetujui perusahaan.

Praktik terbaik

Prinsip inti

Tambahkan pernyataan Deny dengan condition ke dalam kebijakan Allow:

  1. Deny memiliki prioritas lebih tinggi: RAM memeriksa semua kebijakan yang berlaku. Jika ada pernyataan yang menghasilkan Deny, permintaan akan ditolak, meskipun pernyataan lain menghasilkan Allow.

  2. Batasan tepat dengan kondisi: Pernyataan Deny dapat mencakup blok condition. Efek Deny hanya berlaku jika permintaan sesuai dengan Action, Resource, dan condition dalam kebijakan.

Sebagai contoh, kebijakan berikut menolak ("Effect": "Deny") aksi ecs:RunInstances pada resource instans apa pun (acs:ecs:*:*:instance/*) ketika alamat IP publik dikaitkan ("ecs:AssociatePublicIpAddress": "true").

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

Strategi "Allow + Deny with Condition" ini memberikan izin yang luas sekaligus menambahkan Deny bersyarat sebagai pembatas untuk memblokir tindakan yang melanggar garis dasar keamanan Anda. Dengan demikian, panduan keamanan diubah menjadi aturan yang ditegakkan oleh platform.

Prosedur

Sambungkan dua kebijakan ke pihak yang berwenang (RAM user, kelompok pengguna, atau role): kebijakan Allow seperti AliyunECSFullAccess, dan kebijakan Deny khusus. Kebijakan Allow memberikan izin, sedangkan kebijakan Deny menolak permintaan yang tidak sesuai kebijakan.

  1. Identifikasi operasi dan kondisi yang perlu dibatasi

    Identifikasi aturan keamanan yang akan ditegakkan dan temukan RAM Action serta Condition Key yang sesuai. Condition Key adalah parameter yang diekspos oleh API layanan cloud kepada RAM untuk evaluasi. Sebagai contoh, lihat bagian "Authorization Information" pada RunInstances untuk semua Condition Key yang didukung oleh ecs:RunInstances.

  2. Buat kebijakan Deny bersyarat

    1. Masuk ke Konsol RAM. Di panel navigasi kiri, pilih Permissions > Policies.

    2. Di halaman Policies, klik Create Policy.

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

      Contoh berikut menunjukkan kebijakan Deny umum:

      Contoh 1: Larang penggunaan IP publik untuk instans ECS

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

      Contoh 2: Wajibkan logon dengan pasangan kunci untuk instans ECS

      "Null": {"ecs:KeyPairName": "true"} berarti bahwa jika ecs:KeyPairName bernilai null (tidak ada pasangan kunci yang ditentukan), maka efek Deny akan berlaku.

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

      Contoh 3: Larang membuka port berisiko tinggi ke internet

      {
          "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: ForAnyValue:StringEquals memeriksa apakah range port dalam permintaan cocok dengan nilai apa pun dalam kebijakan. Jika cocok, kondisi tersebut bernilai true.

    4. Masukkan Policy Name dan Description, lalu klik OK. Selesaikan verifikasi keamanan.

  3. Lampirkan Kebijakan Deny

    Sambungkan kebijakan tersebut ke RAM user, kelompok pengguna, atau role yang dituju.

    1. Masuk ke Konsol RAM. Di panel navigasi kiri, pilih Identities > Users.

    2. Di halaman Users, temukan RAM user yang dituju lalu klik Attach Policy di kolom Actions.

    3. Di panel Attach Policy, pilih kebijakan Deny lalu klik OK.