#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:
.
.
.