Opções para fornecer credenciais do IAM - Amazon Redshift

Opções para fornecer credenciais do IAM

Para fornecer credenciais do IAM para uma conexão JDBC ou ODBC, escolha uma das opções a seguir.

  • Perfil da AWS

    Como alternativa ao fornecimento de valores de credenciais sob a forma de configurações JDBC ou ODBC, você pode colocar os valores em um perfil nomeado. Para obter mais informações, consulte Usar um perfil de configuração.

  • Credenciais do IAM

    Forneça valores para AccessKeyID, SecretAccessKey e, opcionalmente, SessionToken sob a forma de configurações JDBC ou ODBC. SessionToken é obrigatório somente em uma função do IAM com credenciais temporárias. Para obter mais informações, consulte Opções JDBC e ODBC para fornecer credenciais do IAM.

  • Federação do provedor de identidade

    Ao usar a federação de provedor de identidade para permitir que usuários de um provedor de identidade se autentiquem no Amazon Redshift, especifique o nome de um plug-in de provedor de credencial. Para obter mais informações, consulte Plug-ins de provedores de credenciais.

    Os drivers JDBC e ODBC do Amazon Redshift incluem plug-ins para os seguintes provedores de credenciais de federação de identidade baseados em SAML:

    • Microsoft Active Identity Federation Services (AD FS)

    • PingOne

    • Okta

    • Microsoft Azure Active Directory (Azure AD)

    Você pode fornecer o nome de plug-in e valores relacionados sob a forma de configurações JDBC ou ODBC ou usando um perfil. Para ter mais informações, consulte Opções para a configuração do driver JDBC versão 2.1.

Para ter mais informações, consulte Etapa 5: configurar uma conexão JDBC ou ODBC para usar credenciais do IAM.

Usar um perfil de configuração

Você pode fornecer as opções GetClusterCredentials e opções de credenciais do IAM como configurações em perfis nomeados em seu arquivo de configuração da AWS. Para fornecer o nome do perfil, use a opção de perfil JDBC. A configuração é armazenada em um arquivo chamado config ou um arquivo chamado credentials em uma pasta chamada .aws no seu diretório inicial.

Para um plug-in de provedor de credencial baseado em SAML incluído com um driver Amazon Redshift JDBC ou ODBC, você pode usar as configurações descritas anteriormente em Plug-ins de provedores de credenciais. Se plugin_name não for usado, as outras opções serão ignoradas.

O exemplo a seguir mostra o arquivo ~/.aws/credentials com dois perfis.

