请参阅aws IAM策略云编队文档中的输出参数

时间:2017-06-26 15:40:47

标签: amazon-web-services amazon-cloudformation

我有一个云形成模板,需要根据其他云形成的输出变量构建IAM策略。与策略对应的资源部分是下面的一个。

当我收到Fn:ImportedValue不是字符串的错误时,问题是条件中的Fn :: ImportValue以及资源部分中的问题。

因此,我的问题是如何将资源或条件部分引用到不同云形成的输出?

谢谢,  林

{
"LambdaPolicy": {
            "DependsOn": [
                "LambdaRole"
            ],
            "Type": "AWS::IAM::Policy",
            "Properties": {
                "PolicyName": {
                    "Ref": "FunctionName"
                },
                "Roles": [
                    {
                        "Ref": "LambdaRole"
                    }
                ],
                "PolicyDocument": {
                    "Version": "2012-10-17",
                    "Statement": [
                        {
                            "Effect": "Allow",
                            "Action": [
                                "logs:*"
                            ],
                            "Resource": [
                                "arn:aws:logs:*:*:*"
                            ]
                        },
                        {
                            "Sid": "AllowAccesToDL",
                            "Effect": "Allow",
                            "Action": [
                                "s3:*"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "ArnLike": {
                                    "Fn::GetAtt": [
                                        {
                                            "Fn::ImportValue": [
                                                {
                                                    "Fn::Join": [
                                                        "-",
                                                        [
                                                            {
                                                                "Ref": "BasisStackName"
                                                            },
                                                            "OutputBucketNameFromOtherBucket"
                                                        ]
                                                    ]
                                                }
                                            ]
                                        },
                                        "Arn"
                                    ]
                                }
                            }
                        }
                    ]
                }
            }
        }
        }

1 个答案:

答案 0 :(得分:0)

Ref内在函数在同一个CloudFormation堆栈中有效。它不会对你之前创建的独立堆栈起作用。

您可以将资源(S3存储桶?)名称声明为第二个模板的输入参数,然后在创建第二个堆栈时手动提供存储桶名称。