You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过IAM策略让用户仅查看Route53中指定托管区域

解决Route53 IAM策略仅显示指定托管区域的问题

Route53的route53:ListHostedZones和route53:ListHostedZonesByName API不支持通过IAM条件过滤返回的托管区域列表,你之前尝试的route53:AssociatedResource条件键不适用于这类列表型操作,这就是配置无效的核心原因。

正确的实现逻辑是:Route53控制台会自动根据用户是否拥有route53:GetHostedZone权限过滤显示托管区域——用户仅能看到自己有权访问的托管区域。基于这个逻辑,你可以调整IAM策略如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:ListHostedZones",
                "route53:ListHostedZonesByName"
            ],
            "Resource": "*"
        },
        {
            "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"
            ]
        }
    ]
}

关键说明

  • 保留对ListHostedZones和ListHostedZonesByName的全局允许:这两个API是控制台加载托管区域列表的基础,虽会返回所有区域,但控制台会自动隐藏用户无GetHostedZone权限的条目。
  • 限定管理操作的资源范围:通过将Resource指定为目标托管区域的ARN,确保用户只能操作指定区域,同时控制台基于GetHostedZone权限自动完成显示过滤。

如果需要进一步限制(比如防止用户通过CLI调用ListHostedZones后查看其他区域详情),可添加Deny语句明确阻止访问非目标区域的GetHostedZone权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:ListHostedZones",
                "route53:ListHostedZonesByName"
            ],
            "Resource": "*"
        },
        {
            "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"
            ]
        },
        {
            "Effect": "Deny",
            "Action": "route53:GetHostedZone",
            "NotResource": [
                "arn:aws:route53:::hostedzone/hz1",
                "arn:aws:route53:::hostedzone/hz2"
            ]
        }
    ]
}

内容的提问来源于stack exchange,提问作者Pedro Miranda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 17:37:17