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

AWS跨账户权限配置:允许组织账户创建含自身ID的Route53记录

实现Route53托管区的账户专属记录权限控制

完全可以实现这个需求,核心是利用IAM的内置身份变量结合Route53的权限条件,既能允许合法的记录创建,又能杜绝伪造其他账户ID的情况。

核心配置思路

通过IAM权限策略的条件判断,把调用者的账户ID(由AWS自动提供的aws:PrincipalAccount变量)和Route53记录名称强制绑定,同时限制只有组织内的账户能使用这个权限。

具体权限策略示例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "route53:ChangeResourceRecordSets",
            "Resource": "arn:aws:route53:::hostedzone/HOSTED_ZONE_ID",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "o-xxxxxxxxxx"
                },
                "StringLike": {
                    "route53:RecordNames": "*${aws:PrincipalAccount}.shareddomain.tld."
                }
            }
        }
    ]
}

关键部分说明

  • 资源指定:把HOSTED_ZONE_ID替换成目标Route53托管区的ID,确保权限只作用在你指定的托管区上。
  • 组织内账户限制:aws:PrincipalOrgID条件确保只有你AWS组织内的账户能使用这个角色,避免外部账户的访问。
  • 记录名称强制绑定:route53:RecordNames的匹配规则要求记录名称必须包含调用者自身的账户ID,格式对应你要的service-a.ACCOUNT_ID.shareddomain.tld(注意Route53的记录名称是FQDN,末尾需要加.,所以策略里写的是*.${aws:PrincipalAccount}.shareddomain.tld.,支持任意前缀)。

为什么无法伪造其他账户ID

aws:PrincipalAccount是AWS提供的内置身份变量,这个值由AWS根据请求发起者的身份自动填充,用户无法通过请求参数篡改。所以只要策略里用了这个变量,就能确保记录中的账户ID一定是调用者自己的账户ID,彻底杜绝伪造OTHER_ACCOUNT_ID的情况。

内容的提问来源于stack exchange,提问作者Erik Karlsson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 09:51:00