Multiline yaml sub DestinationPolicy: Fn::Sub: - | { "Version" : "2012-10-17", "Statement" : [ { "Sid" : "", "Effect" : "Allow", "Principal" : { "AWS" : ["${JoinedAccountIds}"] }, "Action" : "logs:PutSubscriptionFilter", "Resource" : "arn:aws:logs:us-east-1:767815946864:destination:${Environment}-${Brand}-${Application}-1" } ] } - { JoinedAccountIds: !Join ['","', !Ref Test] } Conditions for optional params Parameters: OptionalStringParam: Type: String Default: '' OptionalCommaDelimitedListParam: Type: CommaDelimitedList Default: '' Conditions: OptionalStringParamHasValue: !Not [!Equals [!Ref OptionalStringParam, ""]] OptionalCommaDelimitedListParamHasValue: !Not [!Equals [ !Join [ '', !Ref OptionalCommaDelimitedListParam], '']]