2015-03-16 2 views
3

У меня есть требование, когда я должен разрешать пользователям AWS IAM доступ к консоли AWS только в определенные дни в определенные временные рамки. Может кто-нибудь сказать мне, как это может быть реализовано в политикеОграничение пользователя IAM для временных рамок

ответ

2

Дополнительный Condition элемент в IAM Policyпозволяет определить условия, когда политика действует:

В элементе Состояния, вы строите выражения, в которых вы используете логические операторы (равные, меньше и т. д.), чтобы соответствовать вашему условию в отношении значений в запросе. Значения условий могут включать дату, время, IP-адрес запрашивающего, ARN источника запроса, имя пользователя, идентификатор пользователя и пользовательский агент запрашивающего. [...] [курсив мой]

предоставляемые пример использует условие DateLessThan с ключом aws:CurrentTime, чтобы указать, что запрос должен быть получен до 30 июня 2013 года:

{ 
    "Version": "2012-10-17", 
    "Statement": { 
    "Effect": "Allow", 
    "Action": "iam:*AccessKey*", 
    "Resource": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:user/*", 
    "Condition": {"DateLessThan": {"aws:CurrentTime": "2013-06-30T00:00:00Z"}} 
    } 
} 

Как показано здесь, это, к сожалению, работает только с условиями относительно абсолютных дат, вместо того, чтобы сказать выражение cron или что-то подобное для указания конкретных часов дня или дней в неделю:

Условия дат позволяют ограничивать доступ на основе сравнения ключа с датой/временем. Вы используете эти условия с ключами aws:CurrentTime или aws:EpochTime. Вы должны указать значения даты/времени с одним из W3C implementations of the ISO 8601 date formats или в эпоху (UNIX).

Предполагая, что это ваш прецедент на практике, вам нужно будет обернуть управление состоянием некоторой автоматизацией, которая обновляет абсолютные даты ISO 8601 в вашей политике в соответствии с вашими требованиями.