

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

# Azure
<a name="setup-identity-provider-azure"></a>

Você pode usar o Microsoft Azure AD como um provedor de identidade (IdP) para acessar seu cluster do Amazon Redshift. Este tutorial mostra como usar o Azure como provedor de identidades (IdP) para acessar clusters do Amazon Redshift.

Para saber como federar o acesso do Amazon Redshift com o logon único do Microsoft Azure AD, assista ao vídeo a seguir. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/aXs9hEgJCss/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/aXs9hEgJCss)


## Etapa 1: configurar o Azure e sua conta da AWS para que confiem um no outro
<a name="setup-identity-provider-azure-trust"></a>

O procedimento a seguir descreve como configurar uma relação de confiança.

**Para configurar o Azure AD e sua conta da AWS para que confiem um no outro**

1. Crie ou use um cluster existente do Amazon Redshift para os usuários do Azure AD se conectarem. Para configurar a conexão, certas propriedades deste cluster são necessárias, como o identificador de cluster. Para obter mais informações, consulte [Criar um cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/create-cluster.html).

1. Configure grupos e usuários do Diretório Ativo do Azure usados para a AWS no portal do Microsoft Azure.

1. Adicione o Amazon Redshift como uma aplicação empresarial no portal do Microsoft Azure para usar para logon único no AWS Console e logon federado no Amazon Redshift. Escolha **Enterprise application (Aplicativo empresarial)**.

1. Escolha **\$1New application (\$1Novo aplicativo)**. A página Adicionar um aplicativo é exibida.

1. Pesquise **AWS** no campo de pesquisa.

1. Escolha **Amazon Web Services (AWS)** e escolha **Adicionar**. Isso cria a aplicação da AWS.

1. Em **Manage (Gerenciar)**, escolha **Single sign-on (Logon único)**.

1. Escolha **SAML**. O Amazon Web Services (AWS) \$1 A página de logon baseada em SAML é exibida.

1. Escolha **Yes (Sim)** para prosseguir para a página Configurar logon único com SAML. Esta página mostra a lista de atributos pré-configurados relacionados à autenticação única.

1. Em **Basic SAML Configuration (Configuração básica de SAML)**, escolha o ícone de edição e **Save (Salvar)**.

1. Quando você estiver configurando mais de um aplicativo, forneça um valor de identificador. Por exemplo, digite ***https://signin.aws.amazon.com/saml\$12***. Observe que a partir do segundo aplicativo em diante, use esse formato com um sinal \$1 para especificar um valor SPN exclusivo.

1. Na seção **User Attributes and Claims (Atributos de usuário e reivindicações)**, escolha o ícone de edição.

   Por padrão, as reivindicações UID (Unique User Identifier), Role, RoleSessionName e SessionDuration são pré-configuradas.

1. Escolha **\$1 Add new claim (\$1 Adicionar nova reivindicação)** para adicionar uma reivindicação aos usuários do banco de dados.

   Em **Nome**, digite **DbUser**.

   Em **Namespace**, insira **https://redshift.amazon.com/SAML/Attributes**.

   Em **Origem**, escolha **Atributo**.

   Em **Source attribute (Atributo de origem)**, escolha **user.userprincipalname**. Selecione **Salvar**.

1. Escolha **\$1 Add new claim (\$1 Adicionar nova reivindicação)** para adicionar uma reivindicação ao AutoCreate.

   Em **Nome**, digite **AutoCreate**.

   Em **Namespace**, insira **https://redshift.amazon.com/SAML/Attributes**.

   Em **Origem**, escolha **Atributo**.

   Em **Source attribute (Atributo de origem)**, escolha **"true"**. Selecione **Salvar**.

   Aqui, `123456789012` é sua conta da AWS, *`AzureSSO`* é o perfil do IAM que você criou e *`AzureADProvider`* é o provedor do IAM.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/setup-identity-provider-azure.html)

1. Em **Registro de aplicativo > ***your-application-name*** > Autenticação**, adicione **Aplicativo móvel e desktop**. Especifique o URL como http://localhost/redshift/.

1. Na seção **SAML Signing Certificate (Certificado de assinatura SAML)**, escolha **Download (Fazer download)** para fazer download e salvar o arquivo XML de metadados de federação para usar ao criar um provedor de identidade SAML do IAM. Esse arquivo é usado para criar a identidade federada da autenticação única.

