RDS 连接错误:没有主机的 pg_hba.conf 条目

问题描述 投票:0回答:1

我需要帮助,因为我在连接到 RDS 上的托管 Postgres 数据库时遇到问题。我遇到以下错误消息:“主机 '16.151.149.51'、用户 'analytics'、数据库 'database' 没有 pg_hba.conf 条目,没有加密” 我已确认加密功能正常,并且我还将IP添加到安全组。我应该采取什么步骤来解决这个问题?

postgresql amazon-rds
1个回答
0
投票

好吧,OP 可能已经解决了这个问题,但对于遇到此问题的其他人来说:确保您已下载 AWS RDS CA 证书并仔细检查您的凭据是否正确。就我而言,我使用的 Terraform 模块默认将

manage_master_user_password
设置为 true,这很好地默默地丢弃了我提供的密码并自行设置。

但基本上,对于不了解的人来说,使用 SSL 连接的步骤是:

  1. 创建可公开访问的 RDS(例如 TF 中的
    publicly_accessible = true
    )或至少对具有适当入口规则的 VPC 子网开放,例如:
  ingress {
    from_port   = 5432
    to_port     = 5432
    protocol    = "tcp"
    description = "PostgreSQL access for VPC and local machine"
    cidr_blocks = [
      module.vpc.vpc_cidr_block,
      "1.1.1.1/32"
    ]
  }
  1. 然后在您的 ec2 实例/客户端中,下载所需的根 CA https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html Global 是最简单的,例如:
    curl -O https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
  2. 在 Postgres 需要的任何位置创建
    .postgresql
    文件夹,并将证书移动到那里
    root.crt
    例如:
    mv global-bundle.pem /root/.postgresql/root.crt
  3. 使用正确的连接字符串进行连接并强制执行 SSL,例如:
    psql postgresql://<your user>:<your pass>@postgres-1-project.z4dadjt5qxpn.us-east-1.rds.amazonaws.com:5432/<your db>?sslmode=verify-full
  4. 您应该连接到您的 RDS。如果显示
    FATAL:  password authentication failed for user
    ,请再次检查您的凭据。如果您将 SSL 设置为
    verify-full
  5. ,SSL 应该可以工作(或者至少会抱怨一些事情)
© www.soinside.com 2019 - 2024. All rights reserved.