

 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/). 

# Conexión a Redshift con sesiones de rol de IAM con identidad mejorada
<a name="identity-center-authentication"></a>

Puede usar el IAM Identity Center para proporcionar acceso federado a sus clústeres y grupos de trabajo sin servidor de Amazon Redshift. Este enfoque permite a los usuarios autenticarse con sus credenciales del Identity Center.

Amazon Redshift proporciona operaciones de la API `GetIdentityCenterAuthToken` para generar un token autorizado que contiene la información de identidad de usuario. Estas API están disponibles tanto para clústeres aprovisionados como para grupos de trabajo sin servidor. Los tokens permiten un acceso de inicio de sesión único sin interrupciones a las bases de datos de Amazon Redshift mediante su configuración de Identity Center existente.

## Requisitos previos
<a name="identity-center-auth-prerequisites"></a>

Antes de utilizar la autenticación de Identity Center con Amazon Redshift, asegúrese de que dispone de lo siguiente:
+ **Configuración de Identity Center:** su cuenta debe tener IAM Identity Center configurado con las identidades de usuario y las asignaciones de aplicación adecuadas. Para obtener instrucciones de configuración, consulte [Configuración de IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html).
**importante**  
Si desea conectarse a Redshift, debe utilizar el ámbito redshift:connect.
+ **Credenciales de identidad mejorada:** su aplicación debe usar credenciales de identidad mejorada que contengan información de identidad de usuario incrustada. Para obtener más información, consulte [Uso de sesiones de rol de IAM con identidad mejorada](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-identity-enhanced-iam-role-sessions.html).
+ **Permisos de IAM:** su rol o usuario de IAM debe tener permisos para llamar a la API `GetIdentityCenterAuthToken` y acceder a los clústeres o grupos de trabajo especificados. Permisos necesarios:
  + Para los clústeres aprovisionados: `redshift:GetIdentityCenterAuthToken` en ARN de clúster (formato: `arn:aws:redshift:region:account:cluster:cluster-name`)
  + Para grupos de trabajo sin servidor: `redshift-serverless:GetIdentityCenterAuthToken` en ARN de grupo de trabajo (formato: `arn:aws:redshift-serverless:region:account:workgroup/workgroup-name`)
+ **Controladores compatibles:** utilice los controladores JDBC u ODBC de Amazon Redshift que admiten los tokens autorizados de Identity Center:
  + Controlador JDBC: consulte [Instalación y configuración del controlador JDBC, versión 2.0, de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-install.html).
  + Controlador ODBC: consulte [Instalación y configuración del controlador ODBC, versión 2.0, de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/odbc20-install.html).

## Cómo funciona la autenticación de Identity Center
<a name="identity-center-auth-overview"></a>

La autenticación de Identity Center para Amazon Redshift utiliza el siguiente flujo de trabajo:

1. Su aplicación llama a la API `GetIdentityCenterAuthToken` mediante credenciales de identidad mejorada que contienen información de identidad de usuario incrustada.

1. Amazon Redshift valida la identidad de Identity Center y genera un token autorizado cifrado destinado a clústeres o grupos de trabajo específicos. Consulte el ejemplo de políticas de IAM.

1. Además, su aplicación utiliza este token para conectarse al clúster o grupo de trabajo de Amazon Redshift especificado.

1. El plano de datos de Amazon Redshift valida el token y concede acceso en función de los permisos de usuario de Identity Center en la aplicación Identity Center.

**importante**  
Esta API requiere credenciales de identidad mejorada. Para obtener más información, consulte [Uso de sesiones de rol de IAM con identidad mejorada](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-identity-enhanced-iam-role-sessions.html).  
Si llama a la API sin credenciales de identidad mejorada, recibirá el error `UnsupportedOperationFault`.

## Operaciones de la API GetIdentityCenterAuthToken
<a name="identity-center-auth-apis"></a>

