Conexión a su clúster de bases de datos desde la línea de comandos: AWS CLI y psql Client - Amazon Aurora

Conexión a su clúster de bases de datos desde la línea de comandos: AWS CLI y psql Client

Puede conectarse desde la línea de comando a un clúster de bases de datos de Aurora 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 clúster de 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="mypostgres-cluster.cluster-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 del clúster (punto de enlace del clúster) de base de datos a los que desea obtener acceso.

  • --port: el número de puerto que se utiliza para conectarse al clúster de bases de datos.

  • --region: la región de AWS en la que se ejecuta el clúster de bases de datos

  • --username: la cuenta de base de datos a la que desea acceder.

Los primeros caracteres del token generado tienen un aspecto similar al siguiente.

mypostgres-cluster.cluster-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 ni un punto de conexión personalizado de Aurora en lugar del punto de conexión de el clúster de base de datos para generar el token de autenticación.

Conexión a un clúster de Aurora PostgreSQL

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 del clúster (punto de enlace del clúster) de base de datos a los que desea obtener acceso.

  • port: el número de puerto que se utiliza para conectarse al clúster de bases de datos.

  • 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 del clúster de bases de datos 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 Protección de los datos de Aurora PostgreSQL con SSL/TLS.

    Para descargar un certificado SSL, consulte Uso de SSL/TLS para cifrar una conexión a un 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 ni un punto de conexión personalizado de Aurora en lugar del punto de conexión de el clúster 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="mypostgres-cluster.cluster-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 un clúster de base de datos a través de un proxy, consulte Conexión a un proxy mediante autenticación de IAM.