Я пытаюсь ограничить доступ к моим конечным точкам шлюза API запросами от моего VPC. Существуют примеры политик ресурсов API-шлюза и даже свойства Policy для ресурса RestApi, но я не могу понять, как написать политику, для которой требуется идентификатор API, когда API еще не создан.
У меня есть пример моего понимания того, как должен выглядеть стек, основываясь на документации AWS:
MyRestApi:
Type: 'AWS::ApiGateway::RestApi'
Properties:
Name: My Great API
Policy:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal: '*'
Action: execute-api:Invoke
Resource:
Fn::Join:
- - ''
- 'arn:aws:execute-api:'
- Ref: region
- ':'
- Ref: accountId
- ':'
- Ref: MyRestApi
- Effect: Deny
Principal: '*'
Action: execute-api:Invoke
Resource:
Fn::Join:
- - ''
- 'arn:aws:execute-api:'
- Ref: Region
- ':'
- Ref: AccountId
- ':'
- Ref: MyRestApi
Condition:
StringNotEquals:
"aws:SourceVpc":
Ref: VpcId
Суть в том, что я не могу ссылаться на MyRestApi в политике, когда она еще создается. Я уверен, что я не единственный, кто хочет сделать это ... Я бы предпочел, чтобы это была распространенная проблема, поэтому, скорее всего, ответ уже есть, которого я еще не нашел.
Спасибо за любую помощь,
Stefan
PS: я использовал документацию https://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-policy и https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies-examples.html