Amazon Redshift proporciona dos operaciones de la API `GetIdentityCenterAuthToken` independientes: una para los clústeres aprovisionados y otra para los grupos de trabajo sin servidor. Ambas operaciones tienen el mismo nombre, pero aceptan parámetros diferentes según el tipo de recurso de destino.

### GetIdentityCenterAuthToken para clústeres aprovisionados
<a name="provisioned-identity-center-auth"></a>

Para los clústeres de Amazon Redshift aprovisionados, utilice la API `GetIdentityCenterAuthToken` del servicio de Amazon Redshift para generar el token autorizado.

#### Sintaxis de la solicitud
<a name="provisioned-request-syntax"></a>

```
{
   "ClusterIds": [ "string" ]
}
```

#### Parámetros de solicitud
<a name="provisioned-request-parameters"></a>

ClusterIds  
Una lista de identificadores de clústeres de Amazon Redshift a los que se autorizará el acceso al token. El token solo se puede usar para realizar la autenticación con los clústeres especificados en esta lista.  
Tipo: matriz de cadenas  
Restricciones de longitud: mínimo de 1 elemento. Máximo de 20 elementos.  
Obligatorio: sí

#### Ejemplos de CLI
<a name="provisioned-cli-examples"></a>

**Ejemplo: Obtención de un token autorizado para un solo clúster**

```
aws redshift get-identity-center-auth-token \
    --cluster-ids my-redshift-cluster
```

**Ejemplo: Obtención de un token autorizado para varios clústeres**

```
aws redshift get-identity-center-auth-token \
    --cluster-ids my-cluster-1 my-cluster-2
```

### GetIdentityCenterAuthToken para grupos de trabajo sin servidor
<a name="serverless-identity-center-auth"></a>

Para los grupos de trabajo de Amazon Redshift sin servidor, utilice la API `GetIdentityCenterAuthToken` del servicio de Amazon Redshift sin servidor para generar el token autorizado.

#### Sintaxis de la solicitud
<a name="serverless-request-syntax"></a>

```
{
   "WorkgroupNames": [ "string" ]
}
```

#### Parámetros de solicitud
<a name="serverless-request-parameters"></a>

WorkgroupNames  
Una lista de los nombres de grupos de trabajo de Amazon Redshift sin servidor a los que se autorizará el acceso al token. El token solo se puede usar para autenticarse con los clústeres especificados en esta lista.  
Tipo: matriz de cadenas  
Restricciones de longitud: mínimo de 1 elemento. Máximo de 20 elementos.  
Obligatorio: sí

#### Ejemplos de CLI
<a name="serverless-cli-examples"></a>

**Ejemplo: Obtención de un token autorizado para un solo grupo de trabajo**

```
aws redshift-serverless get-identity-center-auth-token \
    --workgroup-names my-workgroup
```

**Ejemplo: Obtención de un token autorizado para varios grupos de trabajo**

```
aws redshift-serverless get-identity-center-auth-token \
    --workgroup-names workgroup-1 workgroup-2
```

### Sintaxis de la respuesta
<a name="identity-center-auth-response"></a>

Ambas API devuelven la misma estructura de respuesta:

```
{
   "AuthorizedToken": "string",
   "ExpirationTime": "timestamp"
}
```

#### Parámetros de respuesta
<a name="identity-center-response-parameters"></a>

AuthorizedToken  
Un token autorizado cifrado que contiene la información de identidad de usuario y la lista de clústeres o grupos de trabajo autorizados. Este token debe tratarse como información confidencial.  
Tipo: cadena

ExpirationTime  
La fecha y hora en que caduca el token, en UTC. Los tokens son válidos durante 1 hora desde el momento de la generación.  
Tipo: marca temporal

#### Respuesta de ejemplo
<a name="identity-center-response-example"></a>

```
{
    "AuthorizedToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNjQwOTk1MjAwLCJleHAiOjE2NDA5OTg4MDAsImNsdXN0ZXJzIjpbIm15LWNsdXN0ZXIiXX0...",
    "ExpirationTime": "2024-01-01T12:00:00Z"
}
```

## Integración de controladores
<a name="identity-center-auth-driver-integration"></a>

