我想从 Amazon Virtual Private Cloud (Amazon VPC) 访问 Amazon API Gateway 私有 API 并保持与公有 API 的连接。
简短描述
API Gateway 私有 REST API 可以从 Amazon VPC 接口端点访问。但是,您可能无法同时成功连接到私有和公有 API,具体取决于私有 DNS 是开启还是关闭。
解决方法
为 API Gateway 创建 VPC 接口端点
完成以下步骤:
- 打开 VPC 控制台。
- 选择 Endpoints(端点),然后选择 Create endpoint(创建端点)。
- 对于 Type(类型),选择 AWS Services(AWS 服务)。
- 在 Services(服务)搜索栏中,输入 execute-api。
- 对于 Service Name(服务名称),选择 com.amazonaws.region.execute-api。
- 选择 VPC 下拉列表,然后选择要用于创建 VPC 端点的 VPC。
- (可选)要关闭私有 DNS,请选择 Additional settings(其他设置),然后取消选中 Enable Private DNS Name(启用私有 DNS 名称)。
**注意:**私有 DNS 默认处于启用状态。
- 对于 Subnets(子网),选择您的子网。
- 对于 Security groups(安全组),选择要与端点网络接口关联的安全组。
- 选择 Create endpoint(创建端点)。
- 选择 Details(详细信息)选项卡,然后记下要在下一节中使用的 Endpoint ID(端点 ID)。
有关详细信息,请参阅创建 VPC 端点。
创建私有 API
完成以下步骤:
- 打开 API Gateway 控制台。
- 选择 Create API(创建 API)。
- 对于 REST API Private(私有 REST API),选择 Build(构建)。
**注意:**私有 REST API 只能在 VPC 内访问。
- 对于 API name(API 名称),输入私有 API 的名称。
- 对于 VPC endpoint IDs(VPC 端点 ID),输入您的 VPC 端点 ID,然后选择 Add(添加)。
- 选择 Create API(创建 API)。
- 将您的 API 部署到某个阶段。
有关详细信息,请参阅创建私有 API。
创建公有 API
完成以下步骤:
- 打开 API Gateway 控制台。
- 选择 Create API(创建 API)。
- 对于 HTTP API 或 REST API,选择 Build(构建)。
- 对于 API name(API 名称),输入公有 API 的名称。
- 选择 Create API(创建 API)。
有关详细信息,请参阅创建 HTTP API。
在打开私有 DNS 的情况下连接到公有 API
**重要事项:**您的 VPC 资源必须具有互联网连接才能连接到您的公有 API。
要在私有 DNS 打开的情况下连接到公有 API,请设置边缘优化的自定义域名或区域自定义域名。然后,您可以使用自定义域名(例如 api.example.com)调用 API Gateway 公有 API。与您的私有 REST API 的连接将继续通过私有 REST API 端点运行。
如果您想从本地网络连接,请设置一个 Amazon Route 53 Resolver 入站端点。要使用 execute-api 调用 URL,请将来自本地网络的所有私有 DNS 查询转发到该入站端点。
在私有 DNS 关闭的情况下连接到私有 API
**注意:**在私有 DNS 关闭的情况下,默认的 execute-api 调用 URL 无法连接到私有 REST API。
要在私有 DNS 关闭的情况下连接到私有 API,请在 Route 53 中为您的自定义域创建私有托管区域。在私有托管区中,为您的 API 标识符添加 A 记录。将 A 记录指向接口 VPC 端点的 IP 地址,以使用私有 REST API 的默认 execute-api 调用 URL。
相关信息
调用私有 API
在 API Gateway 中控制和管理对 REST API 的访问
VPC 端点使用本地 DNS 时,如何访问私有 API Gateway API?
当我尝试从 VPC 连接到 API Gateway 公有 API 时,为什么会收到 HTTP“403 Forbidden”错误?