

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

# Conecte-se ao Redshift com sessões de perfil do IAM aprimoradas com identidade
<a name="identity-center-authentication"></a>

É possível usar o Centro de Identidade do IAM para oferecer acesso federado a clusters e grupos de trabalho sem servidor do Amazon Redshift. Essa abordagem permite que os usuários se autentiquem usando suas credenciais do Centro de Identidade.

O Amazon Redshift oferece operações de API `GetIdentityCenterAuthToken` para gerar tokens autorizados que contêm informações de identidade do usuário. Essas APIs estão disponíveis para clusters provisionados e grupos de trabalho sem servidor. Os tokens permitem acesso por autenticação única contínuo aos bancos de dados do Amazon Redshift usando a configuração do Centro de Identidade.

## Pré-requisitos
<a name="identity-center-auth-prerequisites"></a>

Antes de usar autenticação do Centro de Identidade com o Amazon Redshift, verifique se você tem o seguinte:
+ **Configuração do Centro de Identidade:** sua conta deve ter o Centro de Identidade do IAM configurado com identidades de usuário e atribuições de aplicações apropriadas. Para ver instruções de configuração, consulte [Configurar o Centro de Identidade do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html).
**Importante**  
Se quiser se conectar ao Redshift, você deve usar o escopo redshift:connect.
+ **Credenciais com identidade aprimorada:** sua aplicação deve usar credenciais aprimoradas com identidade que contêm informações de identidade de usuário incorporadas. Para ter mais informações, consulte [Usar sessões de perfil do IAM aprimoradas com identidade.](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-identity-enhanced-iam-role-sessions.html)
+ **Permissões do IAM:** seu usuário ou perfil do IAM deve ter permissões para chamar a API `GetIdentityCenterAuthToken` e acessar os clusters ou grupos de trabalho especificados. Permissões obrigatórias:
  + Para clusters provisionados: `redshift:GetIdentityCenterAuthToken` em ARNs de cluster (formato: `arn:aws:redshift:region:account:cluster:cluster-name`).
  + Para grupos de trabalho sem servidor: `redshift-serverless:GetIdentityCenterAuthToken` em ARNs de grupos de trabalho (formato: `arn:aws:redshift-serverless:region:account:workgroup/workgroup-name`).
