

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Usar a API de dados com propagação de identidade confiável
<a name="data-api-trusted-identity-propagation"></a>

Como administrador de contas do Amazon Redshift, você pode integrar o cluster ou o grupo de trabalho do Amazon Redshift ao Centro de Identidade do AWS IAM, o que ajuda a gerenciar o acesso do quadro de funcionários ao Amazon Redshift com autenticação única. Para obter mais informações, consulte [Configuração da integração do Centro de Identidade do AWS IAM com o Amazon Redshift](redshift-iam-access-control-idp-connect-console.md). A API de dados do Amazon Redshift comporta a propagação de identidades de usuário do Centro de Identidade do IAM para um cluster ou um grupo de trabalho do Amazon Redshift e para outros serviços, como o AWS Lake Formation, ao longo da cadeia. É possível configurar e consultar usando a API de dados seguindo as etapas em [Access AWS services programmatically using trusted identity propagation](https://aws.amazon.com/blogs//security/access-aws-services-programmatically-using-trusted-identity-propagation/).

Ao chamar a API de dados usando uma identidade de usuário do Centro de Identidade do IAM por meio de uma sessão de perfil do IAM com identidade aprimorada, você só pode acessar a declaração e o respectivo resultado usando o mesmo usuário do Centro de Identidade do IAM. Por exemplo, o comando AWS CLI a seguir chama a operação `execute-statement` para executar um comando SQL com propagação de identidade confiável.

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

O comando AWS CLI a seguir chama a operação `batch-execute-statement` para executar dois comandos SQL.

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

Para acessar declarações com `cancel-statement`, `describe-statement`, `get-statement-result` e `get-statement-result-v2` enviadas por sessões de perfil do IAM com identidade aprimorada, o usuário do Centro de Identidade do IAM e o perfil do IAM devem corresponder às credenciais usadas para executar `execute-statment` ou `batch-execute-statement`. Por exemplo, o comando AWS CLI a seguir exibe os resultados de uma declaração SQL.

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

Para listar declarações, um parâmetro `cluster-identifier` ou `workgroup-name` deve ser fornecido para garantir que o usuário do Centro de Identidade do IAM tenha acesso somente às aplicações do Centro de Identidade do IAM do Amazon Redshift às quais ele está atribuído. Por exemplo, o comando AWS CLI a seguir lista as declarações para um cluster específico.

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

Também é possível invocar as operações da API de dados que acessam objetos de banco de dados em um cluster ou um grupo de trabalho usando propagação de identidade confiável. Isso inclui as operações `list-databases`, `list-schemas`, `list-tables` e `describe-table`.

As chamadas de API feitas pelo usuário do Centro de Identidade do IAM podem ser rastreadas no AWS CloudTrail. Uma seção `onBehalfOf` do evento do CloudTrail mostra o ID de usuário do Centro de Identidade do IAM e o ARN do armazenamento de identidades. O exemplo a seguir mostra um trecho de um evento do CloudTrail que exibe a seção `onBehalfOf` com o ID de usuário `a1b2c3d4-5678-90ab-cdef-EXAMPLE11111` do Centro de Identidade do IAM e o ARN `arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2` do armazenamento de identidades.

```
{
            "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"
            }
```

É possível executar o comando SQL a seguir para conferir a consulta enviada pelo usuário do Centro de Identidade do IAM. Neste exemplo, o e-mail registrado no Centro de Identidade é `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;
```