Conexión a su instancia desde la línea de comandos: AWS CLI y psql Client - Amazon Relational Database Service

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:

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 --port 5432 --region us-west-2 --username jane_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ública

    Para 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 --port 5432 --region us-west-2 --username jane_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.