【发布时间】:2019-07-06 14:28:34
【问题描述】:
我知道我可以将 REGIONAL 端点类型的 API 网关放在 Cloudfront 发行版后面,但是否可以放置 PRIVATE 端点类型的 API 网关?
这种方式只有从 Internet 到 Cloudfront 的调用才会到达 API 网关?我认为这无法完成,因为 Cloudfront 是公开的。
【问题讨论】:
标签: aws-api-gateway amazon-cloudfront
我知道我可以将 REGIONAL 端点类型的 API 网关放在 Cloudfront 发行版后面,但是否可以放置 PRIVATE 端点类型的 API 网关?
这种方式只有从 Internet 到 Cloudfront 的调用才会到达 API 网关?我认为这无法完成,因为 Cloudfront 是公开的。
【问题讨论】:
标签: aws-api-gateway amazon-cloudfront
将 CloudFront 分配配置为在将请求转发到您的自定义源时包含一个带有共享密钥的自定义标头。您需要指定标头名称及其值。例如,当使用 Amazon API Gateway 作为源时,您可以使用您的 API 密钥值配置 x-api-key 标头作为自定义标头。
我不太清楚你的意思
这种方式只有从 Internet 到 Cloudfront 的调用才会到达 API 网关
【讨论】:
私有 API 的目的是允许从特定内部网络(例如 VPC 子网、本地网络)进行访问。
因此,如果您需要配置 CloudFront,则来自 CloudFront 的请求应路由到网络的公共端点(例如,面向 Internet 的 NLB),然后 NLB 可以指向 VPC 端点的静态 IP,即与私有 API 的资源策略相关联。
由于某些安全问题,我认为上述解决方案不适合生产环境,如果有人更新 VPC 端点配置,集成点可能会被破坏。所以我想说最好不要在私有 API 前面配置 CloudFront。
您能否详细解释一下为什么需要在私有 API 之前引入 CloudFront 分配?我也许可以提供一个替代方案。例如,如果您需要限制从特定域(例如 CloudFront 分配)对 API 的访问,您可以考虑引入 WAF 规则 (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-aws-waf.html)。
【讨论】:
OAI 来保护 S3 源。目前,当我部署 API 网关时,它会生成一个从 Internet 可见的链接 https://<api id>.execute-api.<region>.amazonaws.com/<stagename>。我本来希望避免直接(从 Internet)公开对 API 网关的访问。我的设置是:Internet -> Cloudfront -> API Gateway -> VPC Link (internal NLB) -> EC2 在私有子网中。我不确定这是否是最好的方法。第一次接触 API GW。