Tüm Ürünler
Search
Belge Merkezi

Elastic Compute Service:Enforce a security baseline with RAM Deny policies

Son Güncelleme:Sep 30, 2026

RAM ilkelerine Deny ifadelerini condition öğeleriyle ekleyerek genel IP ataması, parola tabanlı oturum açma veya yüksek riskli bağlantı noktalarının açığa çıkması gibi güvensiz ECS işlemlerini engelleyin.

Yalnızca Allow içeren ilkelerin güvenlik riskleri

Standart RAM ilke ifadeleri, izinleri vermek için Allow etkisini kullanır. Örneğin, aşağıdaki ilke bir kullanıcının ecs:RunInstances eylemiyle bir ECS örneği oluşturmasına izin verir:

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

Bu yaklaşım, uyumsuz kaynaklara yol açabilecek geniş izinler verir. Örneğin:

  • Saldırı yüzeyinin açığa çıkması: Dahili kullanım için tasarlanmış bir veritabanı sunucusuna Elastik IP Adresi (EIP) atanır.

  • Zayıf kimlik bilgileri: Parola tabanlı oturum açma özelliğine sahip bir ECS örneği kaba kuvvet saldırılarına karşı savunmasızdır.

  • Uyumluluk ihlalleri: Kaynak, şirket tarafından onaylanan ve sertleştirilmiş bir görüntü kullanılmadan oluşturulur.

En iyi uygulamalar

Temel ilke

Bir Allow ilkesine condition içeren bir Deny ifadesi ekleyin:

  1. Deny önceliklidir: RAM, geçerli tüm ilkeleri kontrol eder. Herhangi bir ifade Deny sonucu döndürürse, başka bir ifade Allow sonucu döndürse bile istek reddedilir.

  2. Koşullarla hassas kısıtlamalar: Bir Deny ifadesi bir condition bloğu içerebilir. Deny yalnızca istek, ilkedeki Action, Resource ve condition ile eşleştiğinde etkin olur.

Örneğin, aşağıdaki ilke bir genel IP adresi ilişkilendirildiğinde ("ecs:AssociatePublicIpAddress": "true"), herhangi bir örnek kaynağında (acs:ecs:*:*:instance/*) ecs:RunInstances işlemini reddeder ("Effect": "Deny").

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

Bu "Allow + Koşullu Deny" stratejisi, geniş izinler verirken güvenlik temel çizginizi ihlal eden eylemleri engellemek için koruyucu bir bariyer olarak koşullu Deny ekler. Bu yaklaşım, güvenlik yönergelerini platform tarafından zorunlu kılınan kurallara dönüştürür.

Yordam

Hedef asıl varlığa (RAM kullanıcısı, kullanıcı grubu veya rol) iki ilke ekleyin: AliyunECSFullAccess gibi bir Allow ilkesi ve özel bir Deny ilkesi. Allow ilkesi izinleri verirken, Deny ilkesi uyumlu olmayan istekleri reddeder.

  1. Kısıtlanacak işlemleri ve koşulları belirleyin

    Zorunlu kılınacak güvenlik kuralını belirleyin ve ilgili RAM Action ile Condition Key değerlerini bulun. Condition Key, cloud hizmeti API'sinin değerlendirme amacıyla RAM'e sunduğu bir parametredir. Örneğin, ecs:RunInstances tarafından desteklenen tüm Condition Key değerleri için RunInstances bölümündeki "Authorization Information" kısmına bakın.

  2. Koşullu bir Deny ilkesi oluşturun

    1. RAM konsolu üzerinde oturum açın. Sol gezinme bölmesinde Permissions > Policies seçeneğini belirleyin.

    2. Policies sayfasında Create Policy düğmesine tıklayın.

    3. Create Policy sayfasında JSON Editor sekmesine tıklayın. İlke belgesini girin ve OK düğmesine tıklayın.

      Aşağıdaki örneklerde yaygın Deny ilkeleri gösterilmektedir:

      Örnek 1: ECS örnekleri için genel IP'leri yasakla

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

      Örnek 2: ECS örnekleri için anahtar çiftiyle oturum açmayı zorunlu kıl

      "Null": {"ecs:KeyPairName": "true"} ifadesi, ecs:KeyPairName null ise (anahtar çifti belirtilmemişse) Deny etkisinin devreye gireceği anlamına gelir.

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

      Örnek 3: Yüksek riskli bağlantı noktalarının internete açılmasını yasakla

      {
          "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"
                          ]
                      }
                  }
              }
          ]
      }

      Not: ForAnyValue:StringEquals, istekteki herhangi bir bağlantı noktası aralığının ilkedeki bir değerle eşleşip eşleşmediğini kontrol eder. Eşleşme durumunda koşul true olarak değerlendirilir.

    4. Bir Policy Name ve Description girin, ardından OK düğmesine tıklayın. Güvenlik doğrulamasını tamamlayın.

  3. Deny ilkesini ekleyin

    İlkeyi hedef RAM kullanıcısına, kullanıcı grubuna veya role ekleyin.

    1. RAM konsolu üzerinde oturum açın. Sol gezinme bölmesinde Identities > Users seçeneğini belirleyin.

    2. Users sayfasında hedef RAM kullanıcısını bulun ve Actions sütununda Attach Policy seçeneğine tıklayın.

    3. Attach Policy panelinde Deny ilkesini seçin ve OK düğmesine tıklayın.