Пакеты соответствия облачной информации

#amazon-cloudformation

#amazon-cloudformation

Вопрос:

Я попытался поиграть с пакетами соответствия AWS через Cloudformation. Я создал что-то действительно простое:

Следующий стек создает пакет соответствия S3 . Затем я сохранил шаблон пакета соответствия в другой корзине S3 (последний скрипт):

 AWSTemplateFormatVersion: '2010-09-09'
Description: Conformancepack Stack
Parameters:
  ZipBucketParam:
    Description: bucket name
    Type: String
  TemplateBucket:
    Description: bucket name
    Type: String
Resources:
  ZipBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Sub ${ZipBucketParam}
      PublicAccessBlockConfiguration:
        BlockPublicAcls: true
        BlockPublicPolicy: true
        IgnorePublicAcls: true
        RestrictPublicBuckets: true

  ZipzapBucketBucketPolicy:
    Type: AWS::S3::BucketPolicy
    Properties:
      Bucket:
        Ref: "ZipBucket"
      PolicyDocument:
        Statement:
          -
            Sid: "AWSConfigConformsCheckAcls"
            Action:
              - "s3:GetBucketAcl"
            Effect: "Allow"
            Resource:
              Fn::Join:
                - ""
                  - "arn:aws:s3:::"
                  -
                    Ref: "ZipBucket"
            Principal:
              AWS:
                - !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms"
            Condition:
              Bool:
                aws:SecureTransport: "true"
          -
            Sid: "AWSConfigConformsWriteBucket"
            Action:
              - "s3:PutObject"
            Effect: "Allow"
            Resource:
              Fn::Join:
                - ""
                  - "arn:aws:s3:::"
                  -
                    Ref: "ZipBucket"
                  - "/AWSLogs/"
                  - Fn::Sub: ${AWS::AccountId}
                  - "/Config/*"
            Principal:
              AWS:
                - !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms"
            Condition:
              StringEquals:
                s3:x-amz-acl: "bucket-owner-full-control"
              Bool:
                aws:SecureTransport: "true"
          -
            Sid: "AWSConfigConformsBucketRead"
            Action:
              - "s3:GetObject"
            Effect: "Allow"
            Resource:
              Fn::Join:
                - ""
                  - "arn:aws:s3:::"
                  -
                    Ref: "ZipBucket"
                  - "/AWSLogs/"
                  - Fn::Sub: ${AWS::AccountId}
                  - "/Config/*"
            Principal:
              AWS:
                - !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms"
            Condition:
              Bool:
                aws:SecureTransport: "true"
          -
            Action:
              - "*"
            Effect: "Deny"
            Resource:
              Fn::Join:
                - ""
                -
                  - "arn:aws:s3:::"
                  -
                    Ref: "ZipBucket"
                  - "/*"
            Principal: "*"
            Condition:
              Bool:
                aws:SecureTransport: "false"

  FirstConformancePack:
    Type: AWS::Config::ConformancePack
    Properties:
      ConformancePackName: first-conformance-pack
      DeliveryS3Bucket: !Sub s3://${ZipBucket}
      TemplateS3Uri: !Sub s3://${TemplateBucket}/conformance.yaml
 

И шаблон для conf pack выглядит следующим образом:

      S3BucketSSLRequestsOnly:
  Type: AWS::Config::ConfigRule
  Properties:
   ConfigRuleName: data-in-transit-s3-bucket-ssl-requests-only
   Scope:
      ComplianceResourceTypes:
        - "AWS::S3::Bucket"
   Source:
    Owner: AWS
    SourceIdentifier: "S3_BUCKET_SSL_REQUESTS_ONLY"
 

Я получаю сообщение об ошибке ниже. Есть какие-нибудь идеи, что я здесь делаю не так? Политики корзины для исходного S3 такие же, как и для той, которую я создаю в этом стеке.

«Предоставлен неверный запрос: шаблон формирования облака, переданный во входном параметре, недействителен (Service: Config, код состояния: 400»

Ответ №1:

Хм, неважно. Я, по-видимому, удалился в первую строку файла config-rule. Очевидно, что это должно начинаться с « Resources «.

 Resources:
  S3BucketSSLRequestsOnly:
    Type: AWS::Config::ConfigRule
    Properties:
    .
    .
    .