Configurar a autenticação e o SSL - Amazon Redshift

Configurar a autenticação e o SSL

Para proteger os dados contra acesso não autorizado, os armazenamentos de dados do Amazon Redshift exigem que todas as conexões sejam autenticadas usando credenciais do usuário. Alguns armazenamentos de dados também exigem conexões a serem feitas através do protocolo Secure Sockets Layer (SSL) com ou sem autenticação unidirecional.

O driver JDBC do Amazon Redshift versão 2.1 fornece suporte completo a esses protocolos de autenticação.

A versão SSL que o driver suporta depende da versão JVM que você está usando. Para obter informações sobre as versões SSL compatíveis com cada versão do Java, consulte Diagnosticar TLS, SSL e HTTPS no Blog de gerenciamento de produtos do grupo de plataformas Java.

A versão SSL usada para a conexão é a versão mais alta aceita pelo driver e pelo servidor, que é determinada no momento da conexão.

Configure o driver JDBC versão 2.1 do Amazon Redshift para autenticar a conexão de acordo com os requisitos de segurança do servidor do Redshift ao qual você está se conectando.

Você deve sempre fornecer seu nome de usuário e senha do Redshift para autenticar a conexão. Se o SSL estiver habilitado e for necessário no servidor, também poderá ser necessário configurar o driver para se conectar por meio do SSL. Você deve sempre fornecer seu nome de usuário e senha do Amazon Redshift para autenticar a conexão. ...

Você fornece as informações de configuração para o driver no URL de conexão. Para obter mais informações sobre a sintaxe do URL de conexão, consulte Construir o URL de conexão.

SSL indica TLS/SSL, ambos Transport Layer Security e Secure Sockets Layer. O driver suporta versões padrão do setor de TLS/SSL.

Usar somente nome de usuário e senha

Se o servidor ao qual você está se conectando não usar SSL, só será necessário fornecer seu nome de usuário e senha do Redshift para autenticar a conexão.

Como configurar a autenticação usando apenas o nome de usuário e a senha do Redshift
  1. Defina a propriedade UID ao seu nome de usuário do Redshift para acessar o servidor do Amazon Redshift.

  2. Defina a propriedade PWD como a senha correspondente ao seu nome de usuário do Redshift.

Usar SSL sem verificação de identidade

Se o servidor ao qual você está se conectando usar SSL, mas não exigir verificação de identidade, você poderá configurar o driver para usar uma fábrica SSL não validada.

Para configurar uma conexão SSL sem verificação de identidade
  1. Defina a propriedade UID ao seu nome de usuário do Redshift para acessar o servidor do Amazon Redshift.

  2. Defina a propriedade PWD como a senha correspondente ao seu nome de usuário do Redshift.

  3. Defina a propriedade SSLFactory como com.amazon.redshift.ssl.NonValidatingFactory.

Usar autenticação SSL unidirecional

Se o servidor ao qual você está se conectando usar SSL e tiver um certificado, você poderá configurar o driver para verificar a identidade do servidor usando a autenticação unidirecional.

A autenticação unidirecional requer um certificado SSL assinado e confiável para verificar a identidade do servidor. Você pode configurar o driver para usar um certificado específico ou acessar um TrustStore que contém o certificado apropriado. Se você não especificar um certificado ou TrustStore, o driver usará o Java TrustStore padrão (normalmente jssecacerts ou cacerts).

Para configurar a autenticação SSL unidirecional
  1. Defina a propriedade UID ao seu nome de usuário do Redshift para acessar o servidor do Amazon Redshift.

  2. Defina a propriedade PWD como a senha correspondente ao seu nome de usuário do Redshift.

  3. Defina a propriedade SSL como true.

  4. Defina a propriedade SSLRootCert como o local do certificado CA raiz.

  5. Se você não estiver usando um dos Java TrustStores padrão, execute uma das seguintes ações:

    • Para especificar um certificado de servidor, defina a propriedade SSLRootCert como o caminho completo do certificado.

    • Para especificar um TrustStore, faça o seguinte:

      1. Utilize o programa keytool para adicionar o certificado de servidor à TrustStore que pretende utilizar.

      2. Especifique a TrustStore e a senha a serem usadas ao iniciar a aplicação Java usando o driver. Por exemplo:

        -Djavax.net.ssl.trustStore=[TrustStoreName] -Djavax.net.ssl.trustStorePassword=[TrustStorePassword] -Djavax.net.ssl.trustStoreType=[TrustStoreType]
  6. Escolha uma:

    • Para validar o certificado, defina a propriedade SSLMode como verify-ca.

    • Para validar o certificado e verificar o nome do host no certificado, defina a propriedade SSLMode como verify-full.

Configurar a autenticação do IAM

Se você estiver se conectando a um servidor do Amazon Redshift usando a autenticação do IAM, defina as propriedades a seguir como parte da cadeia de conexão da fonte de dados.

