SumƔrio
Neste guia passo a passo, aprenderemos como configurar a autenticação SSO com o Redshift e AWS IAM Identity Center para aumentar a segurança e facilitar o acesso dos usuÔrios.

Fontes Utilizadas:
- https://aws.amazon.com/blogs/big-data/federated-authentication-to-amazon-redshift-using-aws-single-sign-on/
- https://aws.amazon.com/blogs/big-data/amazon-redshift-identity-federation-with-multi-factor-authentication/
DicionƔrio de Termos:
| Termo | Significado |
|---|---|
| Conta do Identity Center | A conta onde o IAM Identity Center estĆ” configurado. |
| Conta do Redshift | A conta filha da conta do Identity Center que contƩm o Cluster Redshift ao qual queremos nos conectar. |
| IDP | Provedor de Identidade |
O que Ć© o Redshift?
AWS Redshift Ʃ um serviƧo de data warehousing totalmente gerenciado fornecido pela Amazon Web Services (AWS).
Ele Ʃ projetado para lidar com cargas de trabalho de anƔlise de dados em grande escala e permite que as organizaƧƵes analisem grandes quantidades de dados de forma rƔpida e econƓmica.
O que Ć© o IAM Identity Center?
O IAM Identity Center fornece um local onde você pode criar ou conectar usuÔrios da força de trabalho e gerenciar centralmente seu acesso a todas as suas contas e aplicativos da AWS.
Você pode usar permissões de vÔrias contas para atribuir acesso dos usuÔrios da força de trabalho às contas da AWS.
Por que SSO?
SSO reduz o nĆŗmero de superfĆcies de ataque porque os usuĆ”rios fazem login apenas uma vez por dia e usam apenas um conjunto de credenciais.
Reduzir o login para um conjunto de credenciais melhora a seguranƧa da empresa.
Quando os funcionÔrios precisam usar senhas separadas para cada aplicativo, geralmente não o fazem.
PrƩ-requisitos
- IAM Identity Center prĆ©-configurado ā Primeiros passos – AWS IAM Identity Center.
- Cluster Redshift prƩ-configurado com acesso administrativo.
- UsuƔrio e senha da Fonte de Identidade (Okta, PingOne, etc.).
- JetBrains DataGrip instalado (pode ser a versão gratuita).
Passo a Passo:
Configurar aplicativo do Identity Center
Nosso primeiro passo serƔ criar um novo aplicativo do AWS Identity Center na conta do Identity Center para ser usado como o principal canal entre os usuƔrios e o cluster Redshift.
- No painel lateral do IAM Identity Center, clique em āAplicativosā.

- No canto superior direito, clique em āAdicionar aplicativoā.

- Marque āadicionar aplicativo SAML 2.0 personalizadoā e clique em āPróximoā.

- Defina um nome de exibição apropriado, chamaremos nosso aplicativo de āRedshift-ReadOnlyā, pois este aplicativo serĆ” usado para obter acesso somente leitura aos dados do cluster.

- Baixe o arquivo de metadados SAML do Identity Center, usaremos ele mais tarde para configurar nosso aplicativo da conta Redshift.

- Copie a URL de login do aplicativo, pois precisaremos dela mais tarde.
- Em seguida, configuraremos o ACS do aplicativo SAML (também conhecido como Serviço de Consumidor de Asserção).
Brevemente, ACS Ć© o local onde a resposta do aplicativo SAML serĆ” enviada.
Como usaremos o driver JDBC do AWS Redshift para conectar ao nosso cluster Redshift, precisaremos definir o ACS do aplicativo parahttp://localhost:7890/redshift/– pois o driver JDBC inicia um servidor ouvindo na porta 7890 por padrĆ£o.
- Para restringir a asserção do aplicativo SAML apenas ao redshift, configuraremos o campo āPĆŗblico do SAML do Aplicativoā para
urn:amazon:webservices:redshift.
Criar Provedor de Identidade
Depois de criarmos nosso aplicativo Redshift-ReadOnly na conta do Identity Center, precisamos configurar um provedor de identidade para ser usado pelo aplicativo Redshift-ReadOnly para conectar ao cluster Redshift da conta Redshift.
- No painel lateral do IAM Dashboard da sua conta Redshift, clique em Provedores de Identidade.
- No canto superior direito, clique em āAdicionar provedorā.

