Conexión a un clúster con Amazon Redshift RSQL - Amazon Redshift

Conexión a un clúster con Amazon Redshift RSQL

Conexión sin un DSN

  1. En la consola de Amazon Redshift, elija el clúster al que desea conectarse y anote el punto de conexión, la base de datos y el puerto.

  2. En el símbolo del sistema, especifique la información de conexión usando los parámetros de línea de comando.

    rsql -h <endpoint> -U <username> -d <databasename> -p <port>

    A continuación, se aplica lo siguiente:

    • <endpoint> en el punto de conexión que registró en el paso anterior.

    • <username> es el nombre de usuario con permisos para conectarse al clúster.

    • <databasename> es el nombre de base de datos que registró en el paso anterior.

    • <port> es el puerto que registró en el paso anterior. <port> es un parámetro opcional.

    Ejemplo:

    rsql -h testcluster.example.amazonaws.com -U user1 -d dev -p 5439
  3. Cuando se le solicite la contraseña, ingrese la contraseña del usuario <username>.

    Una respuesta de conexión exitosa tendría el siguiente aspecto.

    % rsql -h testcluster.example.com -d dev -U user1 -p 5349 Password for user user1: DSN-less Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) user1@dev=#

El comando de conexión tiene los mismos parámetros en Linux, Mac OS y Windows.

Conexión mediante un DSN

Puede conectar RSQL a Amazon Redshift mediante un nombre de origen de datos (DSN) para simplificar la organización de las propiedades de conexión. Este tema incluye instrucciones para la instalación del controlador ODBC y descripciones de las propiedades de DSN.

Uso de una conexión DSN con contraseña

A continuación se muestra un ejemplo de configuración de conexión DSN que utiliza una contraseña. El <path to driver> predeterminado para Mac OSX es /opt/amazon/redshift/lib/libamazonredshiftodbc.dylib y para Linux es /opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so.

[testuser] Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so SSLMode=verify-ca Min_TLS=1.2 boolsaschar=0 Host=<server endpoint> Port=<database port> Database=<dbname> UID=<username> PWD=<password> sslmode=prefer

El siguiente es el resultado de una conexión correcta.

% rsql -D testuser DSN Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) user1@dev=#

Uso de DSN de inicio de sesión único

Puede configurar un DSN para la autenticación de inicio de sesión único. A continuación se muestra un ejemplo de una configuración de conexión DSN que utiliza el inicio de sesión único de Okta.

[testokta] Driver=<path to driver> SSLMode=verify-ca Min_TLS=1.2 boolsaschar=0 Host=<server endpoint> clusterid=<cluster id> region=<region name> Database=<dbname> locale=en-US iam=1 plugin_name=<plugin name> uid=<okta username> pwd=<okta password> idp_host=<idp endpoint> app_id=<app id> app_name=<app name> preferred_role=<role arn>

Salida de ejemplo de una conexión correcta.

% rsql -D testokta DSN Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) user1@dev=#

A continuación se muestra un ejemplo de una configuración de conexión DSN que utiliza el inicio de sesión único de Azure.

[testazure] Driver=<path to driver> SSLMode=verify-ca Min_TLS=1.2 boolsaschar=0 Host=<server endpoint> Port=<cluster port> clusterid=<cluster id> region=<region name> Database=<dbname> locale=en-us iam=1 plugin_name=<plugin name> uid=<azure username> pwd=<azure password> idp_tenant=<Azure idp tenant uuid> client_id=<Azure idp client uuid> client_secret=<Azure idp client secret>

Uso de una conexión DSN con un perfil de IAM

Puede conectarse a Amazon Redshift mediante el perfil de IAM configurado. El perfil de IAM debe tener privilegios para llamar a GetClusterCredentials. En el siguiente ejemplo, se muestran las propiedades de DSN que se utilizarán. Los parámetros ClusterID y Region son obligatorios solo si el Host no es un punto de conexión proporcionado por Amazon como examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com.

[testiam] Driver=Default Host=testcluster.example.com Database=dev DbUser=testuser ClusterID=rsqltestcluster Region=us-east-1 IAM=1 Profile=default

El valor de la clave Profile es el perfil con nombre que elija de sus credenciales de la AWS CLI. En este ejemplo, se muestran las credenciales del perfil denominado default.

$ cat .aws/credentials [default] aws_access_key_id = ASIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

A continuación se muestra la respuesta de conexión.

$ rsql -D testiam DSN Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) testuser@dev=>

Uso de una conexión DSN con un perfil de instancias

Puede conectarse a Amazon Redshift mediante su perfil de instancia de Amazon EC2. El perfil de instancias debe tener privilegios para llamar a GetClusterCredentials. Consulte el siguiente ejemplo para ver las propiedades de DSN que se van a utilizar. Los parámetros ClusterID y Region son obligatorios solo si el Host no es un punto de conexión proporcionado por Amazon como examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com.

[testinstanceprofile] Driver=Default Host=testcluster.example.com Database=dev DbUser=testuser ClusterID=rsqltestcluster Region=us-east-1 IAM=1 Instanceprofile=1

A continuación se muestra la respuesta de conexión.

$ rsql -D testinstanceprofile DSN Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) testuser@dev=>

Uso de una conexión DSN con la cadena predeterminada de proveedores de credenciales

Para conectarse mediante la cadena predeterminada de proveedores de credenciales, especifique solo la propiedad de IAM; Amazon Redshift RSQL intentará adquirir las credenciales en el orden descrito en Uso de credenciales de AWS en el AWS SDK para Java. Al menos uno de los proveedores de la cadena debe tener el permiso GetClusterCredentials. Eso resulta útil para conectarse desde contenedores de ECS, por ejemplo.

[iamcredentials] Driver=Default Host=testcluster.example.com Database=dev DbUser=testuser ClusterID=rsqltestcluster Region=us-east-1 IAM=1