

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Uso de las interfaces de administración de Amazon Redshift para clústeres aprovisionados
<a name="using-aws-sdk"></a>

**nota**  
Este tema se centra en las interfaces de administración de Amazon Redshift para clústeres aprovisionados. Existen interfaces de administración similares para Amazon Redshift sin servidor y la API de datos de Amazon Redshift.

Amazon Redshift admite diversas interfaces de administración que puede utilizar para crear, administrar y eliminar clústeres de Amazon Redshift: los AWS SDK, la AWS Command Line Interface (AWS CLI) y la API de administración de Amazon Redshift.

**API de Amazon Redshift**: puede llamar a esta API de administración de Amazon Redshift mediante el envío de una solicitud. Las solicitudes son solicitudes HTTPS o HTTP que utilizan los verbos HTTP `GET` o `POST` con un parámetro de consulta denominado `Action`. Llamar a la API de Amazon Redshift es la forma más directa de obtener acceso al servicio Amazon Redshift. No obstante, esto requiere que la aplicación controle niveles de detalle de bajo nivel, tales como el control de errores y la generación del código hash para firmar la solicitud.
+ Para obtener información acerca de la creación y la firma de una solicitud de API de Amazon Redshift, consulte [Firma de una solicitud HTTP](amazon-redshift-signing-requests.md).
+ Para obtener información sobre las acciones de la API de Amazon Redshift y los tipos de datos para Amazon Redshift, consulte la [Referencia de la API de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/APIReference/Welcome.html).

