如何在Fn :: Join Delimiter中指定AWS :: AccountId

时间:2018-07-13 08:50:32

标签: amazon-web-services amazon-cloudformation

我正在尝试在CloudFormation模板中根据参数生成托管策略ARNS的列表:

"PolicyList": {
    "Type": "CommaDelimitedList",
    "Description": "IAM Policies"
}

例如,我想提供一个列表,例如“ Role-S3-ReadOnly”,“ UseKMSKey”,并生成一个类似于

的列表
  • arn:aws:iam :: 123456789:policy / Role-S3-ReadOnly
  • arn:aws:iam :: 123456789:policy / 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插入定界符的任何建议?

0 个答案:

没有答案