@@ -608,14 +608,15 @@ Resources:
608608 Type : AWS::S3::Bucket
609609 Properties :
610610 BucketName : !Sub ${S3BucketPrefix}-ui
611- WebsiteConfiguration :
612- IndexDocument : index.html
613611
614- CloudFrontOriginAccessIdentity :
615- Type : AWS::CloudFront::CloudFrontOriginAccessIdentity
612+ AppCloudfrontS3OAC :
613+ Type : AWS::CloudFront::OriginAccessControl
616614 Properties :
617- CloudFrontOriginAccessIdentityConfig :
618- Comment : !Sub "Access identity for ${AppFrontendS3Bucket}"
615+ OriginAccessControlConfig :
616+ Name : InfraCoreApi OAC
617+ OriginAccessControlOriginType : s3
618+ SigningBehavior : always
619+ SigningProtocol : sigv4
619620
620621 AppFrontendCloudfrontDistribution :
621622 Type : AWS::CloudFront::Distribution
@@ -626,7 +627,8 @@ Resources:
626627 - Id : S3WebsiteOrigin
627628 DomainName : !GetAtt AppFrontendS3Bucket.RegionalDomainName
628629 S3OriginConfig :
629- OriginAccessIdentity : !Sub "origin-access-identity/cloudfront/${CloudFrontOriginAccessIdentity}"
630+ OriginAccessIdentity : ' '
631+ OriginAccessControlId : !GetAtt AppCloudfrontS3OAC.Id
630632 - Id : LambdaOrigin
631633 DomainName : !Select [0, !Split ['/', !Select [1, !Split ['https://', !GetAtt AppLambdaUrl.FunctionUrl]]]]
632634 CustomOriginConfig :
@@ -697,23 +699,6 @@ Resources:
697699 CachePolicyId : " 658327ea-f89d-4fab-a63d-7e88639e58f6"
698700 OriginRequestPolicyId : b689b0a8-53d0-40ab-baf2-68738e2966ac
699701 Compress : true
700- - PathPattern : " /api/documentation*"
701- TargetOriginId : LambdaOrigin
702- ViewerProtocolPolicy : redirect-to-https
703- AllowedMethods :
704- - GET
705- - HEAD
706- - OPTIONS
707- - PUT
708- - POST
709- - DELETE
710- - PATCH
711- CachedMethods :
712- - GET
713- - HEAD
714- CachePolicyId : " 658327ea-f89d-4fab-a63d-7e88639e58f6"
715- OriginRequestPolicyId : b689b0a8-53d0-40ab-baf2-68738e2966ac
716- Compress : true
717702 - PathPattern : " /api/*"
718703 TargetOriginId : LambdaOrigin
719704 ViewerProtocolPolicy : redirect-to-https
@@ -750,9 +735,12 @@ Resources:
750735 Statement :
751736 - Effect : Allow
752737 Principal :
753- CanonicalUser : !GetAtt CloudFrontOriginAccessIdentity.S3CanonicalUserId
738+ Service : cloudfront.amazonaws.com
754739 Action : s3:GetObject
755740 Resource : !Sub "${AppFrontendS3Bucket.Arn}/*"
741+ Condition :
742+ StringEquals :
743+ AWS:SourceArn : !Sub "arn:aws:cloudfront::${AWS::AccountId}:distribution/${AppFrontendCloudfrontDistribution}"
756744
757745 CloudfrontNoCachePolicy :
758746 Type : AWS::CloudFront::CachePolicy
@@ -812,6 +800,9 @@ Resources:
812800 exports.handler = async (event) => {
813801 const request = event.Records[0].cf.request;
814802 const uri = request.uri;
803+ if (uri === '/docs') {
804+ request.uri = "/docs/index.html";
805+ }
815806 if (!uri.startsWith('/api') && !uri.match(/\.\w+$/)) {
816807 request.uri = "/index.html";
817808 }
0 commit comments