Чи можна обмежити користувачів / акаунти AWS певним регіоном?


24

Ми здійснюємо ряд служб AWS в регіоні eu-west-1. На жаль, здається, що багато наших розробників та інших працівників, яким потрібно створити тимчасові ресурси, забувають про цей аспект AWS і не вибирають цей регіон перед запуском екземплярів EC2, створення відра S3 тощо. В результаті вони часто опиняються в регіон us-east-1, оскільки це, як видається, є типовим, який AWS завжди використовує.

Чи можна через IAM (або іншим способом) обмежити облікові записи користувачів лише запускати / створювати речі в певному регіоні?

Відповіді:


25

На жаль, ви не можете цього зробити в усьому світі. Однак для кожного продукту AWS, який його підтримує, зазвичай ви можете обмежити доступ до певного регіону.

Наприклад, для EC2 ви можете зробити наступне:

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

Звичайно, вам потрібно буде також виписати denyправило, де це доречно.

Ось документація до сказаного.


Ідеально. Це виглядає як саме те, що мені потрібно. Спасибі!
Брюс П

5
Замість "Condition": { "condition": {} }цього слід заявити"Condition": { "StringEquals": {} }
Ясні - Арнольд Даніельс

Що з іншими службами, такими як S3?
Ів М.

7

Використовуйте щось подібне. Цей приклад обмежує доступ до двох регіонів AWS. Змініть за потребою.

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

3
З новим aws:RequestedRegion, ця відповідь зараз є найбільш актуальною
majikman

1
Дякуємо, що за допомогою цієї політики ви можете використовувати доступні за замовчуванням політики AWS і приєднувати лише цю вбудовану лінію, і ви фактично обмежуєте будь-які послуги.
lkraider

7

З 25 квітня 2018 року AWS має глобальний ресурс aws: RequestedRegion, який можна використовувати для обмеження регіонів, до яких користувач може надсилати запити. Це не залежно від регіональної служби чи не, тому ви можете застосувати її до всіх служб.

Блог безпеки AWS

На жаль, ви не можете використовувати це в політиці організації управління послугами, щоб застосувати його до облікового запису в усьому світі, і ви повинні приєднати політику до кожного принципалу і перевірити, що це так, якщо ви хочете заблокувати обліковий запис у певних регіонах.


4

Прийняту відповідь на цю тему дали Syntax Error on Policy. Нижче працювали для мене:

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

}


3

Якщо ви запитуєте лише дії EC2, то так, ви можете обмежити це, як зазначено в інших відповідях. Якщо це інші послуги, я не впевнений, що ви можете це зробити ... наприклад, AWS Lambda, здається, не має змоги lambda:regionдодати умову.


0

З поширених запитань про AWS IAM :

З: Чи можна визначити користувачів регіонально? Спочатку не Користувачі - це глобальні суб'єкти, як сьогодні є акаунт AWS. При визначенні дозволів користувача не потрібно вказувати область. користувачі можуть користуватися послугами AWS у будь-якому географічному регіоні.


3
Ого. Яка погано написана відповідь від Амазонки. "Спочатку". Чи означає це, що це можна зробити після створення облікового запису? Чи означає це, що AWS не міг, коли він був запущений, але він може зараз? "При визначенні дозволів користувача не потрібно вказувати жоден регіон." Я не питав, чи потрібно. Я запитав, чи можна це зробити. "користувачі можуть користуватися послугами AWS у будь-якому географічному регіоні." Мабуть, вже не на основі викладеного вище ЄЕАА. Заява "умова" в IAM дозволяє обмежити деякі послуги за регіонами. Дякую саме так.
Брюс П

1
@BruceP - це не погана відповідь. Це абсолютно чудово. Користувачі глобальні. Права користувачів можуть бути обмежені.
ЄЕАА

0

Я виявив, що це працює краще (дозволяє запускати / зупиняти / припиняти / тощо), щоб надати повний доступ EC2 для користувача лише до одного регіону - кожна інша область показує помилку під час будь-якої спроби доступу.

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

0

Цей для мене працює, я намагався створити політику за допомогою згадуваного json як прийняту відповідь, але це не працює для мене.

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

0

Це поточне рішення - використання "eu-west-1":

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect"    : "Allow",
            "Action"    : "*",
            "Resource"  : "*",
            "Condition": 
            {
                "StringEquals": {
                    "aws:RequestedRegion": "eu-west-1"
                }
            }
        }
    ]
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.