+ **Drivers compatíveis:** use drivers JDBC ou ODBC do Amazon Redshift que aceitem tokens autorizados do Centro de Identidade:
  + Drivers JDBC: consulte [Instalar e configurar o driver JDBC do Amazon Redshift, versão 2.0](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-install.html)
  + Drivers ODBC: consulte [Instalar e configurar o driver ODBC do Amazon Redshift, versão 2.0](https://docs.aws.amazon.com/redshift/latest/mgmt/odbc20-install.html)

## Como funciona a autenticação do Centro de Identidade
<a name="identity-center-auth-overview"></a>

A autenticação do Centro de Identidade para o Amazon Redshift usa o seguinte fluxo de trabalho:

1. A aplicação chama a API `GetIdentityCenterAuthToken` usando credenciais com identidade aprimorada que contêm informações de identidade do usuário incorporadas.

1. O Amazon Redshift valida a identidade do Centro de Identidade e gera um token autorizado criptografado com escopo para clusters ou grupos de trabalho específicos. Consulte exemplos de política do IAM.

1. A aplicação usa esse token para se conectar ao cluster ou grupo de trabalho especificado do Amazon Redshift.

1. O plano de dados do Amazon Redshift valida o token e concede acesso com base nas permissões do usuário do Centro de Identidade dentro da aplicação do Centro de Identidade.

**Importante**  
Essa API exige credenciais aprimoradas com identidade. Para ter mais informações, consulte [Usar sessões de perfil do IAM aprimoradas com identidade.](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-identity-enhanced-iam-role-sessions.html)  
Se você chamar a API sem credenciais aprimoradas com identidade, receberá o erro `UnsupportedOperationFault`.

## Operações de API GetIdentityCenterAuthToken
<a name="identity-center-auth-apis"></a>

O Amazon Redshift oferece duas operações de API `GetIdentityCenterAuthToken` distintas: uma para clusters provisionados e outra para grupos de trabalho sem servidor. Ambas as operações têm o mesmo nome, mas aceitam parâmetros diferentes, dependendo do tipo de recurso de destino.

### GetIdentityCenterAuthToken para clusters provisionados
<a name="provisioned-identity-center-auth"></a>

Para clusters provisionados do Amazon Redshift, use a API `GetIdentityCenterAuthToken` no serviço Amazon Redshift para gerar um token autorizado.

#### Sintaxe da solicitação
<a name="provisioned-request-syntax"></a>

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

#### Parâmetros de solicitação
<a name="provisioned-request-parameters"></a>

ClusterIds  
Uma lista de identificadores de clusters do Amazon Redshift que o token terá autorização para acessar. O token só pode ser usado para autenticação nos clusters especificados nessa lista.  
Tipo: matriz de strings  
Restrições de tamanho: no mínimo 1 item. Máximo de 20 itens.  
Obrigatório: Sim

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

**Exemplo: obter token autorizado para um único cluster**

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

**Exemplo: obter token autorizado para um vários clusters**

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

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

Para grupos de trabalho do Amazon Redshift sem servidor, use a API `GetIdentityCenterAuthToken` no serviço Amazon Redshift sem servidor para gerar um token autorizado.

#### Sintaxe da solicitação
<a name="serverless-request-syntax"></a>

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

#### Parâmetros de solicitação
<a name="serverless-request-parameters"></a>

WorkgroupNames  
Uma lista de nomes de grupo de trabalho do Amazon Redshift sem servidor que o token tem autorização para acessar. O token só pode ser usado para autenticação nos grupos de trabalho especificados nessa lista.  
Tipo: matriz de strings  
Restrições de tamanho: no mínimo 1 item. Máximo de 20 itens.  
Obrigatório: Sim

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

**Exemplo: obter token autorizado para um único grupo de trabalho**

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

**Exemplo: obter token autorizado para vários grupos de trabalho**

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

### Sintaxe da resposta
<a name="identity-center-auth-response"></a>

Ambas as APIs exibem a mesma estrutura de resposta:

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

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

AuthorizedToken  
Um token autorizado criptografado que contém as informações de identidade do usuário e a lista de clusters ou grupos de trabalho autorizados. Esse token deve ser tratado como dados sensíveis.  
Tipo: string

ExpirationTime  
A data e hora de expiração do token, em UTC. Os tokens são válidos por uma hora a partir do momento em que são gerados.  
Tipo: Timestamp

#### Exemplo de resposta
<a name="identity-center-response-example"></a>

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

## Integração de drivers
<a name="identity-center-auth-driver-integration"></a>

Os drivers do Amazon Redshift permitem autenticação do Centro de Identidade por meio do uso direto de tokens:

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

Depois de chamar a API `GetIdentityCenterAuthToken` para obter um token, use o `IdpTokenAuthPlugin` com o tipo de token `SUBJECT_TOKEN`.

Configuração de conexão:

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

Para ter informações detalhadas sobre os plug-ins de autenticação e a configuração de drivers do Centro de Identidade, consulte [Conectar-se a um cluster do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-to-cluster.html).

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

Exemplo de código Java para estabelecer conexão usando a autenticação do Centro de Identidade:

```
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 política do IAM
<a name="identity-center-auth-iam-permissions"></a>

Para usar a autenticação do Centro de Identidade com o Amazon Redshift, é necessário ter permissões específicas do IAM, além das permissões padrão necessárias para estabelecer conexão com clusters e grupos de trabalho do Amazon Redshift.

### Permissões de API
<a name="identity-center-auth-iam-api-permissions"></a>

Para clusters provisionados, a sessão de perfil do IAM aprimorada deve ter:
+ `redshift:GetIdentityCenterAuthToken` nos ARNs de cluster (formato: `arn:aws:redshift:region:account:cluster:cluster-name`).

Para grupos de trabalho sem servidor, sua sessão de perfil do IAM aprimorada deve ter:
+ `redshift-serverless:GetIdentityCenterAuthToken` nos ARNs de grupo de trabalho (formato: `arn:aws:redshift-serverless:region:account:workgroup/workgroup-name`).

### Políticas de exemplo do IAM.
<a name="identity-center-auth-iam-policy-examples"></a>

**Exemplo de política para clusters provisionados:**

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

**Exemplo de política para grupos de trabalho sem servidor:**

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

**Exemplo de política para vários 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/*"
            ]
        }
    ]
}
```

## Disponibilidade regional
<a name="identity-center-auth-regional-availability"></a>

A autenticação do Centro de Identidade está disponível nas seguintes regiões da AWS:
+ Regiões comerciais: todas as regiões compatíveis do Amazon Redshift.
+ AWS GovCloud: disponível na us-gov-east-1 e na us-gov-west-1.
+ Regiões da China: disponível na cn-north-1 e na cn-northwest-1.

**nota**  
A disponibilidade de recursos pode variar durante o lançamento inicial.