Boundary controllers must be able to reach Postgres. In non-HA configurations, this means Boundary servers; if you're running in [high availability](/docs/installing/high-availability), then the controllers need access to the Postgres server infrastructure. Worker nodes never need access to the database.