Para obter mais informações sobre a autenticação do IAM, consulte Gerenciamento de Identidade e Acesso no Amazon Redshift.

Para usar a autenticação do IAM, use um dos seguintes formatos de string de conexão:

String de conexão Descrição

jdbc:redshift:iam:// [host]:[port]/[db]

Uma string de conexão regular. O driver infere o ClusterID e a região do host.

jdbc:redshift:iam:// [cluster-id]: [region]/[db]

O driver recupera informações do host, dado o ClusterID e a Região.

jdbc:redshift:iam:// [host]/[db]

O driver usa como padrão a porta 5439 e infere ClusterID e Região do host. Dependendo da porta selecionada ao criar, modificar ou migrar o cluster, permita o acesso à porta selecionada.

Especificar perfis

Se você estiver usando a autenticação do IAM, poderá especificar quaisquer propriedades de conexão adicionais obrigatórias ou opcionais sob um nome de perfil. Ao fazer isso, você pode evitar colocar certas informações diretamente na cadeia de conexão. Você especifica o nome do perfil na cadeia de conexão usando a propriedade Perfil.

Os perfis podem ser adicionados ao arquivo de credenciais AWS. O local padrão para esse arquivo é ~/.aws/credentials.

Você pode alterar o valor padrão, definindo o caminho na seguinte variável de ambiente: AWS_CREDENTIAL_PROFILES_FILE

Para obter mais informações sobre perfis, consulte Trabalhar com credenciais da AWS no AWS SDK for Java.

Usar credenciais de perfil da instância

Se você estiver executando uma aplicação em uma instância do Amazon EC2 associada a uma função do IAM, você poderá se conectar usando as credenciais do perfil da instância.

Para fazer isso, use um dos formatos de string de conexão do IAM na tabela anterior e defina a propriedade de conexão dbuser como o nome de usuário do Amazon Redshift que você está se conectando como.

Para obter mais informações sobre perfis de instância, consulte Gerenciamento de acesso no Manual do usuário do IAM.

Usar provedores de credenciais.

O driver também oferece suporte a plugins de provedores de credenciais dos seguintes serviços:

  • Serviço de Federação do Active Directory (AD FS)

  • Serviço JSON Web Tokens (JWT)

  • Serviço Microsoft Azure Active Directory (AD) e navegador e serviço Microsoft Azure Active Directory (AD)

  • Serviço Okta

  • Serviço PingFederate

  • Navegador SAML para serviços SAML como Okta, Ping ou ADFS

Se você usar um desses serviços, o URL de conexão precisará especificar as seguintes propriedades:

  • Plugin_Name — O caminho de classe totalmente qualificado para sua classe de plug-in do provedor de credenciais.

  • IdP_Host: — O host do serviço que você está usando para autenticar no Amazon Redshift.

  • IdP_Port — A porta na qual o host do serviço de autenticação escuta. Não é necessário para o Okta.

  • Usuário — Nome do usuário do servidor idp_host.

  • Senha — A senha associada ao nome do usuário idp_host.

  • DbUser — O nome de usuário do Amazon Redshift em que você está se conectando.

  • SSL_Insecure — Indica se o certificado do servidor IDP deve ser verificado.

  • Client_ID — O ID do cliente associado ao nome de usuário no portal do Azure AD. Usado somente para o Azure AD.

  • Client_Secret — O segredo do cliente associado ao ID do cliente no portal Azure AD. Usado somente para o Azure AD.

  • IdP_Tenant — O ID de locatário do Azure AD para sua aplicação Amazon Redshift. Usado somente para o Azure AD.

  • App_ID — O ID do aplicativo Okta para sua aplicação Amazon Redshift. Usado apenas para o Okta.

  • App_Name — O nome da aplicação Okta opcional para sua aplicação Amazon Redshift. Usado apenas para o Okta.

  • Partner_SPID — O valor SPID de parceiro opcional (ID do provedor de serviços). Usado somente para o PingFederate.

Se você estiver usando um plug-in de navegador para um desses serviços, o URL de conexão também pode incluir:

  • Login_URL — O URL do recurso no site do provedor de identidades ao usar o Security Assertion Markup Language )SAML) ou os serviços do Azure AD por meio de um plug-in do navegador. Esse parâmetro é necessário se você estiver usando um plug-in do navegador.

  • Listen_Port — A porta que o driver usa para obter a resposta SAML do provedor de identidades ao usar os serviços SAML ou Azure AD por meio de um plug-in de navegador.

  • IdP_Response_Timeout — A quantidade de tempo, em segundos, que o driver aguarda pela resposta SAML do provedor de identidades ao usar os serviços SAML ou Azure AD por meio de um plug-in de navegador.

Para obter mais informações sobre as propriedades de string de conexão, consulte Opções para a configuração do driver JDBC versão 2.1.