У меня есть корзина S3, которая работает как статический веб-сайт, и я использую API-шлюз для распределения трафика по нему. Я понимаю, что CloudFront - лучший вариант, но, пожалуйста, не предлагайте его. Это не вариант, по причинам, по которым я не буду вдаваться.
Я выполняю свое решение путем настройки ресурса {proxy +}. Изображение ниже:
Я хотел бы разрешить доступ к веб-сайту S3 только через прокси-ресурс API-шлюза. Есть ли способ предоставить роль исполнения прокси-ресурсу, аналогично тому, как вы можете обеспечить выполнение роль ресурса для запуска лямбда-функции? Пример роли исполнения лямбды ниже:
Часть запроса на интеграцию прокси-ресурса, похоже, не имеет роли выполнения:
Или есть способ, которым я могу назначить роль всему шлюзу API, чтобы предоставить ему право доступа к корзине S3?
Другие вещи, которые я пробовал:
Редактирование политики сегмента, чтобы разрешить трафик только от службы шлюза API:
{
«Версия»: «2012-10-17»,
"Id": "apiGatewayOnly",
"Утверждение": [
{
«Сид»: «apiGW»,
«Эффект»: «Разрешить»,
"Принципал": {
"Сервис": ["api-gateway-amazonaws.com"]
},
«Действие»: «s3: GetObject»,
«Ресурс»: «http://test -proxy-bucket-01.s3-website.us-east-2.amazonaws.com / *»
}
]
}
Изменение политики сегмента для разрешения трафика только с URL-адреса шлюза API:
{
«Версия»: «2012-10-17»,
«Id»: «Пример политики http referer»,
"Утверждение": [
{
«Sid»: «Разрешить получать запросы, поступающие с www.example.com и example.com»
«Эффект»: «Разрешить»,
"Принципал": "",
«Действие»: «s3: GetObject»,
«Ресурс»: «http://test -proxy-bucket-01.s3-website.us-east-2.amazonaws.com / »,
"Состояние": {
"StringLike": {
"aws: Referer": [
"https://xxxxxxx.execute -api.us-east-2.amazonaws.com / прод / ",
"http://xxxxxxxx.execute -api.us-east-2.amazonaws.com / прод "
]
}
}
}
]
}