Conexión a Amazon Redshift sin servidor - Amazon Redshift

Conexión a Amazon Redshift sin servidor

Una vez que haya configurado la instancia de Amazon Redshift sin servidor, puede conectarse a ella mediante una variedad de métodos, que se describen a continuación. Si dispone de varios equipos o proyectos y desea administrar los costos por separado, puede utilizar distintas Cuentas de AWS.

Para obtener una lista de las Regiones de AWS donde Amazon Redshift sin servidor está disponible, consulte los puntos de conexión enumerados para la API de Redshift sin servidor en la Referencia general de Amazon Web Services.

Amazon Redshift sin servidor se conecta al entorno sin servidor en la Cuenta de AWS en la Región de AWS actual. Amazon Redshift sin servidor se ejecuta en una VPC en los intervalos de puertos 5431 a 5455 y 8191 a 8215. El valor predeterminado es 5439. Actualmente, solo puede cambiar los puertos con la operación UpdateWorkgroup de la API y la operación update-workgroup de la AWS CLI.

Conexión a Amazon Redshift sin servidor

Se puede conectar a una base de datos (denominada dev) en Amazon Redshift sin servidor con la siguiente sintaxis.

workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:port/dev

Por ejemplo, la siguiente cadena de conexión especifica la región us-east-1.

default.123456789012.us-east-1.redshift-serverless.amazonaws.com:5439/dev

Conexión a Amazon Redshift sin servidor por medio de controladores JDBC

Puede utilizar uno de los siguientes métodos para conectarse a Amazon Redshift sin servidor con el cliente SQL que prefiera mediante el controlador JDBC versión 2 proporcionado por Amazon Redshift.

Para conectarse con credenciales de inicio de sesión para la autenticación de la base de datos mediante el controlador JDBC versión 2.1.x o posterior, utilice la siguiente sintaxis. El número de puerto es opcional; si no se incluye, Amazon Redshift sin servidor tiene por defecto el número de puerto 5439. Puede cambiar a otro puerto del intervalo de puertos 5431-5455 u 8191-8215. Para cambiar el puerto predeterminado de un punto de conexión sin servidor, utilice la AWS CLI y la API de Amazon Redshift.

jdbc:redshift://workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:5439/dev

Por ejemplo, la siguiente cadena de conexión especifica el grupo de trabajo predeterminado, el ID de la cuenta 123456789012 y la región us-east-2.

jdbc:redshift://default.123456789012.us-east-2.redshift-serverless.amazonaws.com:5439/dev

Para conectar con IAM a través del controlador JDBC versión 2.1.x o posterior, utilice la siguiente sintaxis. El número de puerto es opcional; si no se incluye, Amazon Redshift sin servidor tiene por defecto el número de puerto 5439. Puede cambiar a otro puerto del intervalo de puertos 5431-5455 u 8191-8215. Para cambiar el puerto predeterminado de un punto de conexión sin servidor, utilice la AWS CLI y la API de Amazon Redshift.

jdbc:redshift:iam://workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:5439/dev

Por ejemplo, la siguiente cadena de conexión especifica el grupo de trabajo predeterminado, el ID de la cuenta 123456789012 y la región us-east-2.

jdbc:redshift:iam://default.123456789012.us-east-2.redshift-serverless.amazonaws.com:5439/dev

Para ODBC, utilice la siguiente sintaxis.

Driver={Amazon Redshift (x64)}; Server=workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com; Database=dev

Si utiliza una versión del controlador JDBC anterior a 2.1.0.9 y se conecta con IAM, deberá utilizar la siguiente sintaxis.

jdbc:redshift:iam://redshift-serverless-<name>:aws-region/database-name

Por ejemplo, la siguiente cadena de conexión especifica el grupo de trabajo predeterminado y la us-east-1 de Región de AWS.

jdbc:redshift:iam://redshift-serverless-default:us-east-1/dev

Para obtener más información sobre los controladores, consulte Configuración de conexiones en Amazon Redshift.

Búsqueda de la cadena de conexión JDBC y ODBC

