I'm trying to serve a API Gateway from a Cloudfront distribution but I'm still getting a 403 response even though deployment has no error.
Calling endpoint via its invoke url from web console works right, expected data is returned.
The distribution also serve a static site from an S3 bucket, but that works perfectly.
The distribution is configured to log to an S3 bucket, but logs are not of help (see below).
Probably I'm missing some configuration, but I really can't tell what nor where.
Cloudformation template
Distribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Enabled: true
HttpVersion: http2
Origins:
- Id: Bucket
# ...
- Id: ApiGateway
DomainName: !Sub '${ApiGateway.RestApiId}.execute-api.${AWS::Region}.amazonaws.com'
CustomOriginConfig:
OriginProtocolPolicy: https-only
HTTPPort: 80
HTTPSPort: 443
DefaultRootObject: index.html
DefaultCacheBehavior:
Compress: true
ViewerProtocolPolicy: allow-all
TargetOriginId: Bucket
CachePolicyId: 658327ea-f89d-4fab-a63d-7e88639e58f6 # default CachingOptimized
CacheBehaviors:
- PathPattern: /api/*
TargetOriginId: ApiGateway
AllowedMethods: [ GET, HEAD, OPTIONS]
ViewerProtocolPolicy: redirect-to-https
CachePolicyId: 4135ea2d-6df8-44a3-9df3-4b5a84be39ad # CachingDisabled
- TargetOriginId: Bucket
# ...
Logging:
# ...
ApiGateway:
Type: AWS::ApiGateway::RestApi
Properties:
Name: !Sub my-api-gateway-${StageName}
ApiGatewayExecutionRole:
Type: AWS::IAM::Role
Properties:
RoleName: !Sub ApiGatewayExecutionRole-${StageName}
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal:
Service:
- apigateway.amazonaws.com
Action:
- sts:AssumeRole
ApiGatewayExecutionPolicy:
Type: AWS::IAM::Policy
DependsOn:
- GetLatestArtistsExecutionRole
Properties:
PolicyName: !Sub ApiGatewayExecutionPolicy-${StageName}
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- lambda:InvokeFunction
Resource: # a lambda ARN
- Effect: Allow
Action:
- lambda:InvokeFunction
Resource: # a lambda ARN
Roles:
- !Ref ApiGatewayExecutionRole
Logs
date | time | x-edge-location | sc-bytes | cs-ip | cs-method | cs(Host) | cs-uri-stem | cs-status | cs(Referer) | cs(User-Agent) | cs-uri-query | cs(Cookie) | x-edge-result-type | x-edge-request-id | x-host-header | cs-protocol | cs-bytes | time-taken | x-forwarded-for | ssl-protocol | ssl-cipher | x-edge-response-result-type | cs-protocol-version | fle-status | fle-encrypted-fields | c-port | time-to-first-byte | x-edge-detailed-result-type | sc-content-type | sc-content-len | sc-range-start | sc-range-end |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2023-06-12 | 08:43:25 | PMO50-C1 | 484 | 93.56.216.51 | GET | 0123456789abcd.cloudfront.net | /favicon.ico | 403 | https://0123456789abcd.cloudfront.net/api/my/endpoint | Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/114.0.0.0%20Safari/537.36 | - | - | Error | VAvnzOY5Vg5Ra1jg5KeyQ7N986CUXU_ns76vHY_qdBNgMPeEE2p6yg== | 0123456789abcd.cloudfront.net | https | 423 | 0.204 | - | TLSv1.3 | TLS_AES_128_GCM_SHA256 | Error | HTTP/2.0 | - | - | 58248 | 0.204 | Error | application/xml | - | - | - |
2023-06-12 | 08:43:27 | PMO50-C1 | 417 | 93.56.216.51 | GET | 0123456789abcd.cloudfront.net | /api/my/endpoint | 403 | - | Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/114.0.0.0%20Safari/537.36 | - | - | Error | XwIBTQDx6c3Oaqq7xkNGrqa6WIpfELU0qbXnXGAKCrKvr9ZmMZmlsg== | 0123456789abcd.cloudfront.net | https | 206 | 0.150 | - | TLSv1.3 | TLS_AES_128_GCM_SHA256 | Error | HTTP/2.0 | - | - | 58248 | 0.150 | Error | application/json | 23 | - | - |
2023-06-12 | 08:43:27 | PMO50-C1 | 483 | 93.56.216.51 | GET | 0123456789abcd.cloudfront.net | /favicon.ico | 403 | https://0123456789abcd.cloudfront.net/api/my/endpoint | Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/114.0.0.0%20Safari/537.36 | - | - | Error | TGCaveojUlFJvx3cprpMpVTdtXPyPm9U2Xgxi4BFfSLhsdDGid9ykA== | 0123456789abcd.cloudfront.net | https | 34 | 0.163 | - | TLSv1.3 | TLS_AES_128_GCM_SHA256 | Error | HTTP/2.0 | - | - | 58248 | 0.163 | Error | application/xml | - | - | - |
2023-06-12 | 08:43:33 | PMO50-C1 | 416 | 93.56.216.51 | GET | 0123456789abcd.cloudfront.net | /api/my/endpoint | 403 | - | Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/114.0.0.0%20Safari/537.36 | - | - | Error | nnPavByn3z8KA8f9iM4ams5PW0K6ZJmjX_h_sK1D6wWvnRbRlw72ZA== | 0123456789abcd.cloudfront.net | https | 40 | 0.117 | - | TLSv1.3 | TLS_AES_128_GCM_SHA256 | Error | HTTP/2.0 | - | - | 58248 | 0.117 | Error | application/json | 23 | - | - |
2023-06-12 | 08:43:33 | PMO50-C1 | 484 | 93.56.216.51 | GET | 0123456789abcd.cloudfront.net | /favicon.ico | 403 | https://0123456789abcd.cloudfront.net/api/my/endpoint | Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/114.0.0.0%20Safari/537.36 | - | - | Error | 44ITHM9SfJGqEzHycOAkEuiMCFfVApgdV6UL9xXTZ0PLwjklhWokTA== | 0123456789abcd.cloudfront.net | https | 34 | 0.175 | - | TLSv1.3 | TLS_AES_128_GCM_SHA256 | Error | HTTP/2.0 | - | - | 58248 | 0.175 | Error | application/xml | - | - | - |
2023-06-12 | 08:45:34 | FCO50-P2 | 418 | 93.56.216.51 | GET | 0123456789abcd.cloudfront.net | /api/my/endpoint | 403 | - | Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/114.0.0.0%20Safari/537.36 | - | - | Error | 4crypFQbvDZ2uvu7VzSW_v7AM2b8MzweSHhQYDzk2njxICwW0Q8obw== | 0123456789abcd.cloudfront.net | https | 455 | 0.075 | - | TLSv1.3 | TLS_AES_128_GCM_SHA256 | Error | HTTP/2.0 | - | - | 44736 | 0.075 | Error | application/json | 23 | - | - |
2023-06-12 | 08:45:34 | FCO50-P2 | 483 | 93.56.216.51 | GET | 0123456789abcd.cloudfront.net | /favicon.ico | 403 | https://0123456789abcd.cloudfront.net/api/my/endpoint | Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/114.0.0.0%20Safari/537.36 | - | - | Error | TOnok3F9P8-Gi9CM_7GtHtOTmVhkyQPcrJrbwJlui4HUCXRZo-IA4A== | 0123456789abcd.cloudfront.net | https | 148 | 0.134 | - | TLSv1.3 | TLS_AES_128_GCM_SHA256 | Error | HTTP/2.0 | - | - | 44736 | 0.133 | Error | application/xml | - | - | - |
2023-06-12 | 08:45:42 | PMO50-C1 | 483 | 93.56.216.51 | GET | 0123456789abcd.cloudfront.net | /favicon.ico | 403 | https://0123456789abcd.cloudfront.net/api/my/endpoint | Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/114.0.0.0%20Safari/537.36 | - | - | Error | v--hpkzq7TxOTxgZgku6C8ZTllGu_8OuUdGDfoS-OCMnyp5aYpoT1g== | 0123456789abcd.cloudfront.net | https | 34 | 0.180 | - | TLSv1.3 | TLS_AES_128_GCM_SHA256 | Error | HTTP/2.0 | - | - | 58248 | 0.180 | Error | application/xml | - | - | - |