允许从其他容器连接到 postgres 容器,但不允许外部机器连接

允许从其他容器连接到 postgres 容器,但不允许外部机器连接

使用postgres 14或15作为docker容器,将宿主机的一个端口绑定到容器的5432端口,在pg_hba.conf文件中进行如下配置

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust

# host all all all scram-sha-256

host all test,prod samenet scram-sha-256
host all read_bi all scram-sha-256

将 postgres 容器与其他两个容器放在同一个 docker 网络中,这三个容器都有自己的静态 ip

我理解,通过这样的配置,我可以完成以下操作:我在此行中添加了一条注释,以禁用常规远程连接。

#托管所有所有所有 scram-sha-256

我允许测试和生产用户从同一台服务器(托管容器的主机)内部建立连接,以连接到 postgres,这些用户被使用 postgres 托管其数据库的其他容器使用,这些用户无法从服务器外部进行连接,例如,我无法使用此类用户从远程计算机使用 psql 进行连接

托管所有测试,产品相同网络 scram-sha-256

我允许 read_bi 用户从远程服务器连接到任何数据库,此类用户仅对特定数据库的表具有选择权限

主机全部 read_bi 全部 scram-sha-256

简而言之,通过这种配置,只有 read_bi 能够从外部机器连接,test 和 prod 能够从主机服务器中各自的容器内连接,但不能从远程机器连接,并且其他用户都无法从远程机器连接,对吗?

我在 pg_hba 中提出了以前的配置,但我不是专家,希望得到专家的意见

相关内容