1. Crie um provedor de identidade SAML do IAM no console do IAM. O documento de metadados fornecido é o arquivo XML de metadados da federação que você salvou quando configurou o Azure Enterprise Application. Para obter etapas detalhadas, consulte [Criar e gerenciar um provedor de identidade do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html#idp-manage-identityprovider-console) no *Manual do usuário do IAM*. 

1. Crie uma função do IAM para a federação do SAML 2.0 no console do IAM. Para obter etapas detalhadas, consulte [Criar uma função para o SAML](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html#idp_saml_Create) no *Manual do usuário do IAM*. 

1. Crie uma política do IAM que você possa anexar à função do IAM criada para a federação do SAML 2.0 no console do IAM. Para obter etapas detalhadas, consulte [Criar políticas do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start) no *Manual do usuário do IAM*.

   Modifique a seguinte política (no formato JSON) para o seu ambiente: 
   + Substitua a região da AWS do seu cluster por `us-west-1`. 
   + Substitua a conta da AWS por *`123456789012`*. 
   + Substitua seu identificador de cluster (ou `*` para todos os clusters) por *`cluster-identifier`*. 
   + Substitua seu banco de dados (ou `*` para todos os bancos de dados) por *`dev`*. 
   + Substitua o identificador exclusivo de sua função do IAM por *`AROAJ2UCCR6DPCEXAMPLE`*. 
   + Substitua o domínio de e-mail do locatário ou da empresa por `example.com`. 
   + Substitua o grupo de banco de dados ao qual você planeja atribuir o usuário por *`my_dbgroup`*. 

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "redshift:GetClusterCredentials",
               "Resource": [
                   "arn:aws:redshift:us-west-1:123456789012:dbname:cluster-identifier/dev",
                   "arn:aws:redshift:us-west-1:123456789012:dbuser:cluster-identifier/${redshift:DbUser}",
                   "arn:aws:redshift:us-west-1:123456789012:cluster:cluster-identifier"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:userid": "AROAJ2UCCR6DPCEXAMPLE:${redshift:DbUser}@example.com"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": "redshift:CreateClusterUser",
               "Resource": "arn:aws:redshift:us-west-1:123456789012:dbuser:cluster-identifier/${redshift:DbUser}"
           },
           {
               "Effect": "Allow",
               "Action": "redshift:JoinGroup",
               "Resource": "arn:aws:redshift:us-west-1:123456789012:dbgroup:cluster-identifier/my_dbgroup"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "redshift:DescribeClusters",
                   "iam:ListRoles"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

   Esta política concede permissões da seguinte forma:
   + A primeira seção concede permissão à operação de API do `GetClusterCredentials` para obter credenciais temporárias para o cluster especificado. Neste exemplo, o recurso é `cluster-identifier` com banco de dados *`dev`*, na conta *`123456789012`* e na região da AWS *`us-west-1`*. A cláusula `${redshift:DbUser}` permite que apenas os usuários que correspondam ao valor de `DbUser` especificado no Azure AD se conectem.
   + A cláusula de condição impõe que apenas determinados usuários obtêm credenciais temporárias. Esses são os usuários da função especificada pelo ID exclusivo de função *`AROAJ2UCCR6DPCEXAMPLE`* na conta do IAM identificada por um endereço de e-mail no domínio de e-mail da empresa. Para obter mais informações sobre IDs exclusivos, consulte [IDs exclusivos](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) no *Manual do usuário do IAM*. 

     Sua configuração com seu IdP (neste caso, Azure AD) determina como a cláusula de condição é gravada. Se o e-mail do seu funcionário for `johndoe@example.com`, primeiro defina `${redshift:DbUser}` para o campo super que corresponde ao nome de usuário do funcionário `johndoe`. Então, para fazer essa condição funcionar, defina o campo `RoleSessionName` do AWS SAML como o supercampo que corresponde ao e-mail do funcionário `johndoe@example.com`. Ao adotar essa abordagem, considere o seguinte:
     + Se você definir `${redshift:DbUser}` para ser o e-mail do funcionário, em seguida, remova o `@example.com` no JSON do exemplo para corresponder com o `RoleSessionName`. 
     + Se você definir o `RoleSessionId` para ser apenas o nome de usuário do funcionário, remova o `@example.com` no exemplo para corresponder ao `RoleSessionName`. 
     + No JSON de exemplo, tanto `${redshift:DbUser}` como `RoleSessionName` são definidos como o e-mail do funcionário. Este exemplo JSON usa o nome de usuário do banco de dados Amazon Redshift com `@example.com` para conectar o usuário para acessar o cluster.
   + A segunda seção concede permissão para criar um nome `dbuser` no cluster especificado. Neste JSON de exemplo, ele restringe a criação de `${redshift:DbUser}`. 
   + A terceira seção concede permissão para especificar a qual `dbgroup` um usuário pode ingressar. Neste JSON de exemplo, um usuário pode ingressar no grupo `my_dbgroup` no cluster especificado. 
   + A quarta seção concede permissão para ações que o usuário pode fazer em todos os recursos. Neste JSON de exemplo, ele permite que os usuários chamem `redshift:DescribeClusters` para obter informações do cluster, como o endpoint do cluster, região da AWS e porta. Também permite que os usuários chamem `iam:ListRoles` para verificar quais funções um usuário pode assumir. 

## Etapa 2: configurar JDBC ou ODBC para autenticação no Azure
<a name="setup-identity-provider-azure-auth"></a>

------
#### [ JDBC ]

**Como configurar o JDBC para autenticação no Microsoft Azure AD**
+ Configure seu cliente de banco de dados para se conectar ao cluster por meio do JDBC usando o logon único do Azure AD. 

  Você pode usar qualquer cliente que use um driver JDBC para se conectar usando o logon único do Azure AD ou usar uma linguagem, como Java, para se conectar usando um script. Para obter informações sobre instalação e configuração, consulte [Configurar uma conexão para o driver JDBC versão 2.x para o Amazon Redshift](jdbc20-install.md).

  Por exemplo, você pode usar SQLWorkbench/J como o cliente. Ao configurar o SQLWorkbench/j, a URL do seu banco de dados usa o seguinte formato.

  ```
  jdbc:redshift:iam://cluster-identifier:us-west-1/dev
  ```

  Se você usar o SQLWorkbench/j como o cliente, execute as seguintes etapas:

  1. Inicie o SQL Workbench/J. Na página **Selecionar perfil de conexão** adicione um **Grupo de perfis** chamado **AzureAuth**.

  1. Em **Connection Profile (Perfil de conexão)**, insira **Azure**.

  1. Escolha **Manage Drivers (Gerenciar drivers)** e escolha **Amazon Redshift**. Escolha o ícone **Open Folder (Abrir pasta)** ao lado de **Library (Biblioteca)**, e escolha o arquivo.jar JDBC apropriado. 

  1. Na página **Select Connection Profile (Selecionar perfil de conexão)**, adicione informações ao perfil de conexão da seguinte maneira:
     + Em **User (Usuário)**, insira seu nome de usuário do Microsoft Azure. Este é o nome de usuário da conta do Microsoft Azure que você está usando para o logon único que tem permissão para o cluster que você está tentando autenticar.
     + Em **Password (Senha)**, digite sua senha do Microsoft Azure.
     + Em **Drivers**, escolha **Amazon Redshift (com.amazon.redshift.jdbc.Driver)**.
     + Para **URL**, insira **jdbc:redshift:iam://*your-cluster-identifier*:*your-cluster-region*/*your-database-name***.

  1. Escolha **Extended Properties (Propriedades estendidas)** para adicionar informações adicionais às propriedades de conexão, conforme descrito a seguir.

     Para a configuração de autenticação única do Azure AD, adicione outras informações da seguinte forma:
     + Para **plugin\$1name**, insira **com.amazon.redshift.plugin.AzureCredentialsProvider**. Esse valor especifica para o driver usar o logon único do Azure AD como o método de autenticação. 
     + Para **idp\$1tenant**, insira ***your-idp-tenant***. Usado apenas para o Microsoft Azure AD. Este é o nome do locatário da sua empresa configurado no Azure AD. Esse valor pode ser o nome do locatário ou o ID exclusivo do locatário com hífens.
     + Para **client\$1secret**, insira ***your-azure-redshift-application-client-secret***. Usado apenas para o Microsoft Azure AD. Este é o segredo do seu cliente da aplicação Amazon Redshift que você criou ao definir a configuração do Azure Single Sign-On. Isso só é aplicável ao plug-in com.amazon.redshift.plugin.AzureCredentialsProvider. 
     + Para **client\$1id**, insira ***your-azure-redshift-application-client-id***. Usado apenas para o Microsoft Azure AD. Esta é a ID do cliente (com hifens) da aplicação Amazon Redshift que você criou ao definir sua configuração do Azure Single Sign-On. 

     Para a configuração de autenticação única do Azure AD com MFA, adicione outras informações às propriedades de conexão da seguinte forma:
     + Para **plugin\$1name**, insira **com.amazon.redshift.plugin.BrowserAzureCredentialsProvider**. Isso especifica para o driver usar o método de autenticação única do Azure com MFA. 
     + Para **idp\$1tenant**, insira ***your-idp-tenant***. Usado apenas para o Microsoft Azure AD. Este é o nome do locatário da sua empresa configurado no Azure AD. Esse valor pode ser o nome do locatário ou o ID exclusivo do locatário com hífens.
     + Para **client\$1id**, insira ***your-azure-redshift-application-client-id***. Essa opção é usada apenas para o Microsoft Azure AD. Este é o ID do cliente (com hifens) da aplicação Amazon Redshift que você criou ao definir a configuração de autenticação única do Azure com MFA. 
     + Em **listen\$1port**, insira ***your-listen-port***. Esta é a porta que o servidor local está escutando. O padrão é 7890. 
     + Em **idp\$1response\$1timeout**, insira ***the-number-of-seconds***. Este é o número de segundos a aguardar antes do tempo limite quando o servidor IdP envia de volta uma resposta. O número mínimo de segundos deve ser 10. Se o tempo para estabelecer a conexão for maior do que esse limite, a conexão é cancelada.

------
#### [ ODBC ]

**Como configurar o ODBC para autenticação no Microsoft Azure AD**
+ Configure seu cliente de banco de dados para se conectar ao cluster por meio de ODBC usando seu logon único do Azure AD. 

  O Amazon Redshift fornece drivers ODBC para sistemas operacionais Linux, Windows e macOS. Antes de instalar um driver de ODBC, será necessário determinar se a ferramenta do cliente SQL é de 32 ou 64 bits. Instale o driver de ODBC que corresponde aos requisitos da ferramenta de cliente SQL. 

  No Windows, na página **Amazon Redshift ODBC Driver DSN Setup (Configuração do DSN do driver ODBC do Amazon Redshift)**, em **Connection Settings (Configurações de conexão)**, insira as seguintes informações: 
  + Para **Data Source Name (Nome da fonte de dados)**, insira ***your-DSN***. Isto especifica o nome da fonte de dados usado como o nome do perfil de ODBC. 
  + Em **Auth type** (Tipo de autenticação) para a configuração de autenticação única do Azure AD, escolha **Identity Provider: Azure AD**. Este é o método de autenticação que o driver de ODBC usa para autenticar usando o logon único do Azure.
  + Em **Auth type** (Tipo de autenticação) para a configuração de autenticação única do Azure AD com MFA, escolha **Identity Provider: Browser Azure AD**. Este é o método de autenticação que o driver de ODBC usa para autenticar usando o logon único do Azure com MFA.
  + Para **Cluster ID (ID do cluster)**, insira ***your-cluster-identifier***. 
  + Para **Region (Região)**, insira ***your-cluster-region***.
  + Para **Database (Banco de dados)**, insira ***your-database-name***.
  + Em **User (Usuário)**, insira ***your-azure-username***. Este é o nome de usuário da conta do Microsoft Azure que está sendo usada para logon único que tem permissão para o cluster que você está tentando autenticar. Use isso somente quando **Auth Type (Tipo de autenticação)** for **Identity Provider: Azure AD (Provedor de identidade: Azure AD)**.
  + Em **Password (Senha)**, insira ***your-azure-password***. Use isso somente quando **Auth Type (Tipo de autenticação)** for **Identity Provider: Azure AD (Provedor de identidade: Azure AD)**. 
  + Para **IdP Tenant (Locatário IdP)**, insira ***your-idp-tenant***. Este é o nome do locatário da sua empresa configurado no seu IdP (Azure). Esse valor pode ser o nome do locatário ou o ID exclusivo do locatário com hífens.
  + Para **Azure Client Secret (Segredo do cliente do Azure)**, insira ***your-azure-redshift-application-client-secret***. Este é o segredo do cliente da aplicação Amazon Redshift que você criou ao definir sua configuração de logon único do Azure. 
  + Para **Azure Client ID (ID do cliente do Azure)**, insira ***your-azure-redshift-application-client-id***. Este é o ID do cliente (com hífens) da aplicação Amazon Redshift que você criou ao definir sua configuração do Azure Single Sign-On. 
  + Em **Porta de escuta**, insira ***your-listen-port***. Esta é a porta de escuta padrão que o servidor local está escutando. O padrão é 7890. Isso se aplica somente ao plug-in do Browser Azure AD. 
  + Em **Response Timeout (Tempo limite de resposta)**, insira ***the-number-of-seconds***. Este é o número de segundos a aguardar antes do tempo limite quando o servidor IdP envia de volta uma resposta. O número mínimo de segundos deve ser 10. Se o tempo para estabelecer a conexão for maior do que esse limite, a conexão é cancelada. Esta opção se aplica apenas ao plug-in do Azure AD do navegador.

  No macOS e no Linux, edite o arquivo `odbc.ini` da seguinte forma: 
**nota**  
Nenhuma entrada diferencia letras maiúsculas de minúsculas.
  + Para **clusterid**, insira ***your-cluster-identifier***. Esse é o nome do cluster criado pelo Amazon Redshift.
  + Para **region (região)**, insira ***your-cluster-region***. Esta é a Região da AWS do cluster do Amazon Redshift criado.
  + Para **database (banco de dados)**, insira ***your-database-name***. Este é o nome do banco de dados que você está tentando acessar no cluster do Amazon Redshift.
  + Para **locale (localidade)**, insira **en-us**. Este é o idioma em que as mensagens de erro são exibidas.
  + Para **IAM**, insira **1**. Esse valor especifica ao driver para autenticar usando credenciais do IAM.
  + Em **plugin\$1name** para a configuração de autenticação única do Azure AD, insira **AzureAD**. Isso especifica ao driver para usar o Azure Single Sign-On como o método de autenticação. 
  + Em **plugin\$1name** para a configuração de autenticação única do Azure AD com MFA, insira **BrowserAzureAD**. Isso especifica para o driver usar o logon único do Azure com MFA como o método de autenticação. 
  + Em **uid**, insira ***your-azure-username***. Este é o nome de usuário da conta do Microsoft Azure que você está usando para logon único, que tem permissão para o cluster que você está tentando autenticar. Use isso somente quando **plugin\$1name** for **AzureAD**.
  + Em **pwd**, insira ***your-azure-password***. Use isso somente quando **plugin\$1name** for **AzureAD**. 
  + Para **idp\$1tenant**, insira ***your-idp-tenant***. Este é o nome do locatário da sua empresa configurado no seu IdP (Azure). Esse valor pode ser o nome do locatário ou o ID exclusivo do locatário com hífens.
  + Para **client\$1secret**, insira ***your-azure-redshift-application-client-secret***. Este é o segredo do cliente da aplicação Amazon Redshift que você criou ao definir sua configuração de logon único do Azure. 
  + Para **client\$1id**, insira ***your-azure-redshift-application-client-id***. Este é o ID do cliente (com hífens) da aplicação Amazon Redshift que você criou ao definir sua configuração do Azure Single Sign-On. 
  + Em **listen\$1port**, insira ***your-listen-port***. Esta é a porta que o servidor local está escutando. O padrão é 7890. Isso se aplica ao plug-in do Browser Azure AD.
  + Em **idp\$1response\$1timeout**, insira ***the-number-of-seconds***. Este é o período especificado em segundos para aguardar a resposta do Azure. Esta opção se aplica ao plug-in do Azure AD do navegador.

  No macOS e no Linux, edite também as configurações de perfil para adicionar as exportações a seguir.

  ```
  export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
  ```

  ```
  export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
  ```

------

## Solução de problemas
<a name="setup-identity-provider-azure-auth"></a>

Para solucionar problemas com o plug-in Browser Azure AD, considere o seguinte:
+ Para usar o plug-in Browser Azure AD, você deve definir o URL de resposta especificado na solicitação para corresponder ao URL de resposta configurado para seu aplicativo. Navegue até a página **Configurar o logon único com SAML** no portal do Microsoft Azure. Verifique se o **URL de resposta** está definido como http://localhost/redshift/.
+ Se você receber um erro de locatário IdP, verifique se o nome do **Locatário IdP** corresponde ao nome de domínio usado inicialmente para configurar o Active Directory no Microsoft Azure.

  No Windows, navegue até a seção **Configurações de conexão** da página **Configuração do DSN do driver ODBC do Amazon Redshift**. Verifique se o nome do locatário da empresa configurada no seu IdP (Azure) corresponde ao nome de domínio usado inicialmente para configurar o Active Directory no Microsoft Azure.

  No macOS e no Linux, localize o arquivo *odbc.ini*. Verifique se o nome do locatário da empresa configurada no seu IdP (Azure) corresponde ao nome de domínio usado inicialmente para configurar o Active Directory no Microsoft Azure.
+ Se você receber um erro informando que o URL de resposta especificado na solicitação não corresponde aos URLs de resposta configurados para seu aplicativo, verifique se os **URIs de redirecionamento** são os mesmos que o URL de resposta.

  Navegue até a página de **Registro de aplicativo** do seu aplicativo no portal do Microsoft Azure. Verifique se os URIs de redirecionamento correspondem ao URL de resposta.
+ Se receber a resposta inesperada: erro não autorizado, verifique se você concluiu a configuração de **Aplicativos móveis e de desktop**.

  Navegue até a página de **Registro de aplicativo** do seu aplicativo no portal do Microsoft Azure. Navegue até **Autenticação** e verifique se você configurou **Aplicativos móveis e de desktop** para usar http://localhost/redshift/ como URIs de redirecionamento.