全部产品
Search
文档中心

Elastic Compute Service:Gunakan kebijakan RAM untuk membatasi operasi cloud

更新时间:Nov 09, 2025

Anda dapat menggunakan mekanisme Condition dan Deny dalam kebijakan Resource Access Management (RAM) untuk mengubah standar keamanan dan persyaratan kepatuhan menjadi dasar keamanan yang dapat diterapkan pada platform cloud. Pendekatan ini mencegah pembuatan dan konfigurasi sumber daya cloud yang tidak aman dari sumbernya. Sebagai contoh, Anda dapat melarang pemberian alamat IP publik ke Instance ECS, menegakkan penggunaan pasangan kunci untuk logon, dan membatasi grup keamanan dari membuka port yang rentan. Ini membantu Anda membangun lingkungan cloud yang aman secara default.

Risiko keamanan

Kebijakan akses RAM standar biasanya menggunakan mode Allow, yang memberikan izin yang menentukan operasi apa yang dapat dilakukan oleh pengguna. Sebagai contoh, sebuah kebijakan dapat mengizinkan pembuatan Instance ECS dengan ecs:RunInstances:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",  #Mengizinkan
      "Resource": "acs:ecs:*:*:instance/*", #Cakupan sumber daya
      "Action": [   #Operasi OpenAPI
        "ecs:RunInstances"
        ]
    }
}

Meskipun mode ini sederhana, ia menimbulkan ancaman tersembunyi dengan memberikan kebebasan berlebihan dalam cakupan izin. Hal ini dapat menyebabkan pembuatan sumber daya yang tidak sesuai dengan standar keamanan. Sebagai contoh:

  • Permukaan serangan yang terpapar: Server database yang dimaksudkan hanya untuk layanan internal salah diberi alamat IP elastis (EIP).

  • Kredensial lemah: Metode logon berbasis kata sandi digunakan saat membuat Instance ECS, yang membuat instance tersebut rentan terhadap serangan brute-force.

  • Pelanggaran kepatuhan: Sumber daya dibuat tanpa menggunakan citra perusahaan standar yang telah menjalani penguatan keamanan.

Praktik terbaik

Prinsip inti

Prinsip inti adalah menambahkan lapisan kebijakan Deny bersyarat di atas kebijakan Allow.

  1. Deny memiliki prioritas: Saat RAM mengevaluasi permintaan operasi, ia memeriksa semua kebijakan yang relevan. Jika aturan kebijakan Deny cocok, operasi segera ditolak, terlepas dari apakah kebijakan Allow juga ada.

  2. Batasan kondisi yang tepat: Kebijakan Deny dapat mencakup blok Condition. Efek Deny dipicu hanya ketika operasi cocok dengan Action, Resource, dan Condition yang ditentukan.

Sebagai contoh, ketika pengguna membuat instance (ecs:RunInstances) untuk sumber daya instance apa pun (acs:ecs:*:*:instance/*), operasi ditolak ("Effect": "Deny") jika alamat IP publik dilampirkan ("ecs:AssociatePublicIpAddress": "true").

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",  #Menolak
      "Resource": "acs:ecs:*:*:instance/*", #Cakupan sumber daya
      "Action": [   #Operasi OpenAPI
        "ecs:RunInstances"
      ],
      "Condition": {  #Aturan kondisional
        "Bool": {
            "ecs:AssociatePublicIpAddress": "true"   #Pernyataan kunci kondisi
        }
      }
    }
}

Kombinasi "Allow + Deny dengan Condition" ini pertama-tama memberikan izin Allow yang luas untuk suatu operasi. Kemudian, bertindak sebagai pengaman dengan menolak secara tepat operasi tertentu yang tidak sesuai dengan dasar keamanan. Sebagai contoh, "Izinkan pembuatan Instance ECS, tetapi tolak operasi jika ada upaya untuk melampirkan alamat IP publik." Ini membuat kebijakan keamanan menjadi aturan yang dapat diterapkan di platform, bukan sekadar panduan.

Prosedur

Entitas yang ingin Anda batasi harus memiliki dua kebijakan yang dilampirkan: kebijakan Allow, seperti AliyunECSFullAccess, yang mengizinkan operasi, dan kebijakan Deny yang Anda buat. Ketika pengguna melakukan operasi, kebijakan Allow memberikan izin, sementara kebijakan Deny bertindak sebagai auditor keamanan yang menolak upaya yang tidak sesuai. Langkah-langkah berikut akan membimbing Anda melalui pembuatan dan implementasi dasar keamanan berdasarkan kebijakan RAM.

  1. Identifikasi operasi utama dan kondisi untuk dibatasi

    Pertama, identifikasi aturan keamanan yang ingin Anda tegakkan dan temukan RAM Action dan kunci kondisi yang sesuai. Kunci kondisi adalah parameter yang disediakan API layanan Alibaba Cloud kepada RAM untuk evaluasi. Anda dapat menemukan kunci-kunci ini di dokumentasi API untuk layanan tertentu. Sebagai contoh, untuk tindakan ecs:RunInstances, Anda dapat menemukan semua kunci kondisi yang didukung di bagian "Informasi Otorisasi" dari dokumentasi RunInstances.

  2. Menulis Kebijakan Tolak Akses Bersyarat

    1. Masuk ke Konsol Resource Access Management (RAM). Di panel navigasi di sebelah kiri, pilih Permission Management > Access Policy.

    2. Di halaman Kebijakan Akses, klik Create Policy.

    3. Di halaman Create Policy, klik tab Script Editor, masukkan dokumen kebijakan berikut, dan klik OK.

      Contoh berikut menunjukkan kebijakan akses umum dan terverifikasi:

      Contoh 1: Larang melampirkan alamat IP publik saat membuat 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 saat membuat Instance ECS

      Ekspresi "Null": {"ecs:KeyPairName": "true"} berarti bahwa jika parameter ecs:KeyPairName kosong (pengguna tidak memilih pasangan kunci), kondisi terpenuhi, dan tindakan Deny berlaku.

      {
          "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 yang rentan 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: ForAnyValue:StringEquals berarti kondisi terpenuhi jika rentang port yang pengguna coba buka cocok dengan salah satu rentang dalam daftar.

    4. Masukkan Policy Name dan Note, klik OK, dan kemudian lengkapi otentikasi keamanan.

  3. Lampirkan kebijakan akses

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

    1. Masuk ke Konsol RAM. Di panel navigasi di sebelah kiri, pilih Identity Management > Users.

    2. Di halaman Users, temukan Pengguna RAM target dan klik Add Permissions di kolom Actions.

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