使 AWS API 网关只能作为 SNS 订阅端点访问

Make AWS API Gateway accessible only as SNS subscription endpoint

在我当前的项目中,我们配置了将 Cloudwatch 警报转发到 Slack 频道。为此,我们使用 AWS SNS 主题 + API 订阅该主题的网关,并将警报转发到 Slack webhook。

我正在尝试解决的问题 - 目前提到的 API 网关的 REST 资源是 public(它不需要任何身份验证并且可以从 Internet 获得)。我如何配置 API 网关使其只能作为 SNS 订阅端点使用?

您需要创建端点类型为 API 的网关:Private

并且您需要为 SNS 创建一个 VPC 端点以便在内部访问该端点。 更多信息:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-vpc-endpoint-policies.html