ãããããã¨
- S3ã®ãµã¼ãã¼ãµã¤ããã°ãæå¹åãã¦Logæ å ±ãåéããã
- åéãããã°æ å ±ã¯ãªãã¸ã§ã¯ãããã¯æï¼ã¬ããã³ã¹ã¢ã¼ãï¼ã«ããã
- IaCåãããããCloudFormationï¼ç¹ã«SAMï¼ã使ã£ã¦ãªã½ã¼ã¹ã¯å®ç¾©ã»å±éããã
- æä½éã®ã©ã¤ããµã¤ã¯ã«ããªã·ã¼ï¼ä¸å®æéãçµã£ãããã¹ãã¬ã¼ã¸ã¯ã©ã¹ãå¤æ´ããããä¸å®å ¨ãªãã«ãã¢ãããã¼ãã¯åé¤ãããï¼ã¯ããã¦ãããã
å®è£ ä¸ã®è©°ã¾ã£ãPoint
ãªãã¸ã§ã¯ãããã¯ãæå¹åãããã±ããã«ã¯ããµã¼ãã¼ãµã¤ããã°ã®æ¸ãåºããã±ããã¨ãã¦ã¯ç»é²ã§ããªãããã§ãã
ãªã®ã§ã
- [1]ä¸éãã±ããã«ä¸æ¦ããã°ãã¼ã¿ãæ¸ãåºã
- [2]ä¸éãã±ããã®ã¬ããªã±ã¼ã·ã§ã³ãæå¹åãããã°ãã±ããã«ã¬ããªã±ã¼ã·ã§ã³ï¼è¤è£½ï¼ãè¡ã
- [3]ä¸éãã±ããã«æ¸ãåºããããã¼ã¿ã¯é次åé¤ãã¦ãã³ã¹ãæé©åãè¡ã
ã¨ããæ§æã§å®è£ ãã¾ããã
ä»ã«ããè¯ãã¢ããã¼ããããã°æãã¦ä¸ããã
ã½ã¼ã¹ã³ã¼ã
AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::Serverless-2016-10-31 Resources: # ãµã¼ããµã¤ããã°ãæå¹åããããã±ãããå®ç¾© SourceBucket: Type: AWS::S3::Bucket Properties: BucketName: source-bucket ReplicationConfiguration: Role: !GetAtt LogBucketInteremediateRole.Arn Rules: - Destination: Bucket: !Sub arn:aws:s3:::${LogBucket} Status: Enabled VersioningConfiguration: Status: Enabled LifecycleConfiguration: Rules: - Id: delete-multipart Status: Enabled AbortIncompleteMultipartUpload: DaysAfterInitiation: 1 # ä¸éãã±ãããå®ç¾© IntermediateLogBucket: Type: AWS::S3::Bucket Properties: BucketName: mid-log-bucket ReplicationConfiguration: Role: !GetAtt LogBucketInteremediateRole.Arn Rules: - Destination: Bucket: !Sub arn:aws:s3:::${LogBucket} Status: Enabled VersioningConfiguration: Status: Enabled LifecycleConfiguration: Rules: - Id: delete-multipart Status: Enabled AbortIncompleteMultipartUpload: DaysAfterInitiation: 1 - Id: delete-objects-after-1-day Status: Enabled Expiration: Days: 1 # IAM Roleãå®ç¾© LogBucketInteremediateRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: sts:AssumeRole Principal: Service: s3.amazonaws.com Policies: - PolicyName: s3-replication-policy PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - s3:ListBucket - s3:GetReplicationConfiguration Resource: mid-log-bucket - Effect: Allow Action: - s3:GetObjectVersionForReplication - s3:GetObjectVersionAcl - s3:GetObjectVersionTagging Resource: mid-log-bucket* - Effect: Allow Action: - s3:ReplicateObject - s3:ReplicateDelete - s3:ReplicateTags Resource: - !Sub arn:aws:s3:::${LogBucket}/* # ãªãã¸ã§ã¯ãããã¯ããã¯ãæå¹åãããã±ãããå®ç¾© LogBucket: Type: AWS::S3::Bucket Properties: BucketName: log-bucket VersioningConfiguration: Status: Enabled ObjectLockEnabled: True ObjectLockConfiguration: ObjectLockEnabled: Enabled Rule: DefaultRetention: Mode: GOVERNANCE Years: 3 LifecycleConfiguration: Rules: - Id: delete-multipart Status: Enabled AbortIncompleteMultipartUpload: DaysAfterInitiation: 1 - Id: archive Status: Enabled Prefix: logs/ Transitions: - StorageClass: GLACIER_IR TransitionInDays: 30 # ãã±ããããªã·ã¼ãå®ç¾© LogBucketIntermediatePolicy: Type: AWS::S3::BucketPolicy Properties: Bucket: !Ref IntermediateLogBucket PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: logging.s3.amazonaws.com Action: s3:PutObject Resource: !Sub arn:aws:s3:::${IntermediateLogBucket}/* Condition: ArnLike: aws:SourceArn: arn:aws:s3:::source-bucket # ãã±ããããªã·ã¼ãå®ç¾© LogBucketPolicy: Type: AWS::S3::BucketPolicy Properties: Bucket: !Ref LogBucket PolicyDocument: Statement: - Action: - s3:GetBucketAcl Effect: Allow Principal: Service: cloudtrail.amazonaws.com Resource: !Sub arn:aws:s3:::${LogBucket} - Action: - s3:PutObject Effect: Allow Principal: Service: cloudtrail.amazonaws.com Resource: !Sub arn:aws:s3:::${LogBucket}/* Condition: StringEquals: s3:x-amz-acl: bucket-owner-full-control