[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY [user2] aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY session_token=AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU 9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==

Para suar as credenciais do exemplo user2, especifique Profile=user2 no URL de JDBC.

Para obter mais informações sobre o uso de perfis, consulte Configurações de arquivos de configuração e credenciais no Guia do usuário do AWS Command Line Interface.

Para obter mais informações sobre o uso de perfis para o driver JDBC, consulte Especificar perfis.

Para obter mais informações sobre o uso de perfis para o driver ODBC, consulte Métodos de autenticação.

Opções JDBC e ODBC para fornecer credenciais do IAM

A tabela a seguir lista as opções JDBC e ODBC para fornecimento de credenciais do IAM.

Opção

Descrição

Iam

Para uso somente em uma string de conexão ODBC. Defina como 1 para usar a autenticação do IAM.

AccessKeyID

SecretAccessKey

SessionToken

O ID da chave de acesso e a chave de acesso secreta para o usuário ou perfil do IAM configurado para autenticação de banco de dados do IAM. O SessionToken é necessário somente para um perfil do IAM com credenciais temporárias. SessionToken não é usado para um usuário. Para obter mais informações, consulte Credenciais de segurança temporárias.
plugin_name O nome totalmente qualificado de uma classe que implementa um provedor de credenciais. O driver JDBC do Amazon Redshift inclui plug-ins de provedor de credenciais baseados em SAML. Se você fornecer o plugin_name, também poderá fornecer outras opções relacionadas. Para obter mais informações, consulte Plug-ins de provedores de credenciais.

Profile

O nome de um perfil em um arquivo de credenciais da AWS ou configuração que contém valores para as opções de conexão JDBC. Para ter mais informações, consulte Usar um perfil de configuração.

Opções JDBC e ODBC para criar credenciais de usuário de banco de dados

Para usar o driver Amazon Redshift JDBC ou ODBC para criar credenciais de usuário do banco de dados, forneça o nome do usuário do banco de dados como uma opção JDBC ou ODBC. Opcional, o driver poderá criar um novo usuário de banco de dados, caso não exista um, e você poderá especificar uma lista de grupos de usuários de banco de dados aos quais o usuário se associará no login.

Se você usa um provedor de identidade (IdP), trabalhe com o administrador do IdP para determinar os valores corretos dessas opções. O administrador do IdP também pode configurar o IdP para fornecer essas opções; nesse caso, você não precisa fornecer as opções como JDBC ou ODBC. Para ter mais informações, consulte Etapa 2: configurar declarações de SAML para o IdP.

nota

Se você usar uma variável de política do IAM ${redshift:DbUser}, conforme descrito em Políticas de recursos de GetClusterCredentials, o valor para DbUser será substituído pelo valor recuperado pelo contexto da solicitação da operação de API. Os drivers do Amazon Redshift usam o valor da variável DbUser fornecida pelo URL de conexão, em vez do valor fornecido como um atributo SAML.

Para ajudar a proteger essa configuração, recomendamos que você use uma condição em uma política do IAM para validar o valor DbUser com o RoleSessionName. Você pode encontrar exemplos de como definir uma condição usando uma política do IAM em Política de exemplo para usar GetClusterCredentials.

A tabela a seguir lista as opções de criação de credenciais de usuário de banco de dados.

Opção

Descrição
DbUser

O nome de um usuário do banco de dados. Se houver um usuário chamado DbUser no banco de dados, as credenciais temporárias do usuário terão as mesmas permissões que o usuário existente. Se DbUser não existir no banco de dados e AutoCreate for definido como true, um novo usuário DbUser será criado. Se desejar, desabilite a senha de um usuário existente. Para obter mais informações, consulte ALTER_USER

AutoCreate

Especifique true para criar um usuário de banco de dados com o nome especificado como DbUser, caso ainda não exista um. O padrão é falso.

DbGroups Uma lista delimitada por vírgulas dos nomes de um ou mais grupos de bancos de dados existentes que o usuário do banco de dados une para a sessão atual. Por padrão, o novo usuário é adicionado somente a PUBLIC.

Plug-ins de provedores de credenciais

O Amazon Redshift usa plug-ins de provedor de credenciais para autenticação única.

Para comportar autenticação única, o Amazon Redshift fornece o plug-in do Azure AD para o Microsoft Azure Active Directory. Para obter informações sobre como configurar esse plugin, consulte Configurar a autenticação única de JDBC ou ODBC.

Autenticação multifator

Para oferecer suporte à autenticação multifator (MFA), o Amazon Redshift fornece o plug-in do Azure AD para o Microsoft Azure Active Directory. Use o plug-in SAML do navegador para Okta, PingOne e o plug-in Azure AD do navegador para o Diretório Ativo do Microsoft Azure.

Com o plug-in de navegador do SAML, o fluxo de autenticação do OAuth é assim:

Fluxos de trabalho do OAuth que mostram como o plug-in, o servidor local, o navegador da web e o endpoint trabalham em conjunto para autenticar um usuário com a autenticação SAML.
  1. Um usuário tenta fazer login.

  2. O plug-in executa um servidor local para ouvir conexões de entrada no host local.

  3. O plug-in inicia um navegador da web para solicitar uma resposta de SAML por HTTPS pelo endpoint do provedor de identidades federado do URL de login de autenticação única especificado.

  4. O navegador da web segue o link e solicita que o usuário insira as credenciais.

  5. Depois que o usuário autentica e concede consentimento, o endpoint do provedor de identidade federado retorna uma resposta de SAML por HTTPS para o URI indicado por redirect_uri.

  6. O navegador da web move a mensagem de resposta com a resposta de SAML para o redirect_uri indicado.

  7. O servidor local aceita a conexão de entrada e o plug-in recupera a resposta SAML e a passa para o Amazon Redshift.

Com o plug-in de navegador do Azure AD, a autenticação de SAML flui assim:

Fluxos de trabalho do Azure que mostram como o plug-in, o servidor local, o navegador da web e o endpoint trabalham em conjunto para autenticar um usuário com a autenticação SAML.
  1. Um usuário tenta fazer login.

  2. O plug-in executa um servidor local para ouvir conexões de entrada no host local.

  3. O plug-in inicia um navegador da web para solicitar um código de autorização do endpoint oauth2/authorize do Azure AD.

  4. O navegador da web segue o link gerado por HTTPS e solicita que o usuário insira as credenciais. O link é gerado com o uso de propriedades de configuração, como locatário e client_id.

  5. Depois que o usuário autentica e concede consentimento, o endpoint oauth2/authorize do Azure AD retorna e envia uma resposta por HTTPS com o código de autorização para o redirect_uri indicado.

  6. O navegador da web move a mensagem de resposta com a resposta de SAML para o redirect_uri indicado.

  7. O servidor local aceita a conexão de entrada e as solicitações de plug-in e recupera o código de autorização e envia uma solicitação POST para o endpoint oauth2/token do Azure AD.

  8. O endpoint oauth2/token do Azure AD retorna uma resposta com um token de acesso para o redirect_uri indicado.

  9. O plug-in recupera a resposta SAML e a passa para o Amazon Redshift.

Consulte as seguintes seções:

Opções de plug-in

Para usar um plugin de provedor de credenciais baseado em SAML, especifique as seguintes opções em um perfil nomeado ou usando opções JDBC ou ODBC. Se plugin_name não for especificado, as outras opções serão ignoradas.

Opção

Descrição
plugin_name

Para JDBC, o nome de classe que implementa um provedor de credenciais. Especifique um dos seguintes:

  • Para o Active Directory Federation Services

    com.amazon.redshift.plugin.AdfsCredentialsProvider
  • Para o Okta

    com.amazon.redshift.plugin.OktaCredentialsProvider
  • Para o PingFederate

    com.amazon.redshift.plugin.PingCredentialsProvider
  • Para o Microsoft Azure Active Directory

    com.amazon.redshift.plugin.AzureCredentialsProvider
  • Para SAML MFA

    com.amazon.redshift.plugin.BrowserSamlCredentialsProvider
  • Para autenticação única do Microsoft Azure Active Directory com MFA

    com.amazon.redshift.plugin.BrowserAzureCredentialsProvider

Para o ODBC, especifique um dos seguintes:

  • Para o Active Directory Federation Services: adfs

  • Para o Okta: okta

  • Para o PingFederate: ping

  • Para o Microsoft Azure Active Directory: azure

  • Para SAML MFA: browser saml

  • Para autenticação única do Microsoft Azure Active Directory com MFA: browser azure ad

idp_host O nome do host corporativo do provedor de identidade. Este nome não deve conter barras (‘/’). Para um provedor de identidade Okta, o valor de idp_host deve terminar com .okta.com.

idp_port

A porta usada pelo provedor de identidade. O padrão é 443. Essa porta é ignorada para o Okta.

preferred_role

O nome do recurso da Amazon (ARN) da função nos elementos AttributeValue do atributo Role na declaração de SAML. Trabalhe com o administrador do IdP para localizar o valor apropriado da função preferencial. Para ter mais informações, consulte Etapa 2: configurar declarações de SAML para o IdP.

user

Um nome de usuário corporativo, incluindo domínio quando aplicável. Por exemplo, para o Active Directory, o nome de domínio precisa estar no formato domínio\nome de usuário.
password

A senha do usuário corporativo. É recomendável não usar esta opção. Em vez disso, use o cliente SQL para fornecer a senha.

app_id

O ID de um aplicativo do Okta. Usado somente com o Okta. O valor de app_id vem depois de amazon_aws no link de incorporação do aplicativo do Okta. Para obter esse valor, consulte o administrador do IdP. Este é um exemplo de um link de incorporação de aplicativo: https://example.okta.com/home/amazon_aws/0oa2hylwrpM8UGehd1t7/272

idp_tenant

Um locatário usado para o Azure AD. Usado apenas com o Azure.

client_id

Uma ID de cliente para a aplicação empresarial Amazon Redshift no Azure AD. Usado apenas com o Azure.