Los controladores de Amazon Redshift admiten la autenticación de Identity Center mediante el uso directo de token:

### Uso directo de token
<a name="direct-token-usage"></a>

Después de llamar a la API `GetIdentityCenterAuthToken` para obtener un token, utilice `IdpTokenAuthPlugin` con el tipo de token `SUBJECT_TOKEN`.

Configuración de la conexión:

```
plugin_name = com.amazon.redshift.plugin.IdpTokenAuthPlugin
token_type = SUBJECT_TOKEN
token = {encrypted_token_from_api_response}
```

Para obtener información detallada sobre los complementos de autenticación y la configuración de controladores de Identity Center, consulte [Conexión a un clúster de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-to-cluster.html).

### Código de ejemplo de Java
<a name="java-code-example"></a>

Ejemplo de código Java para la conexión usando la autenticación de Identity Center:

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

// Get token from GetIdentityCenterAuthToken API
String token = "your_encrypted_token_from_api_response";

// Configure connection properties
Properties props = new Properties();
props.setProperty("user", "your_username");
props.setProperty("plugin_name", "com.amazon.redshift.plugin.IdpTokenAuthPlugin");
props.setProperty("token_type", "SUBJECT_TOKEN");
props.setProperty("token", token);

// Connect to Redshift
String url = "jdbc:redshift://your-cluster.region.redshift.amazonaws.com:5439/your_database";
try (Connection conn = DriverManager.getConnection(url, props)) {
    // Use connection
    System.out.println("Connected successfully!");
} catch (SQLException e) {
    e.printStackTrace();
}
```

## Requisitos de la política de IAM
<a name="identity-center-auth-iam-permissions"></a>

Para utilizar la autenticación de Identity Center con Amazon Redshift, se requieren permisos de IAM específicos además de los permisos estándar necesarios para conectarse a clústeres y grupos de trabajo de Amazon Redshift.

### Permisos de la API
<a name="identity-center-auth-iam-api-permissions"></a>

En el caso de los clústeres aprovisionados, su sesión de rol de IAM mejorada debe tener:
+ `redshift:GetIdentityCenterAuthToken` en los ARN de clúster (formato: `arn:aws:redshift:region:account:cluster:cluster-name`)

En el caso de los grupos de trabajo sin servidor, la sesión de rol de IAM mejorada debe tener:
+ `redshift-serverless:GetIdentityCenterAuthToken` en los ARN de grupo de trabajo (formato: `arn:aws:redshift-serverless:region:account:workgroup/workgroup-name`)

### Ejemplos de políticas de IAM
<a name="identity-center-auth-iam-policy-examples"></a>

**Ejemplo de política de clústeres aprovisionados:**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift:GetIdentityCenterAuthToken"
            ],
            "Resource": [
                "arn:aws:redshift:us-east-1:123456789012:cluster:my-cluster"
            ]
        }
    ]
}
```

**Ejemplo de política de grupos de trabajo sin servidor:**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-serverless:GetIdentityCenterAuthToken"
            ],
            "Resource": [
                "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/my-workgroup"
            ]
        }
    ]
}
```

**Ejemplo de política de varios recursos:**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift:GetIdentityCenterAuthToken"
            ],
            "Resource": [
                "arn:aws:redshift:*:123456789012:cluster/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "redshift-serverless:GetIdentityCenterAuthToken"
            ],
            "Resource": [
                "arn:aws:redshift-serverless:*:123456789012:workgroup/*"
            ]
        }
    ]
}
```

## Disponibilidad en las regiones
<a name="identity-center-auth-regional-availability"></a>

La autenticación de Identity Center está disponible en las siguientes regiones de AWS:
+ Regiones comerciales: todas las regiones de Amazon Redshift admitidas
+ AWS GovCloud: disponible en us-gov-east-1 y us-gov-west-1
+ Regiones de China: disponible en cn-north-1 y cn-northwest-1

**nota**  
La disponibilidad de las características puede variar durante la implementación inicial.