Frage Ist es möglich, AWS-Benutzer / -Konten auf eine bestimmte Region zu beschränken?


Wir betreiben eine Reihe von AWS-Diensten in der Region eu-west-1. Leider scheint es, dass viele unserer Entwickler und andere Mitarbeiter, die temporäre Ressourcen erstellen müssen, diesen Aspekt von AWS vergessen und diese Region nicht auswählen, bevor sie EC2-Instanzen starten, S3-Buckets erstellen usw. Dadurch landen sie oft in die us-east-1-Region, da dies der Standard zu sein scheint, den AWS immer verwendet.

Gibt es einen Weg durch IAM (oder eine andere Möglichkeit), Benutzerkonten so zu beschränken, dass sie nur Dinge in einer bestimmten Region starten / erstellen?


23
2018-04-15 13:25


Ursprung




Antworten:


Leider können Sie dies nicht global tun. Für jedes AWS-Produkt, das es unterstützt, sind Sie jedoch in der Regel können Beschränken Sie den Zugang zu einer bestimmten Region.

Für EC2 können Sie beispielsweise Folgendes tun:

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

Natürlich müssten Sie ein deny Regel auch, wo es angebracht ist.

Hier ist die Dokumentation für das oben genannte.


25
2018-04-15 13:39



Perfekt. Das sieht genau so aus, wie ich es brauche. Vielen Dank! - Bruce P
Anstatt "Condition": { "condition": {} } es sollte angeben "Condition": { "StringEquals": {} } - Jasny - Arnold Daniels
Was ist mit anderen Diensten wie S3? - Yves M.


Akzeptierte Antwort auf diesen Thread gab Syntax Error on Policy. Unten arbeitete für mich:

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

}


4
2017-09-28 16:08





Wenn Sie nur nach EC2-Aktionen fragen, dann können Sie es wie in anderen Antworten erwähnt begrenzen. Wenn es andere Dienste sind, bin ich mir nicht sicher, ob Sie das tun können. AWS Lambda scheint keine zu haben lambda:region Sie können zu einer Bedingung hinzufügen.


3
2017-08-23 16:48





Seit dem 25. April 2018 verfügt AWS über eine globale Ressource aws: RequestedRegion, mit der Sie die Regionen beschränken können, an die ein Benutzer Anforderungen senden kann. Dies ist unabhängig davon, ob der Dienst regional ist oder nicht, sodass Sie ihn auf alle Dienste anwenden können.

AWS Sicherheitsblog

Leider können Sie dies nicht in der Dienststeuerungsrichtlinie einer Organisation verwenden, um sie global auf ein Konto anzuwenden. Sie müssen die Richtlinie jedem einzelnen Prinzipal beifügen und dies überprüfen, wenn Sie ein Konto für bestimmte Regionen sperren möchten.


3
2018-04-30 07:45





Verwenden Sie so etwas. In diesem Beispiel wird der Zugriff auf zwei AWS-Regionen eingeschränkt. Ändern Sie nach Bedarf.

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

1
2017-07-02 12:26



Mit dem Neuen aws:RequestedRegion, das ist die Antwort, die jetzt am relevantesten ist - majikman


Von dem FAQ für AWS IAM:

F: Können Benutzer regional definiert werden? Anfangs nicht. Benutzer sind global   Entitäten, wie ein AWS-Konto ist heute. Keine Region muss sein   Wird beim Definieren von Benutzerberechtigungen angegeben. Benutzer können AWS verwenden   Dienstleistungen in jeder geographischen Region.


0
2018-04-15 13:27



Beeindruckend. Was für eine schlecht geschriebene Antwort von Amazon. "Anfangs nicht." Bedeutet dies, dass dies nach der Erstellung des Kontos getan werden kann? Bedeutet das, dass AWS nicht konnte, als es zum ersten Mal gestartet wurde, aber jetzt? "Beim Definieren von Benutzerberechtigungen muss keine Region angegeben werden." Ich habe nicht gefragt, ob es erforderlich ist. Ich fragte, ob es möglich sei. "Benutzer können AWS-Dienste in jeder geografischen Region verwenden." Scheinbar nicht mehr basierend auf dem, was EEAA oben gepostet hat. Mit der Anweisung "condition" in IAM können Sie einige Dienste nach Region einschränken. Danke trotzdem. - Bruce P
@BruceP - es ist keine schlechte Antwort. Es ist vollkommen in Ordnung. Benutzer sind global. Benutzerrechte kann eingeschränkt werden. - EEAA


Ich fand, dass dies besser funktioniert (ermöglicht das Starten / Stoppen / Beenden / etc.), Um vollen EC2-Zugriff für einen Benutzer auf nur eine Region zu gewähren - jede andere Region zeigt einen Fehler während eines versuchten Zugriffs.

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

0
2018-01-12 14:52