Para conectarse al grupo de trabajo con la herramienta de cliente SQL, debe tener la cadena de conexión JDBC u ODBC. Puede encontrar la cadena de conexión en la consola de Amazon Redshift sin servidor en la página de detalles de un grupo de trabajo.

Para encontrar la cadena de conexión de un grupo de trabajo
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshiftv2/.

  2. En menú de navegación, elija Redshift sin servidor.

  3. En el menú de navegación, elija Configuración de grupos de trabajo y, a continuación, el nombre del grupo de trabajo de la lista para abrir sus detalles.

  4. Las cadenas de conexión de la URL de JDBC y la URL de ODBC están disponibles, junto con detalles adicionales, en la sección Información general. Cada cadena se basa en la región de AWS en la que se ejecuta el grupo de trabajo. Elija el icono situado junto a cadena de conexión adecuada para copiarla.

Conexión a Amazon Redshift sin servidor con la API de datos

También puede utilizar la API de datos de Amazon Redshift para conectarse a Amazon Redshift sin servidor. Use el parámetro workgroup-name en lugar del parámetro cluster-identifier en las llamadas a la AWS CLI.

Consulte Uso de la API de datos de Amazon Redshift para obtener más información acerca de la API de datos. Para ver el código de ejemplo que llama a la API de datos en Python y otros ejemplos, consulte Introducción a la API de datos de Redshift y busque en las carpetas quick-start y use-cases en GitHub.

Conexión con SSL a Amazon Redshift sin servidor

Configuración de una conexión segura con Amazon Redshift sin servidor

Para admitir las conexiones SSL, Redshift Serverless crea e instala un certificado SSL emitido por AWS Certificate Manager (ACM) para cada grupo de trabajo. La mayoría de los sistemas operativos, navegadores web y clientes confían públicamente en los certificados ACM. No obstante, este cambio lo afectará en caso de que sus clientes o aplicaciones SQL se conectan a Redshift Serverless mediante SSL con el conjunto de opciones de conexión sslmode establecido como require, verify-ca o verify-full. Si su cliente necesita un certificado, Redshift Serverless proporciona un certificado de paquete de la siguiente manera:

  • Descargue el paquete desde https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt.

    • El número de suma de comprobación MD5 esperado es 418dea9b6d5d5de7a8f1ac42e164cdcf.

    • El número de suma de comprobación sha256 es 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550.

    No utilice el paquete de certificados anterior que se encontraba enhttps://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt.

  • En la Región de AWS China, descargue el paquete desde https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt.

    • El número de suma de comprobación MD5 esperado es 418dea9b6d5d5de7a8f1ac42e164cdcf.

    • El número de suma de comprobación sha256 es 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550.

    No utilice los paquetes de certificados anteriores que se encontraban en https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/redshift-ca-bundle.crt y https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem

importante

Redshift Serverless ha cambiado la forma en que se administran los certificados SSL. Es posible que tenga que actualizar sus certificados de CA raíz de confianza actuales para seguir conectándose a los grupos de trabajo que usan SSL. Para obtener más información acerca de los certificados ACM para conexiones SSL, consulte Migración a certificados de ACM para las conexiones SSL.

De manera predeterminada, las bases de datos del grupo de trabajo aceptan una conexión, independientemente de que use una SSL o no.

Para crear un grupo de trabajo nuevo que solo acepte conexiones SSL, utilice el comando create-workgroup y defina el parámetro require_ssl como true. Para usar el ejemplo siguiente, sustituya yourNamespaceName por el nombre de su espacio de nombres y reemplace yourWorkgroupName por el nombre de su grupo de trabajo.

aws redshift-serverless create-workgroup \ --namespace-name yourNamespaceName \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=require_ssl,parameterValue=true

Para actualizar un grupo de trabajo existente de modo que solo acepte conexiones SSL, utilice el comando update-workgroup y defina el parámetro require_ssl como true. Tenga en cuenta que Redshift Serverless reiniciará el grupo de trabajo cuando actualice el parámetro require_ssl. Para usar el siguiente ejemplo, reemplace yourWorkgroupName por el nombre de su grupo de trabajo.

aws redshift-serverless update-workgroup \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=require_ssl,parameterValue=true

