我有一个要求,即我必须允许AWS IAM用户仅在特定时间段的特定日期访问AWS控制台。任何人都可以告诉我如何在政策中实施这一点
答案 0 :(得分:2)
Condition 中的可选IAM Policy元素可让您指定政策生效的条件:
在Condition元素中,构建表达式,在该表达式中使用布尔运算符(等于,小于等)使您的条件与请求中的值匹配。 条件值可以包括日期,时间,请求者的IP地址,请求源的ARN,用户名,用户ID以及请求者的用户代理。 [...] [强调我的]
提供的示例使用带有DateLessThan
密钥的aws:CurrentTime
条件来指定必须在2013年6月30日之前收到请求:
{
"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或epoch(UNIX)时间之一指定日期/时间值。
假设这实际上是您的用例,您需要使用一些自动化来包装条件管理,该自动化会根据您的要求以滚动方式更新策略中的绝对ISO 8601日期。