我有以下 IAM 政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:ListResourceRecordSets",
"route53:ChangeResourceRecordSets"
],
"Resource": [
"arn:aws:route53:::hostedzone/Z09248431KGTRJSE3GXXA"
]
}
]
}
是否可以传递托管区域的名称,而不是在资源部分中提供
zone_id
?
我不确定这是否可能。我这样说是因为无论出于何种原因,托管区域可能会被销毁并再次创建,这意味着
zone_id
会发生变化,我的 IAM 政策也会发生变化。
查看
route53:ChangeResourceRecordSetsNormalizedRecordNames
条件键 (docs)。
例如,当所有更改的 DNS 名称都以
ChangeResourceRecordSets
结尾时,以下策略将允许
".example.com"
操作
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:ChangeResourceRecordSets"
],
"Resource": "*",
"Condition": {
"ForAllValues:StringLike": {
"route53:ChangeResourceRecordSetsNormalizedRecordNames": [
"*.example.com"
]
}
}
}
]
}
请注意,IAM 通配符与域名通配符不同。请参阅docs中的更多示例。