AWS kullanıcılarını / hesaplarını belirli bir bölgeyle sınırlamak mümkün mü?


24

AB-Batı-1 bölgesinde bir dizi AWS hizmeti veriyoruz. Ne yazık ki, geçici kaynaklar yaratması gereken birçok geliştiricimiz ve diğer çalışanımız, AWS'nin bu yönünü unutuyor ve EC2 örneklerini başlatmadan, S3 kovaları oluşturmadan önce bu bölgeyi seçmiyor gibi görünüyor. us-east-1 bölgesi bu yana AWS'nin her zaman kullandığı varsayılan gibi görünüyor.

IAM'de (veya başka bir şekilde) kullanıcı hesaplarını yalnızca belirli bir bölgedeki işleri başlatmak / oluşturmakla sınırlamak için herhangi bir yol var mı?

Yanıtlar:


25

Maalesef bunu global olarak yapamazsınız. Ancak, her AWS ürün için destekleri bunu, genellikle bu olabilir belirli bir bölgeye erişimi sınırlamak.

Örneğin, EC2 için aşağıdakileri yapabilirsiniz:

{
  "Statement":[{
    "Effect":"allow",
    "Action":"RunInstances",
    "Resource":"*",
    "Condition":{
      "StringEquals":{
        "ec2:Region":"us-west-1"
        }
      }
    }
  ]
}

Elbette, denyuygun olduğu yerde bir kural yayınlamanız gerekir .

İşte yukarıdaki için belgeler.


Mükemmel. Bu tam ihtiyacım olana benziyor. Teşekkürler!
Bruce P

5
Yerine "Condition": { "condition": {} }o belirtmelidir"Condition": { "StringEquals": {} }
Jasny - Arnold Daniels

S3 gibi diğer hizmetler ne olacak?
Yves M.

7

Böyle bir şey kullanın. Bu örnek iki AWS bölgesine erişimi kısıtlar. Gerektiği gibi değiştirin.

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
      "StringNotEquals": {
        "aws:RequestedRegion": [
          "eu-central-1",
          "eu-west-1"
        ]
      }
    }
  }]
}

3
Yeni ile aws:RequestedRegion, şu anda en alakalı cevap budur
majikman

1
Teşekkür ederim, bu politika ile varsayılan AWS kullanılabilir politikalarını kullanabilir ve yalnızca bunu bir satıra ekleyebilir ve tüm hizmetleri etkili bir şekilde kısıtlayabilirsiniz.
lkraider

7

25 Nisan 2018’den bu yana, AWS’de global bir kaynak aws vardır: Bir kullanıcının istek gönderebileceği bölgeleri sınırlamak için kullanabileceğiniz RequestedRegion. Bu hizmetin bölgesel olup olmamasından bağımsız olduğundan, tüm servislere uygulayabilirsiniz.

AWS Güvenlik Blogu

Maalesef bunu bir kuruluşun Hizmet Kontrol Politikası'nda genel olarak bir hesaba uygulamak için kullanamazsınız ve politikayı her bir yöneticiye eklemeniz ve bir hesabı belirli bölgelere kilitlemek istiyorsanız bunun böyle olduğunu denetlemeniz gerekir.


4

Bu konuda kabul edilen cevap verdi Syntax Error on Policy. Aşağıda benim için çalıştı:

{
"Statement": [
    {
        "Sid": "Stmt1375943389569",
        "Action": "ec2:*",
        "Effect": "Allow",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ec2:Region": "eu-central-1"
            }
        }
    }
]

}


3

Yalnızca EC2 eylemleri için sorarsanız, evet, diğer yanıtlarda belirtildiği gibi sınırlayabilirsiniz. Diğer hizmetler ise, bunu yapabileceğinizden emin değilim ... örn. AWS Lambda lambda:regionbir duruma ekleyebileceğiniz görünmüyor .


0

Gönderen AWS IAM için SSS :

S: Kullanıcılar bölgesel olarak tanımlanabilir mi? Başlangıçta değil. Kullanıcılar günümüzde bir AWS Hesabı gibi küresel varlıklardır. Kullanıcı izinlerini tanımlarken bölge belirtilmesine gerek yoktur. Kullanıcılar AWS servislerini herhangi bir coğrafi bölgede kullanabilirler.


3
Vay. Amazon'dan ne kadar kötü yazılmış bir cevap. "Başlangıçta değil." Bu hesap oluşturulduktan sonra yapılabileceği anlamına mı geliyor? Bu, ilk başlatıldığında AWS'nin yapamayacağı anlamına mı geliyor, ama şimdi yapabilir mi? "Kullanıcı izinlerini tanımlarken bölge belirtilmesine gerek yok." Gerekli olup olmadığını sormadım. Bunun mümkün olup olmadığını sordum. "kullanıcılar AWS servislerini herhangi bir coğrafi bölgede kullanabilirler." Görünüşe göre, AÇA'nın yukarıda yayınladıklarına dayanarak daha fazla değil. IAM'deki "condition" ifadesi bazı servisleri bölgelere göre kısıtlamanıza izin verir. Aynen teşekkürler.
Bruce P

1
@BruceP - bu kötü bir cevap değil. Tamamen iyi. Kullanıcılar geneldir. Kullanıcı ayrıcalıkları kısıtlanabilir.
AÇA,

0

Bir kullanıcının yalnızca bir bölgeye tam EC2 erişimi vermesini sağlamak için daha iyi çalıştığını (başlatma / durdurma / sonlandırma / vb.) Daha iyi buldum.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "us-east-1"
                }
            }
        }
    ]
}

0

Bu benim için çalışıyor, kabul edilen bir cevap olarak belirtilen json ile politika oluşturmaya çalıştım, ancak benim için çalışmıyor.

{
    "Version": "2012-10-17",
    "Statement": [{
        "Action": "ec2:*",
        "Effect": "Allow",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ec2:Region": [
                    "us-east-1"
                ]
            }
        }
    }]
}

0

Şu anki çözüm - "eu-west-1" kullanarak:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect"    : "Allow",
            "Action"    : "*",
            "Resource"  : "*",
            "Condition": 
            {
                "StringEquals": {
                    "aws:RequestedRegion": "eu-west-1"
                }
            }
        }
    ]
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.