角色配置route53domains:*权限仍触发ChangeResourceRecordSets 403错误
为什么配置了
route53domains:*权限还是遇到Route53的403错误? 哈哈,这个坑我之前也踩过——你这是把Route53的两个完全不同的权限模块搞混啦!
问题根源
- 你配置的
route53domains:*权限,是用来管理域名注册相关操作的(比如注册新域名、修改域名联系人信息、转移域名所有权这些),和DNS记录的修改完全不搭边。 - 而你报错里提到的
route53:ChangeResourceRecordSets,属于Route53的核心DNS托管服务权限,专门用来操作托管区(Hosted Zone)里的DNS记录,这俩是AWS分开管控的权限组。
解决方案
你需要在你的角色策略里,专门添加Route53核心服务的相关权限。如果只需要修改DNS记录的话,添加route53:ChangeResourceRecordSets就够了;如果有其他Route53操作需求,也可以用更宽泛的route53:*(当然,生产环境建议遵循最小权限原则)。
修改后的策略片段应该是这样的:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:FilterLogEvents", "logs:PutLogEvents", "ssm:GetParameters", "ssm:GetParameter", "lambda:invokeFunction", "s3:*", "ses:*", "sqs:*", "dynamodb:*", "route53domains:*", "route53:ChangeResourceRecordSets" // 新增这一行 ], "Effect": "Allow", "Resource": "*" } ] }
额外建议(安全优化)
如果想遵循最小权限原则,不要给Resource: "*",可以指定具体的托管区ARN,比如:
"Resource": "arn:aws:route53:::hostedzone/[redacted]"
这样你的角色就只能操作这个特定的托管区,安全性更高。
内容的提问来源于stack exchange,提问作者Ali Gajani
相关产品推荐
相关产品推荐

