APIGateway 私有API的VPC endpoint是否开启DNS有什么区别

2024-06-11 10:36

本文主要是介绍APIGateway 私有API的VPC endpoint是否开启DNS有什么区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

APIGateway 私有API的VPC endpoint是否开启DNS有什么区别

未启用私有DNS

  • 从vpc内访问APIGateway regional api(非私有API)不受影响,会将APIGateway的解析为公有IP

    $ curl https://region-app-id.execute-api.cn-north-1.amazonaws.com.cn/dev
    [{"id": 1,"type": "fish","price": 249.99},{"id": 2,"type": "fish","price": 124.99},{"id": 3,"type": "fish","price": 0.99}
    ]
    
  • 从vpc内访问私有API
    无法使用私有DNS名称调用私有API,私有DNS名称没有解析结果

    $ curl https://private-app-id.execute-api.cn-north-1.amazonaws.com.cn/dev
    curl: (6) Could not resolve host: hc31cifr6a.execute-api.cn-north-1.amazonaws.com.cn
    

    使用特定于终端节点的公有DNS主机名调用私有API成功

    $ curl https://vpce-xxxxx-8xxxxxgm.execute-api.cn-north-1.vpce.amazonaws.com.cn/dev -H'x-apigw-api-id:app-id'
    [{"id": 1,"type": "dog","price": 249.99},{"id": 2,"type": "cat","price": 124.99},{"id": 3,"type": "fish","price": 0.99}
    ]
    

启用了私有DNS

  • 从vpc内访问Regional api受影响,解析为私有IP

    $ curl -v https://app-id.execute-api.cn-north-1.amazonaws.com.cn/dev
    * Host app-d.execute-api.cn-north-1.amazonaws.com.cn:443 was resolved.
    * IPv6: (none)
    * IPv4: 10.0.10.240, 10.0.150.229
    *   Trying 10.0.10.240:443...
    * Connected to cpvnfwf97a.execute-api.cn-north-1.amazonaws.com.cn (10.0.10.240) port 443
    * ALPN: curl offers h2,http/1.1
    * TLSv1.3 (OUT), TLS handshake, Client hello (1):
    *  CAfile: /etc/pki/tls/certs/ca-bundle.crt
    *  CApath: none
    * TLSv1.3 (IN), TLS handshake, Server hello (2):
    * TLSv1.2 (IN), TLS handshake, Certificate (11):
    * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
    * TLSv1.2 (IN), TLS handshake, Server finished (14):
    * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
    * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
    * TLSv1.2 (OUT), TLS handshake, Finished (20):
    * TLSv1.2 (IN), TLS handshake, Finished (20):
    * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 / prime256v1 / rsaEncryption
    * ALPN: server accepted http/1.1
    * Server certificate:
    *  subject: CN=*.execute-api.cn-north-1.amazonaws.com.cn
    *  start date: Dec 17 00:00:00 2023 GMT
    *  expire date: Nov 29 23:59:59 2024 GMT
    *  subjectAltName: host "app-id.execute-api.cn-north-1.amazonaws.com.cn" matched cert's "*.execute-api.cn-north-1.amazonaws.com.cn"
    *  issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M01
    *  SSL certificate verify ok.
    *   Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
    *   Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
    *   Certificate level 2: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
    * using HTTP/1.x
    > GET /dev HTTP/1.1
    > Host: app-id.execute-api.cn-north-1.amazonaws.com.cn
    > User-Agent: curl/8.5.0
    > Accept: */*
    >
    < HTTP/1.1 403 Forbidden
    < Server: Server
    < Date: Mon, 10 Jun 2024 02:26:05 GMT
    < Content-Type: application/json
    < Content-Length: 23
    < Connection: keep-alive
    < x-amzn-RequestId: 202d0b5f-744a-4b06-b129-9936e066e3be
    < x-amzn-ErrorType: ForbiddenException
    < x-amz-apigw-id: apigw-id
    <
    * Connection #0 to host cpvnfwf97a.execute-api.cn-north-1.amazonaws.com.cn left intact
    {"message":"Forbidden"}
    
  • 从vpc内访问Private api
    使用私有DNS名称调用私有API成功

    $ curl https://app-id.execute-api.cn-north-1.amazonaws.com.cn/dev
    [{"id": 1,"type": "dog","price": 249.99},{"id": 2,"type": "cat","price": 124.99},{"id": 3,"type": "fish","price": 0.99}
    ]
    

    使用特定于终端节点的公有DNS主机名调用私有API成功

    	$ curl https://vpce-xxxxx-84szh5gm.execute-api.cn-north-1.vpce.amazonaws.com.cn/dev -H'x-apigw-api-id:app-id'
    [{"id": 1,"type": "dog","price": 249.99},{"id": 2,"type": "cat","price": 124.99},{"id": 3,"type": "fish","price": 0.99}
    ]
    

这篇关于APIGateway 私有API的VPC endpoint是否开启DNS有什么区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050929

相关文章

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

Java 单元测试之Mockito 模拟静态方法与私有方法最佳实践

《Java单元测试之Mockito模拟静态方法与私有方法最佳实践》本文将深入探讨如何使用Mockito来模拟静态方法和私有方法,结合大量实战代码示例,带你突破传统单元测试的边界,写出更彻底、更独立... 目录Mockito 简介:为什么选择它?环境准备模拟静态方法:打破“不可变”的枷锁传统困境解法一:使用M

使用Go调用第三方API的方法详解

《使用Go调用第三方API的方法详解》在现代应用开发中,调用第三方API是非常常见的场景,比如获取天气预报、翻译文本、发送短信等,Go作为一门高效并发的编程语言,拥有强大的标准库和丰富的第三方库,可以... 目录引言一、准备工作二、案例1:调用天气查询 API1. 注册并获取 API Key2. 代码实现3

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS

python中getsizeof和asizeof的区别小结

《python中getsizeof和asizeof的区别小结》本文详细的介绍了getsizeof和asizeof的区别,这两个函数都用于获取对象的内存占用大小,它们来自不同的库,下面就来详细的介绍一下... 目录sys.getsizeof (python 内置)pympler.asizeof.asizeof

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动