title: Cloudformation Bucket Policy - "Statement is missing required element"
body: <p>I have this S3 Bucket and Policy that I am deploying to CloudFormation.</p>
  
  <pre><code>Resources:
    ReportsBucket:
      Type: AWS::S3::Bucket
  
    BucketPolicy:
      Type: AWS::S3::BucketPolicy
      Properties:
        Bucket: !Ref ReportsBucket
        PolicyDocument:
          Id: ReportPolicy
          Version: "2012-10-17"
          Statement:
            - Sid: ReportBucketPolicyDoc
              Effect: Allow
              Action: "s3:*"
              Principal:
                AWS: !Join ['', ["arn:aws:iam::", !Ref "AWS::AccountId", ":root"]]
              Resource: !Join ['', ['arn:aws:s3:::', !Ref S3Bucket, '/*']]
  </code></pre>
  
  <p>It fails with,</p>
  
  <pre><code>UPDATE_ROLLBACK_IN_PROGRESS AWS::CloudFormation::Stack  {my stack name} The following resource(s) failed to create: [BucketPolicy].
  CREATE_FAILED   AWS::S3::BucketPolicy   BucketPolicy    Statement is missing required element
  </code></pre>
  
  <p>What's wrong with my policy?</p>