Amazon Redshift es compatible con el protocolo de acuerdo de clave de Elliptic Curve Diffie-Hellman Ephemeral (ECDHE). Con ECDHE, tanto el cliente como el servidor tienen un par de claves pública-privada de curva elíptica que se usa para establecer un código secreto compartido sobre un canal inseguro. No es necesario que configure nada en Amazon Redshift para habilitar ECDHE. Si se conecta desde una herramienta de cliente SQL que usa ECDHE para cifrar la comunicación entre el cliente y el servidor, Amazon Redshift usará la lista de cifrado proporcionada para realizar la conexión adecuada. Para obtener más información, consulte Elliptic Curve Diffie-Hellman en Wikipedia y Ciphers en el sitio web de OpenSSL.

Configuración de una conexión SSL compatible con FIPS a Amazon Redshift sin servidor

Para crear un grupo de trabajo nuevo que solo acepte conexión SSL compatible con FIPS, utilice el comando create-workgroup y defina el parámetro use_fips_ssl como true. Para usar el ejemplo siguiente, sustituya yourNamespaceName por el nombre de su espacio de nombres y reemplace yourWorkgroupName por el nombre de su grupo de trabajo.

aws redshift-serverless create-workgroup \ --namespace-name yourNamespaceName \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=use_fips_ssl,parameterValue=true

Para actualizar un grupo de trabajo existente para usar una conexión SSL compatible con FIPS, utilice el comando update-workgroup y defina el parámetro use_fips_ssl como true. Tenga en cuenta que Redshift Serverless reiniciará el grupo de trabajo cuando actualice el parámetro use_fips_ssl. Para usar el siguiente ejemplo, reemplace yourWorkgroupName por el nombre de su grupo de trabajo.

aws redshift-serverless update-workgroup \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=use_fips_ssl,parameterValue=true

Para obtener más información sobre cómo configurar Redshift sin servidor para usar conexiones compatibles con FIPS, consulte use_fips_ssl en la Guía para desarrolladores de bases de datos de Amazon Redshift.

Conexión con Amazon Redshift sin servidor desde un punto de conexión de VPC administrado por Amazon Redshift

Conexión a Amazon Redshift sin servidor desde otros puntos de conexión de la VPC

Para obtener información sobre cómo configurar un punto de conexión de VPC administrado para un grupo de trabajo de Amazon Redshift sin servidor, consulte Uso de puntos de conexión de la VPC administrados por Redshift.

Conexión a Amazon Redshift sin servidor desde un punto de conexión de VPC de Redshift en otra cuenta o región

Conexión a Amazon Redshift sin servidor entre puntos de conexión de VPC

Amazon Redshift sin servidor se aprovisiona en una VPC. Puede conceder acceso a una VPC de otra cuenta para acceder a Amazon Redshift sin servidor desde su cuenta. Es similar a una conexión desde un punto de conexión de VPC administrado, pero en este caso la conexión se origina, por ejemplo, desde un cliente de base de datos de otra cuenta. Puede realizar algunas operaciones:

  • El propietario de una base de datos puede conceder acceso a una VPC que contenga Amazon Redshift sin servidor a otra cuenta de la misma región.

  • El propietario de una base de datos puede revocar el acceso a Amazon Redshift sin servidor.

La principal ventaja del acceso entre cuentas es que permite una colaboración más sencilla entre las bases de datos. Los usuarios no tienen que estar aprovisionados en la cuenta que contiene la base de datos para acceder a ella, lo que reduce los pasos de configuración y ahorra tiempo.

Permisos necesarios para otorgarle acceso a una VPC en otra cuenta

Para conceder acceso o cambiar el acceso permitido, el otorgante debe tener una política de permisos asignada que incluya los siguientes permisos:

  • redshift-serverless:PutResourcePolicy

  • redshift-serverless:GetResourcePolicy

  • redshift-serverless:DeleteResourcePolicy

  • ec2:CreateVpcEndpoint

  • ec2:ModifyVpcEndpoint

Es posible que necesite otros permisos que se especifican en la política administrada por AWS AmazonRedshiftFullAccess. Para obtener más información, consulte Concesión de permisos a Amazon Redshift Serverless.

