Как настроить кросс-аккаунт собственного авторизатора с безсерверной структурой?Пользовательский авторизатор, настроенный на основе sls framework, отлично работает, если он находится в той же учетной записи AWS, что и функция, требующая авторизации.
Теперь у меня есть корневая учетная запись организации, в которой была развернута функция авторизации.На второй учетной записи, которая является членом организации, у меня развернута безсерверная служба с конечными точками, которые необходимо авторизовать от учетной записи root.
Возможно ли настроить что-то подобное внутри serverless.yml, который будет развернут на учетной записи участника (111111111111 - номер учетной записи root):
hello:
handler: api/hello.handler
events:
- http:
path: hello
method: get
cors: true
authorizer: arn:aws:lambda:eu-west-1:111111111111:function:authorizer
Я пробовал это и получил следующееошибка:
Произошла ошибка: AuthorizerApiGatewayAuthorizer - политика функции Lambda должна явно разрешить методу или настраиваемому авторизатору условие SourceArn для интеграции между учетными записями (Сервис: AmazonApiGateway; Код состояния: 400; Код ошибки: BadRequestException;
... что имеет смысл в соответствии с документами AWS . В этих документах объясняется, как это сделать вручную с помощью консоли API Gateway, что я и делал на данный момент.(Авторизатор в корне, Авторизатор в учетной записи участника - подключен вручную через шлюз API, как описано в документации).
Мне нужно лучшее решение, так как количество сервисов и учетных записей членов организации будет расти.
Можно ли настроитьи заставить это работать с безсерверным фреймворком?