Как запустить облачную функцию GCP (частную) из AWS SNS через триггер http

У меня есть облачная функция в GCP, которая срабатывает при получении любого объекта в ведре s3 с использованием уведомления SNS. SNS был настроен таким образом, что когда какой-либо объект попадает в корзину s3, он уведомляет об этом облачную функцию GCP с помощью триггера http (https url). На данный момент конечная точка облачной функции является общедоступной, поэтому ее можно запускать из любого места, даже из веб-браузера, если у кого-то есть URL-адрес, что является большой проблемой безопасности. Следовательно, я хотел бы сделать его частным и чтобы он был доступен только через AWS SNS, но понятия не имею, как это можно сделать.




Ответы (1)


Вы не можете запретить пользователям вызывать вашу конечную точку HTTP, поскольку вы должны сделать конечную точку общедоступной, чтобы Amazon SNS мог вызывать вашу конечную точку. Вы можете проверять запросы и отклонять запросы (возвращать 401 Unauthorized), которые вы не хотите обрабатывать.

Есть несколько методов проверки запросов. Я перечисляю методы от наименее безопасных до наиболее безопасных (также от самых простых до самых сложных в реализации).

Проверьте x-amz-sns-topic-arn или x-amz-sns-subscription-arn на наличие ожидаемых значений в заголовках HTTP-запроса POST.

Настройте SNS для использования базовой проверки подлинности с использованием имени пользователя и пароля. Проверьте оба значения.

Проверьте подпись уведомления SNS. Этот метод требует загрузки сертификата Amazon и проверки подписи при каждом запросе.

Использование Amazon SNS для системы- обмен сообщениями в систему с конечной точкой HTTP / s в качестве подписчика

person John Hanley    schedule 06.04.2020