Настройте Cloudtrail s3 Bucket с правильной политикой - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь вывести Cloudtrail в дорогу и хочу установить Cloudtrail s3bucket.но Политика не завершена.Вот мой код:

CloudtrailBucket:
  Type: AWS::S3::Bucket
  DeletionPolicy: Delete
  Description: Stores all Trails for this account
  Properties:
  AccessControl: BucketOwnerFullControl
  BucketName: !Sub "${AWS::AccountId}-invoice-cloudtrail"
  LifecycleConfiguration:
    Rules:
    - Id: GlacierRule
      Prefix: glacier
      Status: Enabled
      ExpirationInDays: '365'
      Transitions:
        - TransitionInDays: '1'
          StorageClass: Glacier
  BucketEncryption:
    ServerSideEncryptionConfiguration:
      - ServerSideEncryptionByDefault:
          SSEAlgorithm: AES256
  Tags:
    - Key: Name
      Value: !Sub '${EnvironmentName} ${Project}-CloudtrailBucket'
  VersioningConfiguration:
    Status: Suspended

и это политика, которую я хочу использовать:

CloudtrailBucketPolicy:
 Type: AWS::S3::BucketPolicy
 Properties:
  Bucket: !Ref CloudtrailBucket
  PolicyDocument:
    Statement:
    - Sid: AWSCloudTrailAclCheck
      Effect: Allow
      Principal:
        Service: cloudtrail.amazonaws.com
      Action:
        - s3:GetBucket*
      Resource:
       - !Sub "arn:aws:s3:::${AWS::AccountId}-invoice-cloudtrail/*"
    - Sid: AWSCloudTrailWrite
      Effect: Allow
      Principal:
        Service: cloudtrail.amazonaws.com
      Action: s3:PutObject
      Resource:
         - !Sub "arn:aws:s3:::${AWS::AccountId}-invoice-cloudtrail/*"
      Condition:
        StringEquals:
          s3:x-amz-acl: bucket-owner-full-control

Я действительно не знаю, что может быть не так.сообщение об ошибке следующее:

Action does not apply to any resource(s) in statement (Service: Amazon S3; Status Code: 400; Error Code: MalformedPolicy; Request ID: 7A458D04A5765AC6; S3 Extended Request ID: EYn2is5Oph1+pnZ0u+zEH067fWwD0fyq1+MRGRxJ1qT3WK+e1LFjhhE9fTLOFiBnhSzbItfdrz0=)

1 Ответ

0 голосов
/ 21 октября 2018

Я считаю, что вы должны изменить свою политику, чтобы она соответствовала следующему:

CloudtrailBucketPolicy:
 Type: 'AWS::S3::BucketPolicy'
 Properties:
  Bucket: !Ref CloudtrailBucket
  PolicyDocument:
    Statement:
    - Sid: AWSCloudTrailAclCheck
      Effect: Allow
      Principal:
        Service: cloudtrail.amazonaws.com
      Action:
        - s3:GetBucketAcl
      Resource:
       - !Sub "arn:aws:s3:::${AWS::AccountId}-invoice-cloudtrail"
    - Sid: AWSCloudTrailWrite
      Effect: Allow
      Principal:
        Service: cloudtrail.amazonaws.com
      Action: s3:PutObject
      Resource:
         - !Sub "arn:aws:s3:::${AWS::AccountId}-invoice-cloudtrail/*"
      Condition:
        StringEquals:
          s3:x-amz-acl: bucket-owner-full-control

Причина состоит в том, что s3:GetBucket* расширяется до s3:GetBucketAcl, s3:GetBucketCORS и т. Д. ( все здесь ), все это ожидание корзины как ресурса, и вы предоставили много объектов в своей исходной политике.Итак, я изменил ресурс (удален /*), а также немного очистил политику, поскольку CloudTrail должен требовать только s3:GetBucketAcl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...