Я читал в блоге AWS статью об ограничении разрешений для каждого региона - https://aws.amazon.com/blogs/security/easier-way-to-control-access-to-aws-regions-using-iam-policies/.
У меня есть следующие настройки - учетная запись A и учетная запись B.
Учетная запись A имеет коллекцию глобальных таблиц DynamoDB в нескольких регионах.
Учетная запись B в основном берет на себя роль в учетной записи A для получения доступа к этим таблицам DynamoDB.
Для разделения по регионам у меня есть роли IAM в accountA в формате crossAccountTrustedRole-. Поток таков, что accountB при работе в us-east-1 берет на себя роль с именем crossAccountTrustedRole-us-east-1 и получает доступ к данным.
Теперь в документе политики acceptRole у меня есть доверенная сущность, которая является самой учетной записью. Я не хотел специально вдаваться в боль, рассматривая это как роль. Я хочу, чтобы безопасность такова, что accountB в регионе us-west-2 не может взять на себя роль имени crossAccountTrustedRole-us-east-1 в accountA. Чтение этой статьи заставило меня думать, что технически возможно сделать это прямо сейчас. Я думал, что смогу написать политику IAM, которая ограничивает вызов API acceptRole, чтобы запрашиваемый регион совпадал с входящим запросом.
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": "*",
"Condition": {"StringEquals": {"aws:RequestedRegion": "eu-central-1"}
}
Возможно ли это? Или кто-нибудь ранее делал это?