Як згадують @ gary69 та @Adriaan Pelzer
https://stackoverflow.com/a/52727654/809043
https://stackoverflow.com/a/55136675/809043
Ви можете отримати повідомлення {"message": "Forbidden"} під час запиту на приватний API.
Отже, якщо у вас є установка, де весь трафік повинен проходити ретельну кінцеву точку API, яка потім спрямовує трафік до шлюзу API, тоді можуть бути використані такі параметри.
APIGatewayVPCEndpoint:
Type: 'AWS::EC2::VPCEndpoint'
Properties:
PolicyDocument: '{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Principal": "*",
"Action":["execute-api:Invoke"],
"Resource":["arn:aws:execute-api:eu-north-1:000000000000:*/*"]
}]
}'
...
VpcEndpointType: Interface
PrivateDnsEnabled: true
Якщо увімкнено PrivateDnsEnabled, кінцева точка в Шлюзі API повинна мати тип Private, і потрібно додати політику.
ApiGatewayRest:
Type: AWS::ApiGateway::RestApi
Properties:
Description: A mocked API
Name: Mocked API
EndpointConfiguration:
Types:
- PRIVATE
Policy: '{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:eu-north-1:000000000000:*/*/*/*"
}]
}'
Ця тема форуму допомогла мені з’ясувати деякі деталі
https://forums.aws.amazon.com/thread.jspa?threadID=286760