限制API网关,所以只有CloudFront可以击中它



我目前有一个CloudFront发行版,它使用Origin access Control限制对S3 bucket的静态内容访问。

我想用API网关做同样的事情。我们的目标是使体系结构看起来像这样:

┌───────────────────────────────────────────────────────────────────────────┐
│AWS Account                                                                │
│                                               ┌──────────────────────┐    │
│                                        *      │     S3 Bucket        │    │
│                                       ┌──────►│  (static content)    │    │
│                                       │       └──────────────────────┘    │
┌─────────────┐      │  ┌────────────────────────────┐       │                                   │
│             │      │  │                            │       │                                   │
│    Client   ├──────┼─►│  CloudFront Distribution   ├───────┤                                   │
│             │      │  │                            │       │       ┌──────────────────────┐    │
└─────────────┘      │  └────────────────────────────┘       │       │     API Gateway      │    │
│                                       └──────►│  (dynamic content)   │    │
│                                        /api/* └──────────────────────┘    │
│                                                                           │
│                                                                           │
└───────────────────────────────────────────────────────────────────────────┘

不是来自CloudFront发行版的流量不应该到达API网关——理想情况下,不给它一个公共URL,但通过策略限制它也是可以接受的。

我已经看到了这个基于分发的秘密头值授权请求的答案,与OAC等方法相比,这并不理想。

你可以通过一个私有API网关来实现这一点。

  1. 为API网关创建VPC端点
  2. 创建私有API网关
  3. 配置CloudFront使用私有API网关端点

您的端点在此设置中将不是公共的。您可以通过添加资源策略和安全组/网络acl来进一步改进设计。

参考:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-apis.html

相关内容

  • 没有找到相关文章

最新更新