Czy można ograniczyć użytkowników / konta AWS do określonego regionu?


24

Prowadzimy szereg usług AWS w regionie eu-west-1. Niestety wydaje się, że wielu naszych programistów i innych pracowników, którzy muszą utworzyć tymczasowe zasoby, zapomina o tym aspekcie AWS i nie wybiera tego regionu przed uruchomieniem instancji EC2, tworzeniem segmentów S3 itp. W rezultacie często kończą w region us-east-1, ponieważ wydaje się być domyślnym, którego zawsze używa AWS.

Czy istnieje jakiś sposób poprzez IAM (lub w inny sposób) ograniczyć konta użytkowników, aby uruchamiać / tworzyć rzeczy tylko w określonym regionie?

Odpowiedzi:


25

Niestety nie możesz tego zrobić na całym świecie. Jednak dla każdego produktu AWS, który go obsługuje, zwykle można ograniczyć dostęp do określonego regionu.

Na przykład dla EC2 możesz wykonać następujące czynności:

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

Oczywiście w denystosownych przypadkach należy również wydać regułę.

Oto dokumentacja powyższego.


Doskonały. To wygląda dokładnie tak, jak potrzebuję. Dzięki!
Bruce P

5
Zamiast "Condition": { "condition": {} }tego należy podać"Condition": { "StringEquals": {} }
Jasny - Arnold Daniels

Co z innymi usługami, takimi jak S3?
Yves M.

7

Użyj czegoś takiego. Ten przykład ogranicza dostęp do dwóch regionów AWS. Zmodyfikuj w razie potrzeby.

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

3
W przypadku nowej aws:RequestedRegionjest to najbardziej
aktualna

1
Dziękujemy, dzięki tej polityce możesz korzystać z domyślnych dostępnych polityk AWS i dołączyć tylko jedną wewnętrzną i skutecznie ograniczyć wszelkie usługi.
lkraider

7

Od 25 kwietnia 2018 r. AWS ma globalny aws zasobów: RequestedRegion, którego można użyć do ograniczenia regionów, do których użytkownik może wysyłać żądania. Jest to niezależne od usługi o zasięgu regionalnym lub nie, więc możesz zastosować ją do wszystkich usług.

Blog bezpieczeństwa AWS

Niestety nie możesz tego użyć w polityce kontroli usług organizacji, aby zastosować ją do konta globalnie, i musisz dołączyć zasadę do każdej jednostki głównej i sprawdzić, czy tak jest, jeśli chcesz zablokować konto w niektórych regionach.


4

Zaakceptowano odpowiedź w tym wątku Syntax Error on Policy. Poniżej działało dla mnie:

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

}


3

Jeśli poprosisz tylko o działania EC2, to tak, możesz to ograniczyć, jak wspomniano w innych odpowiedziach. Jeśli to inne usługi, nie jestem pewien, czy możesz to zrobić ... np. AWS Lambda nie wydaje się, lambda:regionabyś mógł dodać do warunku.


0

Z FAQ dla AWS IAM :

P: Czy użytkownicy mogą być definiowani regionalnie? Początkowo nie. Użytkownicy są podmiotami globalnymi, podobnie jak dziś konto AWS. Podczas definiowania uprawnień użytkownika nie trzeba określać regionu. użytkownicy mogą korzystać z usług AWS w dowolnym regionie geograficznym.


3
Łał. Co za źle napisana odpowiedź od Amazon. „Nie początkowo”. Czy to oznacza, że ​​można to zrobić po utworzeniu konta? Czy to oznacza, że ​​AWS nie mógł, kiedy został uruchomiony, ale teraz? „Podczas definiowania uprawnień użytkownika nie trzeba określać regionu”. Nie zapytałem, czy to było wymagane. Zapytałem, czy można to zrobić. „użytkownicy mogą korzystać z usług AWS w dowolnym regionie geograficznym”. Najwyraźniej już nie w oparciu o to, co opublikował EEAA powyżej. Instrukcja „warunek” w IAM pozwala ograniczyć niektóre usługi według regionu. Dziękuję tak samo.
Bruce P

1
@BruceP - to nie jest zła odpowiedź. Jest całkowicie w porządku. Użytkownicy są globalni. Uprawnienia użytkownika można ograniczyć.
EEAA

0

Uważam, że działa to lepiej (pozwala na uruchomienie / zatrzymanie / zakończenie / itp.), Aby udzielić użytkownikowi pełnego dostępu EC2 tylko do jednego regionu - każdy inny region pokazuje błąd podczas każdej próby dostępu.

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

0

Ten działa dla mnie, próbowałem stworzyć politykę z jsonem wymienionym jako akceptowana odpowiedź, ale to nie działa dla mnie.

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

0

Takie jest obecne rozwiązanie - używając „eu-west-1”:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect"    : "Allow",
            "Action"    : "*",
            "Resource"  : "*",
            "Condition": 
            {
                "StringEquals": {
                    "aws:RequestedRegion": "eu-west-1"
                }
            }
        }
    ]
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.