Conexión a su instancia desde la línea de comandos: AWS CLI y psql Client
Puede conectarse desde la línea de comando a una instancia de base de datos de Amazon RDS para PostgreSQL con AWS CLI y la herramienta de línea de comandos psql como se describe a continuación.
Requisitos previos
A continuación, se muestran requisitos previos para conectarse al de instancia de base de datos mediante la autenticación de IAM:
nota
Para obtener información acerca de cómo conectarse a la base de datos mediante pgAdmin con la autenticación IAM, consulte la entrada de blog Use IAM authentication to connect with pgAdmin to Amazon Aurora PostgreSQL or Amazon RDS for PostgreSQL (Usar la autenticación de IAM para conectarse con pgAdmin a Amazon Aurora PostgreSQL o Amazon RDS for PostgreSQL)
Temas
Generación de un token de autenticación de IAM
El token de autenticación consta de varios cientos de caracteres por que puede ser difícil de tratar en la línea de comando. Una forma de solucionar esto es guardar el token en una variable de entorno y, a continuación, usar esa variable al conectarse. En el siguiente ejemplo se muestra cómo usar la AWS CLI para obtener un token de autenticación firmado mediante el comando generate-db-auth-token
y almacenarlo en una variable de entorno PGPASSWORD
.
export RDSHOST="
rdspostgres.123456789012.us-west-2.rds.amazonaws.com
" export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port5432
--regionus-west-2
--usernamejane_doe
)"
En el ejemplo, los parámetros para el comando generate-db-auth-token
son los siguientes:
-
--hostname
: el nombre de host de la instancia de base de datos a los que desea obtener acceso. -
--port
: el número de puerto que se utiliza para conectarse a la instancia. -
--region
: la región de AWS en la que se ejecuta la instancia -
--username
: la cuenta de base de datos a la que desea acceder.
Los primeros caracteres del token generado tienen un aspecto similar al siguiente.
rdspostgres.123456789012.us-west-2.rds.amazonaws.com:5432/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...
nota
No puede utilizar un registro DNS personalizado de Route 53 en lugar del punto de conexión de la instancia de base de datos para generar el token de autenticación.
Conexión a una instancia de base de datos de PostgreSQL en Amazon RDS
El formato general para usar psql para conectarse se muestra a continuación.
psql "host=
hostName
port=portNumber
sslmode=verify-full sslrootcert=full_path_to_ssl_certificate
dbname=DBName
user=userName
password=authToken
"
Los parámetros son los siguientes:
-
host
: el nombre de host de la instancia de base de datos a los que desea obtener acceso. -
port
: el número de puerto que se utiliza para conectarse a la instancia. -
sslmode
: el modo de SSL que se debe utilizar.Cuando se utiliza
sslmode=verify-full
, la conexión SSL verifica el punto de conexión de la instancia con respecto al punto de enlace del certificado SSL. -
sslrootcert
: la ruta completa al archivo de certificado SSL que contiene la clave públicaPara obtener más información, consulte Uso de SSL con una instancia de base de datos PostgreSQL.
Para descargar un certificado SSL, consulte Uso de SSL/TLS para cifrar una conexión a una instancia o clúster de base de datos.
-
dbname
: la base de datos a la que desea obtener acceso. -
user
: la cuenta de base de datos a la que desea acceder. -
password
: un token de autenticación de IAM firmado.
nota
No puede utilizar un registro DNS personalizado de Route 53 en lugar del punto de conexión de la instancia de base de datos para generar el token de autenticación.
El siguiente ejemplo muestra el uso de psql para conectarse. En el ejemplo, psql utiliza la variable de entorno RDSHOST
para el host y la variable de entorno PGPASSWORD
para el token generado. Además, /sample_dir/
es la ruta completa al archivo de certificado SSL que contiene la clave pública.
export RDSHOST="
rdspostgres.123456789012.us-west-2.rds.amazonaws.com
" export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port5432
--regionus-west-2
--usernamejane_doe
)" psql "host=$RDSHOST port=5432
sslmode=verify-full sslrootcert=/sample_dir/
global-bundle.pem dbname=DBName
user=jane_doe
password=$PGPASSWORD"
Si desea conectarse a una instancia de base de datos a través de un proxy, consulte Conexión a un proxy mediante autenticación de IAM.