You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

排查AWS CloudFormation创建公网可访问Postgres数据库的问题

排查AWS CloudFormation模板导致Postgres无法本地访问的常见问题
  • 检查数据库实例的公有可访问性配置
    确认模板中RDS实例的PubliclyAccessible属性是否设为true。如果是false,实例仅能在VPC内部访问,本地无法连接。模板中对应配置应该类似:

    DBInstance:
      Type: AWS::RDS::DBInstance
      Properties:
        PubliclyAccessible: true
    
  • 验证安全组入站规则
    确保关联RDS实例的安全组允许来自任意IP(0.0.0.0/0)的Postgres默认端口(5432)的入站流量。模板中安全组配置需包含:

    RDSSecurityGroup:
      Type: AWS::EC2::SecurityGroup
      Properties:
        GroupDescription: Allow Postgres access
        SecurityGroupIngress:
          - IpProtocol: tcp
            FromPort: 5432
            ToPort: 5432
            CidrIp: 0.0.0.0/0
    

    注意:如果是IPv6环境,还需添加CidrIpv6: ::/0的规则。

  • 确认子网与路由表配置

    • 检查RDS实例所在的子网是否为公有子网(即子网关联的路由表包含指向Internet网关的路由条目)。模板中路由表配置应类似:
      PublicRouteTable:
        Type: AWS::EC2::RouteTable
        Properties:
          VpcId: !Ref VPC
      PublicRoute:
        Type: AWS::EC2::Route
        Properties:
          RouteTableId: !Ref PublicRouteTable
          DestinationCidrBlock: 0.0.0.0/0
          GatewayId: !Ref InternetGateway
      
    • 确保RDS实例的子网组包含至少一个公有子网,且子网已关联上述公有路由表。
  • 核对数据库连接参数

    • 确认本地使用的端点是RDS实例的公有DNS名称(可在AWS控制台RDS实例详情中查看),而非私有IP。
    • 检查模板中设置的MasterUsername、MasterUserPassword是否正确,本地连接时输入的凭证是否匹配。
    • 确认数据库实例的DBName(如果指定)是否存在,连接时需指定正确的数据库名称。
  • 检查网络ACL配置
    VPC的网络ACL需允许入站的5432端口流量和出站的任意端口流量(用于返回连接响应)。模板中网络ACL规则应包含:

    PublicNetworkACL:
      Type: AWS::EC2::NetworkAcl
      Properties:
        VpcId: !Ref VPC
    InboundPostgresRule:
      Type: AWS::EC2::NetworkAclEntry
      Properties:
        NetworkAclId: !Ref PublicNetworkACL
        RuleNumber: 100
        Protocol: 6 # TCP
        RuleAction: allow
        Egress: false
        CidrBlock: 0.0.0.0/0
        PortRange:
          From: 5432
          To: 5432
    OutboundAllRule:
      Type: AWS::EC2::NetworkAclEntry
      Properties:
        NetworkAclId: !Ref PublicNetworkACL
        RuleNumber: 100
        Protocol: -1 # All
        RuleAction: allow
        Egress: true
        CidrBlock: 0.0.0.0/0
    
  • 验证RDS实例状态
    确认RDS实例已处于available状态,未处于创建中、维护或故障状态。可通过AWS控制台或aws rds describe-db-instances命令查看。

内容的提问来源于stack exchange,提问作者Juraj Zovinec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 01:25:37