

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

# Gerar as credenciais de banco de dados para uma identidade do IAM usando a CLI ou a API do Amazon Redshift
<a name="generating-iam-credentials-cli-api"></a>

Para gerar de modo programático as credenciais temporárias de usuário de banco de dados, o Amazon Redshift fornece o comando [get-cluster-credentials](https://docs.aws.amazon.com/cli/latest/reference/redshift/get-cluster-credentials.html) para a operação de API AWS Command Line Interface (AWS CLI) e [GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html). Ou você pode configurar seu cliente SQL com drivers JDBC ou ODBC do Amazon Redshift que gerenciam o processo de chamada da operação `GetClusterCredentials`, recuperando as credenciais do usuário do banco de dados e estabelecendo uma conexão entre seu cliente SQL e seu banco de dados Amazon Redshift. Para obter mais informações, consulte [Opções JDBC e ODBC para criar credenciais de usuário de banco de dados](options-for-providing-iam-credentials.md#jdbc-and-odbc-options-for-database-credentials).

**nota**  
Recomendamos usar os drivers JDBC ou ODBC do Amazon Redshift para gerar credenciais de usuário de banco de dados.

Nesta seção, você encontrará etapas que permitirão chamar a operação `GetClusterCredentials` ou o comando get-cluster-credentials de modo programático, recuperar credenciais de usuário de banco de dados e conectar-se ao banco de dados.

**Para gerar e usar credenciais de banco de dados temporárias**

1. Crie ou modifique um usuário ou um perfil com as permissões necessárias. Para obter mais informações sobre as permissões do IAM, consulte [Etapa 3: criar um perfil do IAM com permissões para chamar GetClusterCredentialsWithIAM ou GetClusterCredentials](generating-iam-credentials-steps.md#generating-iam-credentials-role-permissions).

1. Como um usuário ou um perfil do IAM que você autorizou na etapa anterior, execute o comando da CLI get-cluster-credentials ou chame a operação de API `GetClusterCredentials` e forneça os seguintes valores:
   + **Identificador de cluster** – O nome do cluster que contém o banco de dados.
   + **Nome do usuário do banco de dados** – O nome de um usuário de banco de dados novo ou existente.
     + Se o usuário não existir no banco de dados e AutoCreate for definido como true, um novo usuário será criado com PASSWORD desabilitado.
     +  Se o usuário não existir e AutoCreate for false, a solicitação apresentará falha. 
     + Neste exemplo, o nome de usuário de banco de dados é `temp_creds_user`. 
   +  **Autocriar ** – (Opcional) Crie um novo usuário se o nome de usuário do banco de dados não existir.
   +  **Nome do banco de dados** – (opcional) O nome do banco de dados no qual o usuário está autorizado a fazer logon. Se o nome do banco de dados não for especificado, o usuário poderá fazer logon em qualquer banco de dados de cluster.
   +  **Grupos de banco de dados** – (opcional) Uma lista de grupos de usuários de banco de dados existentes. Após login bem-sucedido, o usuário do banco de dados será adicionado aos grupos de usuários especificados. Se nenhum grupo for especificado, o usuário somente terá permissões de PUBLIC. Os nomes de grupos de usuários devem corresponder aos ARNs de recursos dbgroup especificados na política do IAM anexada ao usuário ou perfil. 
   +  **Tempo de expiração** – (Opcional) O tempo, em segundos, até que as credenciais temporárias expirem. Você pode especificar um valor entre 900 segundos (15 minutos) e 3600 segundos (60 minutos). O padrão é 900 segundos.

1. O Amazon Redshift verifica se o usuário tem permissão para chamar a operação `GetClusterCredentials` com os recursos especificados. 

1. O Amazon Redshift retorna uma senha temporária e o nome de usuário do banco de dados.

   O exemplo a seguir usa o Amazon Redshift CLI para gerar credenciais de banco de dados temporárias para um usuário existente denominado `temp_creds_user`.

   ```
   aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --db-name exampledb --duration-seconds 3600
   ```

   O resultado é conforme se segue.

   ```
   {
     "DbUser": "IAM:temp_creds_user", 
     "Expiration": "2016-12-08T21:12:53Z", 
     "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="
   }
   ```

   O exemplo a seguir usa o Amazon Redshift CLI com autocreate para gerar credenciais de banco de dados temporárias para um novo usuário e adicionar o usuário ao grupo `example_group`.

   ```
   aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --auto-create --db-name exampledb --db-groups example_group --duration-seconds 3600
   ```

   O resultado é conforme se segue.

   ```
   {
     "DbUser": "IAMA:temp_creds_user:example_group", 
     "Expiration": "2016-12-08T21:12:53Z", 
     "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="
   }
   ```

1. Estabeleça uma conexão de autenticação Secure Socket Layer (SSL) com o cluster Amazon Redshift e envie uma solicitação de login com o nome de usuário e a senha da resposta `GetClusterCredentials`. Inclua o prefixo `IAM:` ou `IAMA:` com o nome de usuário; por exemplo, `IAM:temp_creds_user` ou `IAMA:temp_creds_user`.
**Importante**  
Configure o cliente SQL para exigir o SSL. Caso contrário, se o cliente SQL tentar se conectar automaticamente com o SSL, ele poderá retornar a não SSL se houver qualquer tipo de falha. Nesse caso, a primeira tentativa de conexão poderá falhar porque as credenciais estão expiradas ou são inválidas e, depois, a segunda tentativa de conexão falhará porque a conexão não é SSL. Se isso ocorrer, pode ser que a primeira mensagem não apareça. Para obter mais informações sobre como se conectar ao cluster usando o SSL, consulte [Configurar as opções de segurança para conexões](connecting-ssl-support.md).

1. Se a conexão não usar SSL, a tentativa de conexão apresentará falha. 

1. O cluster envia uma solicitação `authentication` ao cliente SQL. 

1. Em seguida, o cliente SQL envia uma senha temporária ao cluster. 

1. Se a senha for válida e não tiver expirado, o cluster concluirá a conexão. 