title: CloudFormation Key Value pair in Environment Variables
body: <p>I am fairly new to AWS so question I am asking here may sound like very basic. I am trying to define cloudformation template and I have requirement that I need to tag each resources I create. </p>
  
  <p>I can easily create resources and apply tags using following </p>
  
  <pre><code>Resources:
    ResourceName1:
      Type: AWS::SSM::Parameter
      Properties:
        Name: 'ResourceName1'
        Type: String
        Value: 'Value'
        Tags:
          a: 'some value A'
          b: 'some value B'
          c: 'some value C'
    ResourceName2:
      Type: AWS::SSM::Parameter
      Properties:
        Name: 'ResourceName2'
        Type: String
        Value: 'Value'
        Tags:
          a: 'some value A'
          b: 'some value B'
          c: 'some value C'
  </code></pre>
  
  <p>Here if I create multiple resources tags will be repeated and If I need to make change to tag value I have to change that many time for each resources, So I was thinking if something like below is possible where I can externalize Tags. </p>
  
  <pre><code>Mappings:
    EnvVariables:
      tags:
      [ a: 'some value A'
        b: 'some value B'
        c: 'some value C'
      ]
  
  Resources:
    ResourceName1:
      Type: AWS::SSM::Parameter
      Properties:
        Name: 'ResourceName1'
        Type: String
        Value: 'Value'
        Tags:
          !FindInMap [EnvVariables, tags]
    ResourceName2:
      Type: AWS::SSM::Parameter
      Properties:
        Name: 'ResourceName2'
        Type: String
        Value: 'Value'
        Tags:
          !FindInMap [EnvVariables, tags]
  </code></pre>
  
  <p>Either this or if there is any other way to externalize Tags in one place and refere to it from Resources it would make doing changes to tag easier.</p>