

 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 la API de datos con propagación de identidad de confianza
<a name="data-api-trusted-identity-propagation"></a>

Como administrador de cuentas de Amazon Redshift, puede integrar el clúster o grupo de trabajo de Amazon Redshift con AWS IAM Identity Center, lo que ayuda a administrar el acceso del personal a Amazon Redshift con inicio de sesión único. Para obtener más información, consulte [Configuración de la integración de AWS IAM Identity Center con Amazon Redshift](redshift-iam-access-control-idp-connect-console.md). La API de datos de Amazon Redshift admite la propagación de identidades de usuario de IAM Identity Center a un clúster o grupo de trabajo de Amazon Redshift, y a otros servicios, como AWS Lake Formation, en la cadena. Puede configurar y consultar mediante la API de datos si sigue los pasos de [Acceso a los servicios de AWS mediante programación con la propagación de identidad de confianza](https://aws.amazon.com/blogs//security/access-aws-services-programmatically-using-trusted-identity-propagation/).

Cuando llama a la API de datos con una identidad de usuario de IAM Identity Center desde una sesión de rol de IAM con identidad mejorada, solo puede acceder a la instrucción resultante y al resultado de la instrucción con el mismo usuario de IAM Identity Center. Por ejemplo, el siguiente comando de la AWS CLI llama a la operación `execute-statement` para ejecutar un comando SQL con propagación de identidad de confianza.

```
aws redshift-data execute-statement 
--sql "select current_user;" 
--cluster-id mycluster
--database dev
```

El siguiente comando de la AWS CLI llama a la operación `batch-execute-statement` para ejecutar dos comandos SQL.

```
aws redshift-data batch-execute-statement 
--sqls  "select current_user;"  "select current_date;"
--cluster-id mycluster
--database dev
```

Para acceder a las instrucciones con `cancel-statement`, `describe-statement`, `get-statement-result` y `get-statement-result-v2` enviadas por sesiones de rol de IAM con identidad mejorada, el usuario de IAM Identity Center y el rol de IAM deben coincidir con las credenciales utilizadas para ejecutar `execute-statment` o `batch-execute-statement`. Por ejemplo, el siguiente comando de la AWS CLI obtiene los resultados de una instrucción SQL.

```
aws redshift-data get-statement-result 
--id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```

Para enumerar instrucciones, se debe proporcionar un parámetro `cluster-identifier` o `workgroup-name` a fin de garantizar que el usuario de IAM Identity Center solo tenga acceso a las aplicaciones de Amazon Redshift IAM Identity Center a las que está asignado. Por ejemplo, el siguiente comando de la AWS CLI enumera instrucciones para un clúster específico.

```
aws redshift-data list-statements
--cluster-identifier mycluster
```

También puede invocar las operaciones de la API de datos que acceden a objetos de base de datos en un clúster o grupo de trabajo mediante la propagación de identidad de confianza. Esto incluye las operaciones `list-databases`, `list-schemas`, `list-tables` y `describe-table`.

Las llamadas a la API realizadas por el usuario de IAM Identity Center pueden rastrearse en AWS CloudTrail. En la sección `onBehalfOf` del evento de CloudTrail se muestra el ID de usuario de IAM Identity Center y el ARN del almacén de identidades. En el siguiente ejemplo se muestra un fragmento de un evento de CloudTrail que muestra la sección `onBehalfOf` con el ID de usuario de IAM Identity Center de `a1b2c3d4-5678-90ab-cdef-EXAMPLE11111` y el ARN del almacén de identidades de `arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2`.

```
{
            "eventVersion":"1.10",
            "userIdentity":{
            "type":"AssumedRole",
            ...
            },
            "onBehalfOf":{
            "userId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "identityStoreArn":"arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2"
            }
            },
            "eventTime":"2025-01-13T04:46:27Z",
            "eventSource":"redshift-data.amazonaws.com",
            "eventName":"ExecuteStatement",
            "awsRegion":"us-east-1"
            }
```

Puede ejecutar el siguiente comando SQL para comprobar la consulta enviada por el usuario de IAM Identity Center. En este ejemplo, el correo electrónico registrado en Identity Center es `username@example.com`.

```
SELECT
    h.query_id,
    h.database_name,
    h.status,
    h.query_text,
    u.usename,
    h.start_time,
    h.end_time
FROM
    sys_query_history h
LEFT JOIN
    pg_user u
ON
    h.user_id = u.usesysid
where u.usename='awsidc:username@example.com'    
ORDER BY
    h.start_time DESC;
```