Я хочу поставить WAF перед интерфейсом API Gateway и с (маленькой) информацией. Я считаю, что это возможно только вручную, добавив дополнительный Cloudfront-дистрибутив с WAF включен, перед APIG. Это немного стыдно, тем более что APIG теперь поддерживает пользовательские области изначально, но он должен работать.
Теперь, чтобы сделать решение безопасным, а не просто неясным, я хочу обеспечить, чтобы API-интерфейсы можно было получить только через дистрибутив Cloudfront. Каков наилучший способ сделать это?
- Я надеялся использовать "Origin Access Identities", похожие на S3, но не вижу, как это сделать.
- Если бы я мог назначить пользователя IAM (или роль?) в дистрибутив Cloudfront, я мог бы использовать функцию APIG IAM, но я не вижу, как это можно сделать.
- Мне может потребоваться ключ API в APIG и передать его как пользовательский заголовок Origin из Cloudfront. Это может сработать, если мы не хотим использовать ключи API для каких-то других целей, поэтому я не совсем этому доволен.
- Можно использовать произвольный авторизатор (!), с использованием выражения проверки токена, фактически проверяющего секрет, который передается как пользовательский заголовок Origin из Cloudfront. Должен работать, он более гибкий, но немного грязный... или нет?
Любые лучшие идеи? Или, возможно, "правильный путь" для этого существует, но я его не заметил?