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 |
---|---|
|
Para uso somente em uma string de conexão ODBC. Defina como 1 para usar a autenticação do IAM. |
|
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. |
|
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 |
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:
-
Um usuário tenta fazer login.
-
O plug-in executa um servidor local para ouvir conexões de entrada no host local.
-
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.
-
O navegador da web segue o link e solicita que o usuário insira as credenciais.
-
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
. -
O navegador da web move a mensagem de resposta com a resposta de SAML para o
redirect_uri
indicado. -
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:
-
Um usuário tenta fazer login.
-
O plug-in executa um servidor local para ouvir conexões de entrada no host local.
-
O plug-in inicia um navegador da web para solicitar um código de autorização do endpoint
oauth2/authorize
do Azure AD. -
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.
-
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 oredirect_uri
indicado. -
O navegador da web move a mensagem de resposta com a resposta de SAML para o
redirect_uri
indicado. -
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. -
O endpoint
oauth2/token
do Azure AD retorna uma resposta com um token de acesso para oredirect_uri
indicado. -
O plug-in recupera a resposta SAML e a passa para o Amazon Redshift.
Consulte as seguintes seções:
-
Active Directory Federation Services (AD FS)
Para ter mais informações, consulte Configurar a autenticação única de JDBC ou ODBC.
-
PingOne (Ping)
O ping é compatível somente com o adaptador IdP predeterminado do PingOne usando a autenticação de formulários.
Para ter mais informações, consulte Configurar a autenticação única de JDBC ou ODBC.
-
Okta
O Okta é compatível apenas com o aplicativo fornecido pelo Okta usado com o AWS Management Console.
Para ter mais informações, consulte Configurar a autenticação única de JDBC ou ODBC.
-
Microsoft Azure Active Directory
Para ter mais informações, consulte Configurar a autenticação única de JDBC ou ODBC.
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 ODBC, especifique um dos seguintes:
|
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 . |
|
A porta usada pelo provedor de identidade. O padrão é 443. Essa porta é ignorada para o Okta. |
|
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. |
|
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. |
|
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 |
|
Um locatário usado para o Azure AD. Usado apenas com o Azure. |
|
Uma ID de cliente para a aplicação empresarial Amazon Redshift no Azure AD. Usado apenas com o Azure. |