- Preencha os detalhes do novo IDP:
- Defina o āNome do provedorā como Redshift-ReadOnly (mesmo que nosso aplicativo configurado anteriormente).
- Envie o arquivo de metadados que baixamos durante o processo de configuração do nosso aplicativo IAM Identity Center.
Clique em āAdicionar provedorā e finalize.

- VÔ para a pÔgina de descrição do IDP e copie o ARN do IDP, usaremos ele mais tarde.

Criar Função e PolĆtica do IAM
Agora que criamos o Provedor de Identidade para ser usado pelo nosso aplicativo IAM Identity Center, podemos criar a função que serÔ usada para conectar ao cluster Redshift em si.
- No painel lateral do IAM Dashboard da sua conta Redshift, clique em FunƧƵes.
- No canto superior direito, clique em āCriar Funçãoā.

- Crie uma entidade confiÔvel do tipo federação SAML 2.0 e defina o seguinte:
- Defina o IDP para o IDP āRedshift-ReadOnlyā que criamos anteriormente.
- Marque o botĆ£o de rĆ”dio āPermitir acesso programĆ”tico apenasā e defina:
Atributo: āSAML:audā ā definindo qual pĆŗblico pode assumir esta função.
Valor: āhttp://localhost:7890/redshift/ā ā Definindo o pĆŗblico para nosso servidor local do driver JDBC do Redshift (conforme explicado na primeira seção).
Clique em āPróximoā.
- Clique em āCriar polĆticaā e uma nova aba serĆ” aberta.
- Selecione āJSONā.
- No painel do editor de PolĆticas, cole a seguinte declaração de polĆtica e edite os seguintes valores no escopo āRecursoā para corresponder aos seus próprios:
<region>, <account>, <clusterName>.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:CreateClusterUser", "redshift:JoinGroup", "redshift:GetClusterCredentials", "redshift:ListSchemas", "redshift:ListTables", "redshift:ListDatabases", "redshift:ExecuteQuery", "redshift:FetchResults", "redshift:CancelQuery", "redshift:DescribeClusters", "redshift:DescribeQuery", "redshift:DescribeTable" ], "Resource": [ "arn:aws:redshift: : :cluster: ", "arn:aws:redshift: : :dbuser: /${redshift:DbUser}", "arn:aws:redshift: : :dbname: /${redshift:DbName}", "arn:aws:redshift: : :dbgroup: /bi_users_group", ] } ] } - Nomeie a polĆtica como āRedshift-ReadOnly-policyā e clique em āCreate policyā.

- Volte para a aba de origem onde começamos a criar nossa função IAM
ā clique em atualizar ā digite āRedshift-ReadOnly-policyā na barra de pesquisa ā marque a polĆtica āRedshift-ReadOnly-policyā ā clique em āNextā.
- Nomeie a função como āRedshift-ReadOnly-roleā e clique em āCreate roleā no canto inferior direito.

- Agora que criamos a função IAM, vÔ para a pÔgina de descrição dela e copie o ARN da função, usaremos isso mais tarde.

Configure os Atributos do Aplicativo do IAM Identity Center
Para configurar nosso aplicativo para funcionar com o Redshift, precisamos configurar alguns atributos do aplicativo que irĆ£o orientĆ”-lo sobre ācomo se conectarā a ele.
- No IAM Identity Center, vĆ” para o painel de Aplicativos e escolha o aplicativo que criamos anteriormente.

- Atribua usuĆ”rios e grupos que vocĆŖ gostaria que tivessem permissƵes para este aplicativo ā Atribuir acesso de usuĆ”rio a aplicativos no console do IAM Identity Center – AWS IAM Identity Center (sucessor do AWS Single Sign-On).

