मैं 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=)
0
aerioeus 20 अक्टूबर 2018, 22:58

1 उत्तर

सबसे बढ़िया उत्तर

मेरा मानना ​​है कि आपको निम्नलिखित से मेल खाने के लिए अपनी नीति बदलनी होगी:

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 की आवश्यकता होनी चाहिए।

0
tyron 27 अक्टूबर 2018, 17:46