El beneficiario debe tener una política de permisos asignada que incluya los siguientes permisos:

  • redshift-serverless:ListWorkgroups

  • redshift-serverless:CreateEndpointAccess

  • redshift-serverless:UpdateEndpointAccess

  • redshift-serverless:GetEndpointAccess

  • redshift-serverless:ListEndpointAccess

  • redshift-serverless:UpdateEndpointAccess

Como práctica recomendada, aconsejamos asociar las políticas de permisos a un rol de IAM y luego asignarlo a los usuarios y grupos según sea necesario. Para obtener más información, consulte Administración de identidades y accesos en Amazon Redshift.

Este es un ejemplo de política de recursos que se utiliza para configurar el acceso entre VPC:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountCrossVPCAccess", "Effect": "Allow", "Principal": { "AWS": [ "123456789012", "234567890123" ] }, "Action": [ "redshift-serverless:CreateEndpointAccess", "redshift-serverless:UpdateEndpointAccess", "redshift-serverless:DeleteEndpointAccess", "redshift-serverless:GetEndpointAccess" ], "Condition": { "ArnLike": { "redshift-serverless:AuthorizedVpc": [ "arn:aws:ec2:us-east-1:123456789012:vpc/*", "arn:aws:ec2:us-east-1:234567890123:vpc/vpc-456", "arn:aws:ec2:us-east-1:234567890123:vpc/vpc-987" ] } } } } ] }

Los procedimientos que se indican en esta sección suponen que el usuario que los realiza tiene asignados los permisos adecuados, por ejemplo, mediante un rol de IAM asignado que tiene los permisos enumerados. Los procedimientos también suponen que el grupo de trabajo tiene un rol de IAM asociado con los permisos de recursos adecuados.

Concesión de acceso de VPC a otras cuentas mediante la consola

Este procedimiento muestra los pasos para configurar el acceso a la base de datos si es el propietario de la base de datos y desea conceder el acceso a la misma.

Concesión del acceso desde la cuenta del propietario
  1. En las propiedades del grupo de trabajo de Amazon Redshift sin servidor, en la pestaña Acceso a los datos hay una lista denominada Cuentas concedidas. Muestra las cuentas y las VPC a las que se les ha concedido acceso al grupo de trabajo. Busque la lista y elija Conceder acceso para añadir una cuenta a la lista.

  2. Aparece una ventana en la que puede añadir la información del beneficiario. Indique el ID de la cuenta de AWS, que es el ID de 12 dígitos de la cuenta a la que quiere conceder acceso.

  3. Conceda al beneficiario acceso a todas las VPC o a VPC específicas. Si concede acceso solo a VPC específicas, puedes añadir los ID introduciendo cada una de ellas y seleccionando Agregar VPC.

  4. Cuando haya finalizado, seleccione Guardar los cambios.

Al guardar los cambios, la cuenta aparece en la lista Cuentas concedidas. La entrada muestra el ID de la cuenta y la lista de VPC a las que se ha concedido acceso.

El propietario de la base de datos también puede revocar el acceso a una cuenta. El propietario puede revocar el acceso en cualquier momento.

Revocación del acceso a una cuenta
  1. Puede empezar desde la lista de cuentas concedidas. En primer lugar, seleccione una o varias cuentas.

  2. Elija Revocar acceso.

Una vez concedido el acceso, el administrador de la base de datos del beneficiario puede comprobar la consola para determinar si tiene acceso.

Uso de la consola para confirmar que se le ha concedido el acceso para que pueda acceder a otra cuenta
  1. En las propiedades del grupo de trabajo de Amazon Redshift sin servidor, en la pestaña Acceso a los datos hay una lista denominada Cuentas autorizadas. Muestra las cuentas a las que se puede acceder desde este grupo de trabajo. El beneficiario no puede usar la URL del punto de conexión del grupo de trabajo para acceder directamente al grupo de trabajo. Para acceder al grupo de trabajo, usted, como beneficiario, debe ir a la sección punto de conexión y elegir crear un punto de conexión.

  2. A continuación, como beneficiario, debe proporcionar un nombre de punto de conexión y una VPC para acceder al grupo de trabajo.

  3. Cuando el punto de conexión se haya creado correctamente, aparecerá en la sección puntos de conexión y tendrá una URL de punto de conexión. Puede utilizar esta URL de punto de conexión para acceder al grupo de trabajo.

Concesión de acceso a otras cuentas mediante los comandos de la CLI

La cuenta que concede el acceso debe conceder primero acceso a otra cuenta para poder conectarse mediante put-resource-policy. El propietario de la base de datos puede llamar a put-resource-policy para autorizar a otra cuenta a crear conexiones con el grupo de trabajo. Luego, la cuenta del beneficiario puede utilizar create-endpoint-authorization para crear conexiones con el grupo de trabajo a través de las VPC permitidas.

A continuación, se muestran las propiedades de put-resource-policy que puede llamar para permitir el acceso a una cuenta y una VPC específicas.

aws redshift-serverless put-resource-policy --resource-arn <value> --policy <value>

Tras llamar al comando, puede llamar a get-resource-policy y especificar el resource-arn para ver qué cuentas y VPC tienen permiso para acceder al recurso.

El beneficiario puede realizar la siguiente llamada. Muestra información sobre el acceso concedido. En concreto, devuelve una lista que contiene las VPC a las que se ha concedido acceso.

aws redshift-serverless list-workgroups --owner-account <value>

El objetivo es que el beneficiario obtenga información de la cuenta del otorgante sobre las autorizaciones de los puntos de conexión. owner-account es la cuenta de uso compartido. Al ejecutar esta opción, devuelve las CrossAccountVpcs de cada grupo de trabajo, que es una lista de las VPC permitidas. A continuación se muestran todas las propiedades disponibles para un grupo de trabajo a modo de referencia:

Output: workgroup (Object) workgroupId String, workgroupArn String, workgroupName String, status: String, namespaceName: String, baseCapacity: Integer, (Not-applicable) enhancedVpcRouting: Boolean, configParameters: List, securityGroupIds: List, subnetIds: List, endpoint: String, publiclyAccessible: Boolean, creationDate: Timestamp, port: Integer, CrossAccountVpcs: List
nota

Como recordatorio, la reubicación del clúster no es un requisito previo para configurar características de red de Redshift adicionales. Tampoco es necesario que lo active para habilitar lo siguiente:

  • Conexión desde una VPC con varias cuentas o regiones a Redshift: puede conectarse desde una nube privada virtual (VPC) de AWS a otra que contenga una base de datos de Redshift, tal como se describe en esta sección.

  • Configuración de un nombre de dominio personalizado: puede crear un nombre de dominio personalizado, también conocido como URL personalizada, para su clúster de Amazon Redshift o grupo de trabajo de Amazon Redshift sin servidor, a fin de que el nombre del punto de conexión sea sencillo y más fácil de recordar. Para obtener más información, consulte Uso de un nombre de dominio personalizado para las conexiones de cliente.

Configuración de las opciones de tráfico de red adecuadas para Amazon Redshift sin servidor

Conectarse a Amazon Redshift sin servidor cuando sea de acceso público

Encontrará instrucciones para establecer la configuración del tráfico de red en Accesibilidad pública con configuración de grupo de seguridad predeterminada o personalizada. Aquí se incluye un caso de uso en el que el clúster es de acceso público.

Conectarse a Amazon Redshift sin servidor cuando no es de acceso público

Encontrará instrucciones para establecer la configuración del tráfico de red en Accesibilidad privada con configuración de grupo de seguridad predeterminada o personalizada. Aquí se incluye un caso de uso en el que el clúster no está disponible en Internet.

Definición de roles de base de datos para concederlos a los usuarios federados en Amazon Redshift sin servidor

Puede definir roles en su organización que determinen qué roles de base de datos conceder en Amazon Redshift sin servidor. Para obtener más información, consulte Definición de roles de base de datos para concederlos a los usuarios federados en Amazon Redshift sin servidor.

Recursos adicionales

Para obtener más información sobre las conexiones seguras a Amazon Redshift sin servidor, incluida la concesión de permisos, la autorización de acceso a servicios adicionales y la creación de roles de IAM, consulte Identity and access management en Amazon Redshift Serverless.