0

语境

我正在使用资源策略将 IP 地址列入白名单,这些 IP 地址可以调用我使用 API Gateway 管理的 API。

我的资源政策如下所示

API 网关上的资源策略

当我尝试从不在白名单中的 IP 地址调用 API 时,我收到这样的 API 响应 -

{
    "Message": "User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:ap-sou*******-*:************:*****/*****/**/******"
}

问题

当 IP 地址不在白名单中时,我宁愿根本不显示错误消息。

预期结果

如何将响应更改为仅向列入白名单的 IP 地址显示错误消息?对于不在白名单中的 IP 地址,应该没有响应。类似于当 IP 地址未列入白名单并且操作超时时 EC2 实例所做的事情。

编辑:还有一个类似问题的问题 - AWS API Gateway change access denied response message from resource policy

但我的问题不同,因为我不只是想更改发送的响应,而且如果 IP 地址未列入白名单,我想阻止 API Gateway 发送响应。

4

1 回答 1

1

正如评论中的人们所建议的那样,您可以考虑使用Gateway Response通过返回类似{}.

如果您想要来自 EC2 实例的类似响应,另一种考虑的方法是使用 API Gateway 并使用Application Load Balancer作为您的代理。我不确定您在 API Gateway 中使用哪种类型的集成,但 ALB 允许您将流量路由到 Lambda、将流量路由到 EC2 实例将流量转发/重定向到其他 HTTP 端点,因此该解决方案适用于这些类型的集成。然后,您可以将 ALB 上的安全组设置为仅允许来自白名单子网的流量,而任何其他尝试发出请求的用户都将挂起。

于 2020-04-02T02:50:15.087 回答