我正在尝试在CloudFormation模板中根据参数生成托管策略ARNS的列表:
"PolicyList": {
"Type": "CommaDelimitedList",
"Description": "IAM Policies"
}
例如,我想提供一个列表,例如“ Role-S3-ReadOnly”,“ UseKMSKey”,并生成一个类似于
的列表,但将示例帐户ID 123456789 替换为当前的AccountId。
根据FN :: Join的documentation,分隔符必须是字符串,并且不能使用其他内部函数。
如果我使用以下内容,则可以生成上面的列表并替换第一个帐户ID:
"Fn::Sub":
[
"arn:aws:iam::${AWS::AccountId}:policy/${rest}",
{
"rest": {
"Fn::Join": [
",arn:aws:iam::123456789:policy/", <- want to replace the value here with the real accountId
{ "Ref": "PolicyList" }
]
}
}
]
我尝试在Fn :: Join分隔符中使用$ {AWS :: AccountId}代替123456789,但失败了
ARN arn:aws:iam::${AWS::AccountId}:policy/UseKMSKey is not valid.
关于如何将真实帐户ID插入定界符的任何建议?