当前位置: 首页 > 知识库问答 >
问题:

无法访问AWS专用API

莫英卓
2023-03-14

我已经创建了一个内部私有api,希望从ec2实例访问它。为此,我创建了一个endpoint,它启用了私有dns。我已经应用了允许任何人访问的资源策略(目前用于测试)。

当我从ec2实例中点击我的api时,它给出了以下给定的错误

The remote name could not be resolved:

启用私人DNS: true

专用dns名称:*。执行api。区域亚马逊。通用域名格式

资源政策:

    {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:REGION:ACC_ID:REST_API_ID/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "172.31.0.0/16",
                        "10.192.0.0/16"
                    ]
                }
            }
        }
    ]
}

是的,我在更改资源策略后部署了api。

VPCendpoint的安全组(出站规则):

Type - All traffic
Protocol - All  
Port range - All    
Destination - 0.0.0.0/0 
Description - optional

如何访问私有api?

我使用的是powershell Invoke-Restmethod。当我用公共api替换url时,它工作正常(脚本中没有问题)。私人api只提供错误。

实例和endpoint是否在同一个vpc中?

是的,两个屏幕显示相同的专有网络id。

注意:我创建了两个vpc和两个endpoint。一个说默认-是,另一个说默认-否。

连接到ec2和endpoint的VPC是默认否的,我正在尝试。

DNS主机名和DNS支持?

知道我错过了什么吗?

共有1个答案

陶刚豪
2023-03-14

根据评论。

该问题是由不正确的安全组VPCE上的安全组引起的。

解决方案是在API网关的VPCE上允许443个传入连接入口

 类似资料:
  • 我的VPC中有Public和Pvt子网。我在Pvt子网上有一些运行在EC2上的服务,需要通过外部/移动资源访问。我如何做到这一点-是VPCLink和NLB的方式来做到这一点,还是任何其他方式,创建一些访问点在公共子网(??)。Lambda似乎是答案(现在AWS中几乎所有的东西)--甚至不确定那种访问对于Pvt子网中的资源是如何工作的。 同样,同一个Pvt子网可以访问外部资源(在AWS之外)-我如何

  • 我正在开发一个无服务器应用程序,该应用程序与RDS中的数据库一起工作。出于安全原因,应用程序(Lambda)和数据库都位于专有网络中的一个专用子网中。我还想从应用程序访问AWS服务——例如,我想访问secret manager以获取数据库凭据,在EventBridge中设置规则并使用STS服务。我知道我可以使用VPCendpoint,并在我的VPC中为每个感兴趣的服务部署接口endpoint。 我

  • 我使用Python通过Databricks connect访问Databricks。在墙后面,这使用了spark,它确实是基于java的,所以为了使用它,我需要java。JDK已下载(版本14),设置为JAVA\u HOME env,但在运行代码时,出现以下错误: 原因:java。lang.reflect。InaccessibleObjectException:无法生成私有java。nio。Dir

  • 我试图使用从身份提供者检索到的访问令牌获取cognito身份。有点像这里。这里描述的AWS SDK的这一部分似乎存在问题,因此我正在尝试找到解决方法。 当我运行代码我得到以下错误: 任务结果:nil Error-Error-Domain=com.amazonaws.AWSCognitoIdentityErrorDomain-Code=8“(null)”UserInfo={{uuuuu-type=N

  • 我已经在AWS中安装了Redis服务器,虽然我可以从同一台服务器中访问它,但我无法从外部IP连接到它。 我还做了以下工作: 向实例的安全组中添加了入站规则,以允许访问所有流量(要测试) 我仍然无法使用redis-cli-hxxx.xxx.xxx.xx-p 6379访问它 请帮帮忙 更新: 我可以telnet到端口,所以Redis本身一定有什么东西不允许访问? netstat结果: [ec2-use

  • 刚刚将我的MySQL RDS实例从自由层db.t2.micro升级为db.r3.large。相同的存储、相同的安全组、相同的用户组/凭据、相同的VPC、相同的endpoint名称、相同的一切。 在升级之前,我可以通过MySQL workbench远程访问同一个实例,根据AWS的说法,我的endpoint位置没有改变。 收到的错误消息: 无法连接到'blahblah.rds.amazonaws.co