CloudFront 및 S3 버전 관리
CloudFormation의 전체 예:
Resources:
S3:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub '${AWS::StackName}-assets'
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: AES256
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
VersioningConfiguration:
Status: Enabled
CloudFrontOriginAccessIdentity:
Type: AWS::CloudFront::CloudFrontOriginAccessIdentity
Properties:
CloudFrontOriginAccessIdentityConfig:
Comment: !Sub '${AWS::StackName}'
S3Policy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: !Ref S3
PolicyDocument:
Statement:
- Sid: CloudFront
Action:
- 's3:GetObject'
- 's3:GetObjectVersion'
Effect: Allow
Resource: { 'Fn::Join': [ '/', [ !GetAtt S3.Arn , '*' ] ] }
Principal:
AWS: { 'Fn::Join': [ ' ', [ 'arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity', { Ref: CloudFrontOriginAccessIdentity } ] ] }
CloudFront:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
IPV6Enabled: true
Enabled: true
Comment: !Sub '${AWS::StackName}'
Origins:
- Id: S3
DomainName: !GetAtt S3.DomainName
S3OriginConfig:
OriginAccessIdentity: { 'Fn::Join': [ '/', [ 'origin-access-identity', 'cloudfront', { Ref: CloudFrontOriginAccessIdentity } ] ] }
DefaultCacheBehavior:
AllowedMethods: [ HEAD, OPTIONS, GET ]
CachedMethods: [ HEAD, OPTIONS, GET ]
ForwardedValues:
QueryString: true
QueryStringCacheKeys: [ versionId ]
TargetOriginId: S3
ViewerProtocolPolicy: https-only
Compress: true
이제 다음에 액세스하여 자산의 최신 버전을 얻을 수 있습니다.
https://xyz.cloudfront.net/some_image.jpg
다음과 같이 특정 버전을 요청할 수 있습니다.
https://xyz.cloudfront.net/some_image.jpg?versionId=abcdef
이제 CloudFront를 통해 버전이 지정된 콘텐츠를 서버링할 수 있는 이점이 있으며 restrict access to your content with signed cookies or signed urls 가능성도 있습니다.
Reference
이 문제에 관하여(CloudFront 및 S3 버전 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/slootjes/cloudfront-s3-versioning-3d2a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)