**AWS SDK**: puede utilizar los AWS SDK para realizar operaciones relacionadas con clústeres de Amazon Redshift. Varias de las bibliotecas de SDK envuelven la API de Amazon Redshift subyacente. Los SDK integran la funcionalidad de la API en el lenguaje de programación específico y administran varios de los detalles de bajo nivel, como el cálculo de firmas, el control de reintentos de solicitud y el control de errores. Llamar las funciones envolventes de las bibliotecas de SDK puede simplificar de manera significativa el proceso de escritura de una aplicación para administrar un clúster de Amazon Redshift.
+ Los AWS SDK para Java, .NET, PHP, Python, Ruby y Node.js admiten el servicio Amazon Redshift. Las funciones envolventes para Amazon Redshift se documentan en el manual de referencia de cada SDK. Para obtener una lista de los AWS SDK y los enlaces a la documentación, consulte [Herramientas para Amazon Web Services](https://aws.amazon.com/tools/).
+ En esta guía, se proporcionan ejemplos de cómo trabajar con Amazon Redshift mediante el SDK para Java. Para ver ejemplos de código del SDK de AWS más generales, consulte [Ejemplos de código de Amazon Redshift usando SDK de AWS](service_code_examples.md). 

**AWS CLI**: la CLI proporciona un conjunto de herramientas de línea de comandos que puede utilizar para administrar servicios de AWS desde equipos Windows, Mac y Linux. La AWS CLI incluye comandos basados en las acciones de la API de Amazon Redshift.
+ Para obtener información acerca de la instalación y la configuración de la CLI de Amazon Redshift, consulte [Configuración de la CLI de Amazon Redshift](setting-up-rs-cli.md).
+ Para obtener material de referencia sobre los comandos de la CLI de Amazon Redshift, consulte [Amazon Redshift](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html) en la *Referencia de la AWS CLI.*

# Cómo utilizar este servicio con un AWS SDK
<a name="sdk-general-information-section"></a>

Los kits de desarrollo de software (SDK) de AWS se encuentran disponibles en muchos lenguajes de programación populares. Cada SDK proporciona una API, ejemplos de código y documentación que facilitan a los desarrolladores la creación de aplicaciones en su lenguaje preferido.


| Documentación de SDK | Ejemplos de código | 
| --- | --- | 
| [AWS SDK para C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp) | [AWS SDK para C\$1\$1 Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp) | 
| [AWS CLI](https://docs.aws.amazon.com/cli) | [AWS CLI Ejemplos de código de la](https://docs.aws.amazon.com/code-library/latest/ug/cli_2_code_examples.html) | 
| [AWS SDK para Go](https://docs.aws.amazon.com/sdk-for-go) | [AWS SDK para Go Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2) | 
| [AWS SDK para Java](https://docs.aws.amazon.com/sdk-for-java) | [AWS SDK para Java Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) | 
| [AWS SDK para JavaScript](https://docs.aws.amazon.com/sdk-for-javascript) | [AWS SDK para JavaScript Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3) | 
| [AWS SDK para Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin) | [AWS SDK para Kotlin Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin) | 
| [AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net) | [AWS SDK para .NET Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3) | 
| [AWS SDK para PHP](https://docs.aws.amazon.com/sdk-for-php) | [AWS SDK para PHP Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php) | 
| [Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell) | [Herramientas de AWS para PowerShell Ejemplos de código de la](https://docs.aws.amazon.com/code-library/latest/ug/powershell_5_code_examples.html) | 
| [AWS SDK para Python (Boto3)](https://docs.aws.amazon.com/pythonsdk) | [AWS SDK para Python (Boto3) Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python) | 
| [AWS SDK para Ruby](https://docs.aws.amazon.com/sdk-for-ruby) | [AWS SDK para Ruby Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby) | 
| [AWS SDK para Rust](https://docs.aws.amazon.com/sdk-for-rust) | [AWS SDK para Rust Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1) | 
| [AWS SDK para SAP ABAP](https://docs.aws.amazon.com/sdk-for-sapabap) | [AWS SDK para SAP ABAP Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap) | 
| [AWS SDK para Swift](https://docs.aws.amazon.com/sdk-for-swift) | [AWS SDK para Swift Ejemplos de código de la](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift) | 

**Ejemplo de disponibilidad**  
¿No encuentra lo que necesita? Solicite un ejemplo de código a través del enlace de **Enviar comentarios** que se encuentra al final de esta página.

# Firma de una solicitud HTTP
<a name="amazon-redshift-signing-requests"></a>

Amazon Redshift requiere que cada solicitud que envía a la API de administración se autentique con una firma. En este tema, se explica cómo firmar solicitudes. 

Si utiliza uno de los kits de desarrollo de software (SDK) de AWS o la AWS Command Line Interface, la firma de solicitudes se realiza de forma automática, por lo que puede omitir esta sección. Para obtener más información acerca del uso de AWS SDK, consulte [Uso de las interfaces de administración de Amazon Redshift para clústeres aprovisionados](using-aws-sdk.md). Para obtener más información acerca del uso de la interfaz de línea de comandos de Amazon Redshift, visite la [referencia de la línea de comandos de Amazon Redshift](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html).

Para firmar una solicitud, se calcula una firma digital mediante una función hash criptográfica. Un hash criptográfico es una función que devuelve un valor hash único que se basa en la entrada. La entrada a la función hash incluye el texto de su solicitud y su clave de acceso secreta que puede obtener de las credenciales temporales. La función hash devuelve un valor hash que se incluye en la solicitud como la firma. La firma forma parte del encabezado de la `Authorization` de la solicitud.

**nota**  
Los usuarios necesitan acceso programático si desean interactuar con AWS fuera de la Consola de administración de AWS. La forma de conceder el acceso programático depende del tipo de usuario que acceda a AWS.  
Para conceder acceso programático a los usuarios, seleccione una de las siguientes opciones.  


****  

| ¿Qué usuario necesita acceso programático? | Para | Mediante | 
| --- | --- | --- | 
| IAM | (Recomendado) Use credenciales de consola como credenciales temporales para firmar las solicitudes programáticas a la AWS CLI, los AWS SDK y las API de AWS. |  Siga las instrucciones de la interfaz que desea utilizar: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 
|  Identidad del personal (Usuarios administrados en el IAM Identity Center)  | Utiliza credenciales temporales para firmar las solicitudes programáticas a la AWS CLI, los AWS SDK y las API de AWS. |  Siga las instrucciones de la interfaz que desea utilizar: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 
| IAM | Utiliza credenciales temporales para firmar las solicitudes programáticas a la AWS CLI, los AWS SDK y las API de AWS. | Siguiendo las instrucciones de [Uso de credenciales temporales con recursos de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) de la Guía del usuario de IAM. | 
| IAM | (No recomendado)Utilizar credenciales a largo plazo para firmar las solicitudes programáticas a la AWS CLI, los AWS SDK o las API de AWS. |  Siga las instrucciones de la interfaz que desea utilizar: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 

Después de recibir su solicitud, Amazon Redshift recalcula la firma con la misma función hash y los datos que ingresó para firmar la solicitud. Si la firma resultante coincide con la firma de la solicitud, Amazon Redshift procesa la solicitud; de lo contrario, esta se rechaza. 

Amazon Redshift admite la autenticación mediante [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html). El proceso para calcular una firma se compone de tres tareas. Estas se ilustran en el siguiente ejemplo.
+   [Tarea 1: Crear una solicitud canónica](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-canonical-request)

  Reorganice la solicitud HTTP en forma canónica. Es preciso utilizar una forma canónica porque Amazon Redshift usa la misma forma canónica para calcular la firma que compara con la que ha enviado. 
+   [Tarea 2: Crear una cadena para firmar](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-string-to-sign)

  Crear una cadena que se utilizará como uno de los valores de entrada de la función hash criptográfica. La cadena, denominada *cadena para firmar*, es una concatenación del nombre del algoritmo hash, la fecha de la solicitud, una cadena de *ámbito de credenciales* y la solicitud en formato canónico de la tarea anterior. La cadena del *ámbito de credenciales* es una concatenación de fecha, región e información del servicio.
+   [Tarea 3: Calcular una firma](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#calculate-signature)

  Calcule una firma para la solicitud utilizando una función hash criptográfica que acepte dos cadenas de entrada: la cadena para firmar y una *clave derivada*. La clave derivada se calcula a partir de la clave de acceso secreta, utilizando el ámbito de credencial para crear una serie de códigos de autenticación de mensajes basados en hash (HMAC-SHA256). 

## Ejemplo de cálculo de firma
<a name="example-signature-calculation"></a>

En el siguiente ejemplo, se presentan los detalles de la creación de una firma de una solicitud [CreateCluster](https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html). Puede utilizar el ejemplo como referencia para comprobar su propio método de cálculo de firmas. Otros cálculos de referencia se incluyen en la [sección de ejemplos de firmas de solicitudes](https://docs.aws.amazon.com/IAM/latest/UserGuide/signature-v4-examples.html) de la Guía del usuario de IAM.

Puede utilizar una solicitud GET o POST para enviar solicitudes a Amazon Redshift. La diferencia entre las dos solicitudes es que con la solicitud GET los parámetros se envían como parámetros de cadena de consulta. Con la solicitud POST, las firmas se incluyen en el cuerpo de la solicitud. En el ejemplo a continuación, se presenta una solicitud POST.

El ejemplo supone lo siguiente:
+ La marca temporal de la solicitud es `Fri, 07 Dec 2012 00:00:00 GMT`.
+ El punto de enlace es la región EE. UU. Este (Norte de Virginia), `us-east-1`.

La sintaxis general de la solicitud es la siguiente: 

```
https://redshift.us-east-1.amazonaws.com/
   ?Action=CreateCluster
   &ClusterIdentifier=examplecluster
   &MasterUsername=masteruser
   &MasterUserPassword=12345678Aa
   &NumberOfNode=2
   &NodeType=dc2.large
   &Version=2012-12-01
   &x-amz-algorithm=AWS4-HMAC-SHA256
   &x-amz-credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request
   &x-amz-date=20121207T000000Z
   &x-amz-signedheaders=content-type;host;x-amz-date
```

La forma canónica de la solicitud calculada en [Tarea 1: Crear una solicitud canónica](#SignatureCalculationTask1) es la siguiente:

```
POST
/

content-type:application/x-www-form-urlencoded; charset=utf-8
host:redshift.us-east-1.amazonaws.com
x-amz-date:20121207T000000Z

content-type;host;x-amz-date
55141b5d2aff6042ccd9d2af808fdf95ac78255e25b823d2dbd720226de1625d
```

La última línea de la solicitud canónica es el hash del cuerpo de la solicitud. La tercera línea de la solicitud canónica se encuentra vacía porque no hay parámetros de consulta para esta API. 

La cadena para firmar de [Tarea 2: Crear una cadena para firmar](#SignatureCalculationTask2) es la siguiente:

```
AWS4-HMAC-SHA256
20121207T000000Z
20121207/us-east-1/redshift/aws4_request
06b6bef4f4f060a5558b60c627cc6c5b5b5a959b9902b5ac2187be80cbac0714
```

La primera línea de la *cadena para firmar* es el algoritmo, la segunda es la marca temporal, la tercera es el *ámbito de credenciales* y la última es el hash de la solicitud canónica de [Tarea 1: Crear una solicitud canónica](#SignatureCalculationTask1). El nombre del servicio que se va a utilizar en el ámbito de credenciales es `redshift`.

En [Tarea 3: Calcular una firma](#SignatureCalculationTask3), la clave derivada puede representarse como sigue:

```
derived key = HMAC(HMAC(HMAC(HMAC("AWS4" + YourSecretAccessKey,"20121207"),"us-east-1"),"redshift"),"aws4_request")
```

La clave derivada se calcula como series de funciones hash. Desde la instrucción HMAC interna en la fórmula anterior, debe concatenar la frase **AWS4** con su clave de acceso secreta y utilizarla como la clave para aplicar la función hash en los datos “us-east-1”. El resultado de esta hash se convierte en la clave para la siguiente función hash. 

Tras calcular la clave derivada, se usa en una función hash que acepte dos cadenas de entrada: la cadena para firmar y la clave derivada. Por ejemplo, si usa la clave de acceso secreta `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` y la cadena para firmar provistas anteriormente, la firma calculada es la siguiente:

```
9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
```

El último paso consiste en construir el encabezado `Authorization`. Para la clave de acceso de demostración `AKIAIOSFODNN7EXAMPLE`, el encabezado (al que se han agregado saltos de línea para que resulte más legible) es el siguiente:

```
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request, 
SignedHeaders=content-type;host;x-amz-date, 
Signature=9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
```

# Configuración de la CLI de Amazon Redshift
<a name="setting-up-rs-cli"></a>

En esta sección, se explica cómo configurar y ejecutar las herramientas de línea de comandos de AWS CLI para administrar Amazon Redshift. Las herramientas de línea de comandos de Amazon Redshift se ejecutan en la AWS Command Line Interface (AWS CLI), que, a su vez, utiliza Python ([https://www.python.org/](https://www.python.org)). La AWS CLI se puede ejecutar en cualquier sistema operativo que admita Python.

## Instalación del AWS Command Line Interface
<a name="setting-up.installing-the-tools"></a>

Para comenzar a utilizar las herramientas de línea de comandos de Amazon Redshift, primero configura la AWS CLI y, luego, agrega los archivos de configuración que definen las opciones de la CLI de Amazon Redshift.

Si ya instaló y configuró la AWS CLI para otro producto de AWS, puede omitir este procedimiento.

**Para instalar la de AWS Command Line Interface**

1. Vaya a [Install or update to the latest version of the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) y, a continuación, siga las instrucciones para instalar la AWS CLI.

   Para acceder a la CLI, necesita un ID de clave de acceso y una clave de acceso secreta. Cuando sea posible, utilice credenciales temporales en lugar de claves de acceso. Las credenciales temporales incluyen un ID de clave de acceso y una clave de acceso secreta, pero, además, incluyen un token de seguridad que indica cuándo caducan las credenciales. Para obtener más información, consulte [Uso de credenciales temporales con AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) en la *Guía del usuario de IAM*.

1. Cree un archivo que contenga la información de configuración, como las claves de acceso, la región predeterminada y el formato de salida de comandos. Luego, establezca la variable de entorno `AWS_CONFIG_FILE` para que haga referencia a ese archivo. Para obtener instrucciones detalladas, visite [Configuración de la interfaz de línea de comandos de AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) en la Guía del usuario de AWS Command Line Interface.

1. Ejecute un comando de prueba para confirmar que la AWS CLI está funcionando. Por ejemplo, el siguiente comando debe mostrar información de ayuda para la AWS CLI:

   ```
   aws help
   ```

   El siguiente comando debe mostrar información de ayuda para Amazon Redshift:

   ```
   aws redshift help
   ```

Para obtener material de referencia sobre los comandos de la CLI de Amazon Redshift, consulte [Amazon Redshift](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html) en la Referencia de la AWS CLI.