- Clique em āattribute mappingsā.
- Defina os atributos de acordo com a tabela a seguir e substitua o
<role_arn>&<idp_arn>espaço reservado pelos ARNs que você copiou nas etapas anteriores:
| Atributo | Valor | Explicação |
|---|---|---|
| Assunto (atributo padrão) | ${user:email} | O assunto utilizado. |
| https://aws.amazon.com/SAML/Attributes/RoleSessionName | ${user:email} | O nome da sessão criada contra o cluster. |
| https://redshift.amazon.com/SAML/Attributes/AutoCreate | true | Configure o aplicativo para criar o usuÔrio do Redshift automaticamente na autenticação. |
| https://aws.amazon.com/SAML/Attributes/Role | , | A função IAM e o IDP a serem usados para conectar ao Redshift. |
| https://redshift.amazon.com/SAML/Attributes/DbUser | ${user:email} | O nome do usuƔrio do banco de dados a ser criado. |
| https://redshift.amazon.com/SAML/Attributes/DbGroups | readonly | O grupo do banco de dados ao qual o novo usuĆ”rio serĆ” atribuĆdo. |

Clique em āSave changesā.
Criar grupo Redshift & Conceder permissƵes
Nesta etapa, configuraremos o readonly grupo Redshift (conforme definido nos atributos do Aplicativo na etapa anterior) ao qual cada usuĆ”rio serĆ” atribuĆdo ao se conectar via o aplicativo.
- Conecte-se ao seu cluster Redshift com um usuƔrio privilegiado (superusuƔrio).
- Execute o seguinte script SQL para criar o grupo
readonlye atribuir a elereadpermissões para o esquema público (o esquema padrão).
create group readonly; grant usage on schema public to group readonly; grant select on all tables in schema public to group readonly;
Configure a Fonte de Dados do cliente DataGrip
Estamos todos configurados e finalmente prestes a colher nossos frutos!
Nesta etapa, configuraremos uma fonte de dados DataGrip que serÔ usada como a conexão entre nós e o cluster Redshift.
- Abra o DataGrip e crie uma nova fonte de dados Redshift.
- Um assistente de fonte de dados serÔ aberto para você configurar a conexão, defina os seguintes atributos:
- Nome: Redshift ReadOnly SSO.
- Host: endpoint do seu servidor Redshift.
- UsuƔrio: seu email identificador (serƔ usado como o UsuƔrio do DB Redshift).
- Senha: a senha que vocĆŖ configurou na sua Fonte de Identidade (Okta, PingOne, etc.)
- Banco de Dados: o banco de dados ao qual vocĆŖ deseja se conectar.
- URL: a URL estarÔ principalmente configurada neste ponto (devido ao preenchimento automÔtico do DataGrip), tudo o que resta para você fazer é mudar o prefixo da URL JDBC de
jdbc:redshift://parajdbc:redshift:iam://.
- VĆ” para a aba
Advancede configure estes 3 atributos:- plugin_name:
com.amazon.redshift.plugin.BrowserSamlCredentialsProvider– jĆ” definido, entĆ£o edite-o. - idp_reponse_timeout: 60 – crie um novo valor.
- login_url: <a URL de login do aplicativo SAML que vocĆŖ copiou anteriormente> – crie um novo valor.
- plugin_name:
- Na parte inferior do assistente de configuração da fonte de dados, clique em ātest connectionā.

Uma vez clicado, seu navegador abrirĆ” e exibirĆ” a seguinte tela:
Se tudo estiver configurado corretamente, vocĆŖ deverĆ” ver o seguinte pop-up no DataGrip:
Clique em OK.
Ć isso! Obrigado por ler š
Procurando por conteĆŗdo novo?
Ao inserir seu email, o senhor concorda em receber e-mails da Elementor, incluindo e-mails de marketing,
e concorda com os nossos Termos e condiƧƵes e PolĆtica de Privacidade.