我正在尝试创建一个 IAM 策略,以确保我应用该策略的用户只能看到 Route 53 中的一组特定托管区域(例如 hz1 和 hz2)。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:ListHostedZones",
"route53:ListHostedZonesByName"
],
"Resource": "*",
// SOME CONDITION THAT WILL DISPLAY ONLY THE SPECIFIED HOSTED ZONE
},
{
"Effect": "Allow",
"Action": [
"route53:GetHostedZone",
"route53:ListResourceRecordSets",
"route53:ChangeResourceRecordSets",
"route53:CreateHealthCheck",
"route53:DeleteHealthCheck",
"route53:GetHealthCheck",
"route53:UpdateHealthCheck",
"route53:GetHealthCheckCount",
"route53:ListHealthChecks"
],
"Resource": [
"arn:aws:route53:::hostedzone/hz1",
"arn:aws:route53:::hostedzone/hz2"
]
}
]
}
我们希望用户能够按照自己的意愿管理区域,但我们希望隐藏 Route 53 控制台中的其他区域,因为它们与该用户的活动无关。有什么办法可以有条件地实现这一点吗?比如:
"Condition": {
"StringEquals": {
"route53:AssociatedResource": [
"arn:aws:route53:::hostedzone/hz1"
]
}
}
这只是一个例子。我知道这行不通,但我在想也许有某种条件可以实现我们所需要的。
到目前为止,除了我建议的示例之外,我还没有尝试过任何其他方法。
根据 Amazon Route 53 的操作、资源和条件键 - 服务授权参考,
ListHostedZones
命令不接受任何条件。
因此,如果用户有权调用
ListHostedZones
,那么他们将收到托管区域的完整列表。无法过滤他们收到的列表。