IAM politika değerlendirmesi ve açıkça reddetme

Geliştiriciler için AWS Güvenliğini Kullanma

Rahul Singh

Technical Product Manager

Bir politika, kurallar listesidir

{
  "Effect": "Allow",
  "Action": "s3:GetObject",
  "Resource": "arn:aws:s3:::reports/*",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "true"
    },
    "IpAddress": {
      "aws:SourceIp": "203.0.113.0/24"
    }
  }
}

Tek bir omurgaya yığılmış ve birden üçe numaralanmış bir IAM ifadesinin üç alanı: Effect allow veya deny, Action hangi API çağrısı ve Resource hangi ARN ile adlandırılan hedef.

Geliştiriciler için AWS Güvenliğini Kullanma

Bir politika, kurallar listesidir

{
  "Effect": "Allow",
  "Action": "s3:GetObject",
  "Resource": "arn:aws:s3:::reports/*",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "true"
    },
    "IpAddress": {
      "aws:SourceIp": "203.0.113.0/24"
    }
  }
}

Tek bir omurgaya yığılmış ve birden dörde numaralanmış bir IAM ifadesinin dört alanı: Effect allow veya deny, Action hangi API çağrısı, Resource ARN ile adlandırılan hedef ve Condition koşulların ne olması gerektiği. Kapanış satırı: dört alan, tek kural.

Geliştiriciler için AWS Güvenliğini Kullanma

Üç alan sorar, bir alan yanıtlar

Soru

  • Action: bu çağrı mı
  • Resource: hedef bu mu
  • Condition: koşullar uyuyor mu

Yanıt

  • Effect: allow veya deny

Dikey dizilmiş bir IAM ifadesinin dört alanı: Action, Resource ve Condition bir parantezle "Soru" etiketi altında, Effect ikinci bir parantezle "Yanıt" etiketi altında gruplanmış.

Geliştiriciler için AWS Güvenliğini Kullanma

Kurallar birden fazla yerden gelir

Bir role ekli politika belgesi; rolden bir kovaya doğru ok.

Kimliğe dayalı

  • Role eklenir
  • Bu rol ne yapabilir
Geliştiriciler için AWS Güvenliğini Kullanma

Kurallar birden fazla yerden gelir

Bir role ekli politika belgesi; rolden bir kovaya doğru ok.

Bir kaynağa ekli politika belgesi; ilkeden kovaya doğru bir öznenin oku.

Kimliğe dayalı

  • Role eklenir
  • Bu rol ne yapabilir

Kaynağa dayalı

  • Erişilen şeye eklenir
  • Bu kovaya kim erişebilir
Geliştiriciler için AWS Güvenliğini Kullanma

Kurallar çelişince

{"Effect": "Allow", "Action": "s3:*", "Resource": "*"}
{"Effect": "Deny",  "Action": "s3:DeleteObject", "Resource": "*"}
Geliştiriciler için AWS Güvenliğini Kullanma

Kurallar çelişince

{"Effect": "Allow", "Action": "s3:*", "Resource": "*"}
{"Effect": "Deny",  "Action": "s3:DeleteObject", "Resource": "*"}

İstek: s3:DeleteObject sonucu: Reddedildi.

Açık bir deny, ne kadar geniş olursa olsun her allow'u yener

Bir allow ve bir deny ifadesi aynı isteğe besleniyor; deny yolu kalın çizilmiş ve sonuç denied olarak işaretlenmiş.

Geliştiriciler için AWS Güvenliğini Kullanma

Değerlendirme sırası ve örtük deny

IAM politika değerlendirme akış şeması: bir API isteği önce geçerli bir açık deny'i, sonra geçerli bir allow'u kontrol eder; ikisi de yoksa örtük deny'e ulaşır.

  • Açık deny: biri hayır dedi
  • Allow: biri evet dedi ve kimse hayır demedi
  • Örtük deny: kimse hiçbir şey demedi
Geliştiriciler için AWS Güvenliğini Kullanma

Dört istek, üç sonuç

{"Effect": "Allow", "Action": "s3:*",
 "Resource": "*"}

{"Effect": "Deny", "Action": "s3:DeleteObject",
 "Resource": "*"}
  • s3:GetObject → allow: geniş allow bunu kapsar
  • s3:DeleteObject → açık deny: bir ifade hayır diyor
  • kms:Decrypt, dynamodb:GetItem → örtük deny: bu politika bu servislerden hiç bahsetmiyor
  • KMS şifreleme anahtarlarını tutar; DynamoDB yönetilen bir anahtar-değer veritabanıdır
Geliştiriciler için AWS Güvenliğini Kullanma

Neden izin eklemek çoğu zaman işe yaramaz

Aynı hata, iki neden

Açık deny

  • Başka bir allow hiçbir şeyi değiştirmez
  • Deny'i bul, kapsamını daralt ya da kaldır

Örtük deny

  • Tek bir dar allow
  • Çağrıyı yapan kimlik üzerinde

Bir AccessDenied hatası iki nedene dallanıyor. Solda bir deny bulundu, bu yüzden daha fazla allow hiçbir şeyi değiştirmez. Sağda allow bulunamadı, bu yüzden çağıran kimlikte tek ve dar bir allow sorunu çözer.

Geliştiriciler için AWS Güvenliğini Kullanma

Hadi pratik yapalım!

Geliştiriciler için AWS Güvenliğini Kullanma

Preparing Video For Download...