У меня есть требование, когда я должен разрешать пользователям AWS IAM доступ к консоли AWS только в определенные дни в определенные временные рамки. Может кто-нибудь сказать мне, как это может быть реализовано в политикеОграничение пользователя IAM для временных рамок
ответ
Дополнительный 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 в вашей политике в соответствии с вашими требованиями.