diff --git a/pageserver/src/bin/pageserver.rs b/pageserver/src/bin/pageserver.rs index df3c045145..fc74cee652 100644 --- a/pageserver/src/bin/pageserver.rs +++ b/pageserver/src/bin/pageserver.rs @@ -9,7 +9,7 @@ use std::str::FromStr; use std::sync::Arc; use std::time::Duration; -use anyhow::{Context, anyhow}; +use anyhow::{Context, anyhow, bail}; use camino::Utf8Path; use clap::{Arg, ArgAction, Command}; use http_utils::tls_certs::ReloadingCertificateResolver; @@ -101,6 +101,20 @@ fn main() -> anyhow::Result<()> { let (conf, ignored) = initialize_config(&identity_file_path, &cfg_file_path, &workdir)?; + if !conf.dev_mode { + if matches!(conf.http_auth_type, AuthType::Trust) + || matches!(conf.pg_auth_type, AuthType::Trust) + { + bail!( + "Pageserver refuses to start with HTTP or PostgreSQL API authentication disabled.\n\ + Set dev_mode = true in pageserver.toml to allow running without authentication.\n\ + This is insecure and should only be used in development environments." + ); + } + } else { + warn!("Starting in dev mode: this may be an insecure configuration."); + } + // Initialize logging. // // It must be initialized before the custom panic hook is installed below.