{
"AWSTemplateFormatVersion":"2010-09-09",
"Parameters":{
"Prefix":{
"Type":"String",
"Description":"Prefix to add to the names of the IAM resources",
"Default":"my-prefix",
"MinLength": "3",
"MaxLength": "9",
"ConstraintDescription": "Prefix must be between 3 and 9 characters in length and must be a String."
}
},
"Resources":{
"RkVpcPolicyGroup":{
"Type":"AWS::IAM::Group",
"Properties":{
"GroupName":{
"!Sub":"${Prefix}-evpc-policy-group"
}
}
},
"RkVpcEksctlPolicyGroup":{
"Type":"AWS::IAM::Group",
"Properties":{
"GroupName":{
"!Sub":"${Prefix}-evpc-eksctl-policy-group"
}
}
},
"RkExistingVpcServiceAccountUser":{
"Type":"AWS::IAM::User",
"Properties":{
"UserName":{
"!Sub":"${Prefix}-existing-vpc-sa"
},
"Groups":[
{
"Ref":"RkVpcPolicyGroup"
},
{
"Ref":"RkVpcEksctlPolicyGroup"
}
]
}
}
}
}
我尝试使用 sub 函数向 IAM 资源名称添加前缀,但上面的代码对于逻辑 ID 的 RkVpcEksctlPolicyGroup 和 RkVpcPolicyGroup 都抛出“属性 GroupName 的值必须为字符串类型”错误。我在这里缺少什么?
最佳答案
您应该使用Sub
的完整形式。因此,对于 RkVpcPolicyGroup
来说,它应该是:
"RkVpcPolicyGroup":{
"Type":"AWS::IAM::Group",
"Properties":{
"GroupName":{
"Fn::Sub":["${Prefix}-evpc-policy-group", {"Prefix": {"Ref": "Prefix"}}]
}
}
}
必须对另一组进行类似的更改。
关于amazon-web-services - 如何在 AWS CloudFormation 中使用 sub 进行参数化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75989780/