Tutorial: configurar o acesso federado ao Athena para usuários do Okta usando o Lake Formation e o JDBC
Este tutorial mostra como configurar o Okta, o AWS Lake Formation, as permissões do AWS Identity and Access Management e o driver Athena JDBC para habilitar o uso federado baseado em SAML do Athena. O Lake Formation oferece controle de acesso refinado dos dados que estão disponíveis no Athena para o usuário baseado em SAML. Para definir essa configuração, o tutorial usa o console do desenvolvedor do Okta, os consoles do AWS IAM e do Lake Formation e a ferramenta SQL Workbench/J.
Pré-requisitos
Este tutorial pressupõe que você tenha feito o seguinte:
-
Criado uma conta da Amazon Web Services. Para criar uma conta, acesse a home page da Amazon Web Services
. -
Configurado um local de resultados de consultas do Athena no Amazon S3.
-
Registrado um local de bucket de dados do Amazon S3 no Lake Formation.
-
Definido um banco de dados e tabelas no Catálogo de dados do AWS Glue que aponte para seus dados no Amazon S3.
-
Se você ainda não definiu uma tabela, execute um crawler do AWS Glue ou use o Athena para definir um banco de dados e uma ou mais tabelas para os dados que deseja acessar.
-
Este tutorial usa uma tabela baseada no conjunto de dados de trajetos de táxi na cidade de Nova York
disponível no Registry of Open Data on AWS (Registro aberto de dados na ). O tutorial usa o nome do banco de dados tripdb
e o nome da tabelanyctaxi
.
-
Etapas do tutorial
- Etapa 1: Criar uma conta do Okta
- Etapa 2: Adicionar usuários e grupos ao Okta
- Etapa 3: Configurar uma aplicação do Okta para autenticação SAML
- Etapa 4: Criar um provedor de identidade SAML para AWS e uma função do IAM para acesso ao Lake Formation
- Etapa 5: Adicionar a função do IAM e o provedor de identidade SAML à aplicação do Okta
- Etapa 6: Conceder permissões de usuário e grupo pelo AWS Lake Formation
- Etapa 7: Verificar o acesso pelo cliente Athena JDBC
- Conclusão
- Recursos relacionados
Etapa 1: Criar uma conta do Okta
Este tutorial usa o Okta como provedor de identidade baseado em SAML. Se você ainda não tem uma conta do Okta, pode criar uma gratuitamente. Ela é necessária para que você possa criar uma aplicação do Okta para autenticação SAML.
Para criar uma conta do Okta
-
Para usar o Okta, navegue até a página de cadastro de desenvolvedor do Okta
e crie uma conta de avaliação gratuita. O Developer Edition Service é gratuito dentro dos limites especificados pelo Okta em developer.okta.com/pricing . -
Quando você receber o e-mail de ativação, ative sua conta.
Um nome de domínio do Okta será atribuído a você. Salve-o para referência. Mais tarde, você usará o nome de domínio (
<okta-idp-domain>
) na string JDBC que se conecta ao Athena.
Etapa 2: Adicionar usuários e grupos ao Okta
Nesta etapa, você usa o console do Okta para executar as seguintes tarefas:
-
Criar dois usuários do Okta.
-
Criar dois grupos do Okta.
-
Adicionar um usuário a cada grupo do Okta.
Para adicionar usuários ao Okta
-
Depois de ativar sua conta do Okta, faça login como usuário administrativo no domínio do Okta atribuído.
-
No painel de navegação à esquerda, escolha Directory (Diretório) e People (Pessoas).
-
Escolha Add Person (Adicionar pessoa) para adicionar um novo usuário que acessará o Athena por meio do driver JDBC.
-
Na caixa de diálogo Add Person (Adicionar pessoa), insira as informações necessárias.
-
Insira os valores em First name (Nome) e Last name (Sobrenome). Este tutorial usa o
athena-okta-user
. -
Insira um Username (Nome de usuário) e Primary email (E-mail principal). Este tutorial usa o
athena-okta-user@anycompany.com
. -
Em Password (Senha), escolha Set by admin (Definir por administrador) e insira uma senha. Neste tutorial, a opção User must change password on first login (O usuário deve alterar a senha no primeiro login) está desmarcada, mas seus requisitos de segurança podem variar.
-
-
Escolha Save and Add Another (Salvar e adicionar outro).
-
Insira as informações do outro usuário. Este exemplo adiciona o usuário analista de negócios
athena-ba-user@anycompany.com
. -
Escolha Salvar.
No procedimento a seguir, você concede acesso a dois grupos do Okta por meio do driver Athena JDBC adicionando um grupo “Business Analysts” e um grupo “Developer”.
Para adicionar grupos do Okta
-
No painel de navegação do Okta, escolha Directory (Diretório) e Groups (Grupos).
-
Na página Groups (Grupos), escolha Add Group (Adicionar grupo).
-
Na caixa de diálogo Add Group (Adicionar grupo), insira as informações necessárias.
-
Em Name (Nome), insira
lf-business-analyst
. -
Em Group Description (Descrição do grupo), insira
Business Analysts
(Analistas de negócios).
-
-
Escolha Adicionar grupo.
-
Na página Groups (Grupos), escolha Add Group (Adicionar grupo) novamente. Desta vez, você insere as informações do grupo Developer.
-
Insira as informações necessárias.
-
Em Name (Nome), insira
lf-developer
. -
Em Group Description (Descrição do grupo), insira
Developers
(Desenvolvedores).
-
-
Escolha Adicionar grupo.
Agora que você tem dois usuários e dois grupos, está pronto para adicionar um usuário a cada grupo.
Para adicionar usuários a grupos
-
Na página Groups (Grupos), escolha o grupo lf-developer que você acabou de criar. Adicione a esse grupo um dos usuários do Okta que você criou como desenvolvedor.
-
Escolha Manage People (Gerenciar pessoas).
-
Na lista Not Members (Não membros), escolha athena-okta-user.
A entrada referente ao usuário é transferida da lista Not Members (Não membros) à esquerda para a lista Members (Membros) à direita.
-
Escolha Salvar.
-
Escolha Back to Group (Voltar ao grupo) ou Directory (Diretório) e selecione Groups (Grupos).
-
Escolha o grupo lf-business-analyst.
-
Escolha Manage People (Gerenciar pessoas).
-
Adicione o athena-ba-user à lista Members (Membros) do grupo lf-business-analyst e escolha Save (Salvar).
-
Escolha Back to Group (Voltar ao grupo) ou Directory (Diretório) e selecione Groups (Grupos).
A página Groups (Grupos) agora mostra cada grupo com um usuário do Okta.
Etapa 3: Configurar uma aplicação do Okta para autenticação SAML
Nesta etapa, você usa o console de desenvolvedor do Okta para executar as seguintes tarefas:
-
Adicionar uma aplicação do SAML para usar com a AWS.
-
Atribuir a aplicação a um usuário do Okta.
-
Atribuir a aplicação a um grupo do Okta.
-
Baixe os metadados resultantes do provedor de identidade para uso posterior com a AWS.
Para adicionar uma aplicação para autenticação SAML
-
No painel de navegação do Okta, escolha Applications (Aplicações), Applications (Aplicações) para configurar uma aplicação do Okta para autenticação SAML no Athena.
-
Clique em Browse App Catalog (Procurar no catálogo de aplicações).
-
Na caixa de pesquisa, insira
Redshift
. -
Escolha Amazon Web Services Redshift. Neste tutorial, a aplicação do Okta usa a integração existente com SAML para Amazon Redshift.
-
Na página Amazon Web Services Redshift, escolha Add (Adicionar) para criar uma aplicação baseada em SAML para o Amazon Redshift.
-
Em Application label (Rótulo da aplicação), insira
Athena-LakeFormation-Okta
e escolha Done (Concluído).
Agora que você criou uma aplicação do Okta, pode atribuí-la aos usuários e grupos criados.
Para atribuir uma aplicação a usuários e grupos
-
Na página Applications (Aplicações), escolha a aplicação Athena-LakeFormation-Okta.
-
Na guia Assignments (Atribuições), escolha Assign (Atribuir), Assign to People (Atribuir a pessoas).
-
Na caixa de diálogo Assign Athena-LakeFormation-Okta to People (Atribuir Athena-LakeFormation-Okta a pessoas), encontre o usuário athena-okta-user que você criou.
-
Escolha Assign (Atribuir) para atribuir o usuário à aplicação.
-
Escolha Save and Go Back (Salvar e voltar).
-
Selecione Done (Concluído).
-
Na guia Assignments (Atribuições) da aplicação Athena-LakeFormation-Okta, escolha Assign (Atribuir), Assign to Groups (Atribuir a grupos).
-
Em lf-business-analyst, escolha Assign (Atribuir) para atribuir a aplicação Athena-LakeFormation-Okta ao grupo lf-business-analyst e escolha Done (Concluído).
O grupo aparecerá na lista de grupos da aplicação.
Agora você está pronto para baixar os metadados da aplicação do provedor de identidade para uso com a AWS.
Para baixar os metadados da aplicação
-
Escolha a guia Sign On (Logon) da aplicação do Okta e clique com o botão direito em Identity Provider metadata (Metadados do provedor de identidade).
-
Escolha Save Link As (Salvar link como) para salvar os metadados do provedor de identidade, que estão no formato XML, em um arquivo. Dê a ele um nome que você reconhece (por exemplo,
Athena-LakeFormation-idp-metadata.xml
).
Etapa 4: Criar um provedor de identidade SAML para AWS e uma função do IAM para acesso ao Lake Formation
Nesta etapa, use o console do AWS Identity and Access Management (IAM) para executar as seguintes tarefas:
-
Criar um provedor de identidade para AWS.
-
Criar uma função do IAM para acesso ao Lake Formation.
-
Adicionar a política gerenciada AmazonAthenaFullAccess à função.
-
Adicionar uma política para Lake Formation e AWS Glue à função.
-
Adicionar uma política para os resultados das consultas do Athena à função.
Para criar um provedor de identidade SAML para AWS
-
Faça login no console da conta da Amazon Web Services como administrador da conta da Amazon Web Services e navegue até o console do IAM (https://console.aws.amazon.com/iam/
). -
No painel de navegação, escolha Identity providers (Provedores de identidade) e clique em Add provider (Adicionar provedor).
-
Na tela Configure provider (Configurar provedor), insira as seguintes informações:
-
Em Provider type (Tipo de provedor), escolha SAML.
-
Em Provider name (Nome do provedor), insira
AthenaLakeFormationOkta
. -
Em Metadata document (Documento de metadados), use a opção Choose file (Escolher arquivo) para carregar o arquivo XML de metadados do provedor de identidade (IdP) que você baixou.
-
-
Escolha Add provider (Adicionar provedor).
Em seguida, você cria uma função do IAM para acesso ao AWS Lake Formation. Adicione duas políticas em linha à função. Uma política concede permissões para acessar o Lake Formation e as APIs do AWS Glue. A outra política concede acesso ao Athena e ao local de resultados das consultas do Athena no Amazon S3.
Para criar uma função do IAM para acesso ao AWS Lake Formation
-
No painel de navegação do console do IAM, escolha Roles (Funções) e Create role (Criar função).
-
Na página Create role (Criar função), siga estas etapas:
-
Em Select type of trusted entity (Selecionar tipo de entidade confiável), escolha SAML 2.0 Federation.
-
Em SAML provider (Provedor SAML), selecione AthenaLakeFormationOkta.
-
Em SAML provider (Provedor SAML), selecione a opção Allow programmatic and AWS Management Console access (Permitir acesso programático e por console).
-
Selecione Next: Permissions (Próximo: permissões).
-
-
Na página Attach Permissions policies (Anexar políticas de permissões), em Filter policies (Filtrar políticas), insira
Athena
. -
Selecione a política gerenciada AmazonAthenaFullAccess e escolha Next: Tags (Próximo: etiquetas).
-
Na página Add tags (Adicionar tags), escolha Next: Review(Próximo: Revisar).
-
Na página Review (Revisão), em Role name (Nome da função), insira um nome para a função (por exemplo,
Athena-LakeFormation-OktaRole
) e escolha Create role (Criar função).
Na sequência, adicione as políticas em linha que permitem o acesso ao Lake Formation, às APIs do AWS Glue e aos resultados das consultas do Athena no Amazon S3.
Sempre que você usar as políticas do IAM, siga as práticas recomendadas do IAM. Para obter mais informações, consulte Práticas recomendadas de segurança no IAM no Manual do usuário do IAM.
Para adicionar uma política em linha à função para o Lake Formation e o AWS Glue
-
Na lista de funções no console do IAM, escolha a
Athena-LakeFormation-OktaRole
recém-criada. -
Na página Summary (Resumo) da função, na guia Permissions (Permissões), escolha Add inline policy (Adicionar política em linha).
-
Na página Create policy (Criar política), escolha JSON.
-
Adicione uma política em linha, semelhante à mostrada abaixo, que concede acesso ao Lake Formation e às APIs do AWS Glue.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*" } }
-
Escolha Revisar política.
-
Em Name (Nome), insira um nome para a política (por exemplo,
LakeFormationGlueInlinePolicy
). -
Escolha Criar política.
Para adicionar uma política em linha à função para o local de resultados das consultas do Athena
-
Na página Summary (Resumo) da função
Athena-LakeFormation-OktaRole
, na guia Permissions (Permissões), escolha Add inline policy (Adicionar política em linha). -
Na página Create policy (Criar política), escolha JSON.
-
Adicione uma política em linha, semelhante à mostrada abaixo, que permite o acesso da função ao local de resultados das consultas do Athena. Substitua os espaços reservados
<athena-query-results-bucket>
no exemplo pelo nome do seu bucket do Amazon S3.{ "Version": "2012-10-17", "Statement": [ { "Sid": "AthenaQueryResultsPermissionsForS3", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:PutObject", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
<athena-query-results-bucket>
", "arn:aws:s3:::<athena-query-results-bucket>
/*" ] } ] } -
Escolha Revisar política.
-
Em Name (Nome), insira um nome para a política (por exemplo,
AthenaQueryResultsInlinePolicy
). -
Escolha Criar política.
Na sequência, copie o ARN da função de acesso do Lake Formation e o ARN do provedor SAML criado. Eles serão necessários para você configurar a aplicação SAML do Okta na próxima seção do tutorial.
Para copiar o ARN da função e o ARN do provedor de identidade SAML
-
No console do IAM, na página Summary (Resumo) da função
Athena-LakeFormation-OktaRole
, escolha o ícone Copy to clipboard (Copiar para área de transferência) ao lado de Role ARN (ARN da função). O ARN tem o seguinte formato:arn:aws:iam::
<account-id>
:role/Athena-LakeFormation-OktaRole -
Salve o ARN completo com segurança para referência futura.
-
No painel de navegação do console do IAM, escolha Identity providers (Provedores de identidade).
-
Escolha o provedor AthenaLakeFormationOkta.
-
Na página Summary (Resumo), escolha o ícone Copy to clipboard (Copiar para área de transferência) ao lado de Provider ARN (ARN do provedor). O Nome de região da Amazon (ARN) deve se parecer com o seguinte:
arn:aws:iam::
<account-id>
:saml-provider/AthenaLakeFormationOkta -
Salve o ARN completo com segurança para referência futura.
Etapa 5: Adicionar a função do IAM e o provedor de identidade SAML à aplicação do Okta
Nesta etapa, você retorna ao console de desenvolvedor do Okta e executa as seguintes tarefas:
-
Adicionar atributos de URL do Lake Formation de usuário e de grupo à aplicação do Okta.
-
Adicionar o ARN do provedor de identidade e da função do IAM à aplicação do Okta.
-
Copiar o ID da aplicação do Okta. O ID da aplicação do Okta é necessário no perfil JDBC que se conecta ao Athena.
Para adicionar atributos de URL do Lake Formation de usuário e de grupo à aplicação do Okta
-
Faça login no console de desenvolvedor do Okta.
-
Escolha a guia Applications (Aplicações) e selecione a aplicação
Athena-LakeFormation-Okta
. -
Escolha a guia Sign On (Logon) da aplicação e selecione Edit (Editar).
-
Escolha Attributes (optional) (Atributos (opcional)) para expandi-los.
-
Em Attribute Statements (optional) (Instruções do atributo (opcional)), adicione o seguinte atributo:
-
Em Nome, digite
https://lakeformation.amazon.com/SAML/Attributes/Username
. -
Em Value (Valor), insira
user.login
-
-
Em Group Attribute Statements (optional) (Instruções do atributo de grupo (opcional)), adicione o seguinte atributo:
-
Em Nome, digite
https://lakeformation.amazon.com/SAML/Attributes/Groups
. -
Em Name format (Formato de nome), insira
Basic
-
Em Filter (Filtro), escolha Matches regex (Corresponde a regex) e insira
.*
na caixa do filtro.
-
-
Role para baixo até a seção Advanced Sign-On Settings (Configurações avançadas de logon), na qual você adiciona os ARNs do provedor de identidade e da função do IAM à aplicação do Okta.
Para adicionar os ARNs do provedor de identidade e da função do IAM à aplicação do Okta
-
Em Idp ARN and Role ARN (ARN do ldp e ARN da função), insira o ARN do provedor de identidade da AWS e o ARN da função como valores separados por vírgulas no formato
<saml-arn>
,<role-arn>
. A string combinada deve ter a seguinte aparência:arn:aws:iam::
<account-id>
:saml-provider/AthenaLakeFormationOkta,arn:aws:iam::<account-id>
:role/Athena-LakeFormation-OktaRole -
Escolha Salvar.
Em seguida, copie o ID da aplicação do Okta. Você precisará dele mais tarde para a string JDBC que se conecta ao Athena.
Para localizar e copiar o ID da aplicação do Okta.
-
Escolha a guia General (Geral) da aplicação do Okta.
-
Rola para baixo até a seção App Embed Link (Link de incorporação de aplicação).
-
Em Embed Link (Link de incorporação), copie e salve a parte do URL da aplicação do Okta com segurança. O ID da aplicação do Okta é a parte do URL que vem depois de
amazon_aws_redshift/
, mas antes da próxima barra. Por exemplo, se o URL incluiramazon_aws_redshift/aaa/bbb
, o ID da aplicação seráaaa
.
nota
O link de incorporação não pode ser usado para fazer login diretamente no console do Athena para a exibição bancos de dados. As permissões do Lake Formation para usuários e grupos SAML são reconhecidas somente quando você utiliza o driver JDBC ou ODBC para enviar consultas ao Athena. Para exibir os bancos de dados, é possível utilizar usar a ferramenta SQL Workbench/J, que usa o driver JDBC para se conectar ao Athena. A ferramenta SQL Workbench/J é discutida em Etapa 7: Verificar o acesso pelo cliente Athena JDBC.
Etapa 6: Conceder permissões de usuário e grupo pelo AWS Lake Formation
Nesta etapa, você usa o console do Lake Formation para conceder permissões em uma tabela ao usuário e grupo do SAML. Você executa as seguintes tarefas:
-
Especificar o ARN do usuário SAML do Okta e as permissões do usuário associadas na tabela.
-
Especificar o ARN do grupo SAML do Okta e as permissões do grupo associadas na tabela.
-
Verificar as permissões que você concedeu.
Para conceder permissões no Lake Formation para o usuário do Okta
-
Faça login como administrador de data lake no AWS Management Console.
Abra o console do Lake Formation em https://console.aws.amazon.com/lakeformation/
. -
No painel de navegação, escolha Tables (Tabelas) e selecione a tabela à qual você deseja conceder as permissões. Este tutorial usa a tabela
nyctaxi
do banco de dadostripdb
. -
Em Actions (Ações), escolha Grant (Conceder).
-
Na caixa de diálogo Grant permissions (Conceder permissões), insira as seguintes informações:
-
Em SAML and Amazon QuickSight users and groups (Usuários e grupos do SAML e do Amazon QuickSight), insira o ARN do usuário SAML do Okta no seguinte formato:
arn:aws:iam::
<account-id>
:saml-provider/AthenaLakeFormationOkta:user/<athena-okta-user>
@<anycompany.com>
-
Em Columns (Colunas), Choose filter type (Escolher tipo de filtro), escolha Include columns (Incluir colunas) ou Exclude columns (Excluir colunas) conforme desejado.
-
Use o menu suspenso Choose one or more columns (Escolher uma ou mais colunas) do filtro para especificar as colunas que você deseja incluir ou excluir do usuário.
-
Em Table permissions (Permissões de tabela), escolha Select (Selecionar). Este tutorial concede apenas as permissões
SELECT
, seus requisitos podem variar.
-
-
Escolha Grant (Conceder).
Agora você executa as mesmas etapas para o grupo do Okta.
Para conceder permissões no Lake Formation ao grupo do Okta
-
Na página Tables (Tabelas) do console do Lake Formation, verifique se a tabela nyctaxi ainda está selecionada.
-
Em Actions (Ações), escolha Grant (Conceder).
-
Na caixa de diálogo Grant permissions (Conceder permissões), insira as seguintes informações:
-
Em SAML and Amazon QuickSight users and groups (Usuários e grupos do SAML e do Amazon QuickSight), insira o ARN do grupo SAML do Okta no seguinte formato:
arn:aws:iam::
<account-id>
:saml-provider/AthenaLakeFormationOkta:group/lf-business-analyst -
Em Columns (Colunas), Choose filter type (Escolher tipo de filtro), escolha Include columns (Incluir colunas).
-
Em Choose one or more columns (Escolher uma ou mais colunas), escolha as primeiras três colunas da tabela.
-
Em Table permissions (Permissões de tabela), escolha as permissões de acesso específicas para conceder. Este tutorial concede apenas as permissões
SELECT
, seus requisitos podem variar.
-
-
Escolha Grant (Conceder).
-
Para verificar as permissões concedidas, escolha Actions (Ações), View permissions (Visualizar permissões).
A página Data permissions (Permissões de dados) da tabela
nyctaxi
mostra as permissões do usuário athena-okta-user e do grupo lf-business-analyst.
Etapa 7: Verificar o acesso pelo cliente Athena JDBC
Agora você está pronto para usar um cliente JDBC para executar uma conexão de teste com o Athena como usuário SAML do Okta.
Nesta seção, você pode executar as seguintes tarefas:
-
Preparar o cliente de teste: baixe o driver Athena JDBC, instale o SQL Workbench e adicione o driver ao Workbench. Este tutorial usa o SQL Workbench para acessar o Athena por meio da autenticação do Okta e verificar as permissões do Lake Formation.
-
No SQL Workbench:
-
Crie uma conexão para o usuário do Okta no Athena.
-
Execute as consultas de teste como o usuário do Okta no Athena.
-
Crie e teste uma conexão para o usuário “analista de negócios”.
-
-
No console do Okta, adicione o usuário “analista de negócios” ao grupo de desenvolvedores.
-
No console do Lake Formation, configure as permissões de tabela para o grupo de desenvolvedores.
-
No SQL Workbench, execute as consultas de teste como o usuário “analista de negócios” e verifique como a alteração nas permissões afeta os resultados.
Para preparar o cliente de teste
-
Baixe e extraia o driver Athena JDBC compatível com o Lake Formation (2.0.14 ou versão mais recente) em Conectar ao Amazon Athena com JDBC.
-
Baixe e instale a ferramenta de consulta SQL gratuita SQL Workbench/J
, disponível na licença modificada do Apache 2.0. -
No SQL Workbench, escolha File (Arquivo) e Manage Drivers (Gerenciar drivers).
-
Na caixa de diálogo Manage Drivers (Gerenciar drivers), execute as seguintes etapas:
-
Escolha o ícone do novo driver.
-
Em Name (Nome), insira
Athena
. -
Em Library (Biblioteca), procure e escolha o arquivo
.jar
do Simba Athena JDBC que você acabou de baixar. -
Escolha OK.
-
Agora você está pronto para criar e testar uma conexão para o usuário do Okta no Athena.
Para criar uma conexão para o usuário do Okta
-
Escolha File (Arquivo), Connect window (Conectar janela).
-
Na caixa de diálogo Connection profile (Perfil de conexão), crie uma conexão inserindo as seguintes informações:
-
Na caixa do nome, insira
Athena_Okta_User_Connection
. -
Em Driver, escolha o driver Simba Athena JDBC.
-
Em URL, realize um destes procedimentos:
-
Para usar um URL de conexão, insira uma string de conexão de linha única. O exemplo a seguir contém quebras de linha para facilitar a leitura.
jdbc:awsathena://AwsRegion=
region-id
; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider; user=athena-okta-user
@anycompany.com
; password=password
; idp_host=okta-idp-domain
; App_ID=okta-app-id
; SSL_Insecure=true; LakeFormationEnabled=true; -
Para usar um URL baseado no perfil da AWS, execute as seguintes etapas:
-
Configure um perfil da AWS que tenha um arquivo de credenciais da AWS, como mostrado no exemplo a seguir.
[
athena_lf_dev
] plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider idp_host=okta-idp-domain
app_id=okta-app-id
uid=athena-okta-user
@anycompany.com
pwd=password
-
Em URL, insira uma string de conexão de linha única, como mostrado no exemplo a seguir. O exemplo contém quebras de linha para facilitar a leitura.
jdbc:awsathena://AwsRegion=
region-id
; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_dev
; SSL_Insecure=true; LakeFormationEnabled=true;
-
Observe que esses exemplos são representações básicas do URL necessário para se conectar ao Athena. Para ver a lista completa dos parâmetros permitidos na URL, consulte a documentação do JDBC.
-
A imagem a seguir mostra um perfil de conexão do SQL Workbench que usa um URL de conexão.
-
Agora que você estabeleceu uma conexão para o usuário do Okta, pode testá-la recuperando alguns dados.
Para testar a conexão do usuário do Okta
-
Escolha Test (Testar) e verifique se a conexão foi estabelecida.
-
Na janela Statement (Instrução) do SQL Workbench, execute o comando SQL
DESCRIBE
a seguir. Verifique se todas as colunas são exibidas.DESCRIBE "tripdb"."nyctaxi"
-
Na janela Statement (Instrução) do SQL Workbench, execute o comando SQL
SELECT
a seguir. Verifique se todas as colunas são exibidas.SELECT * FROM tripdb.nyctaxi LIMIT 5
Na sequência, verifique se o athena-ba-user, como membro do grupo lf-business-analyst, tem acesso apenas às primeiras três colunas da tabela que você especificou anteriormente no Lake Formation.
Para verificar o acesso do athena-ba-user
-
No SQL Workbench, na caixa de diálogo Connection profile (Perfil de conexão), crie outro perfil de conexão.
-
Para o nome do perfil de conexão, insira
Athena_Okta_Group_Connection
. -
Em Driver, escolha o driver Simba Athena JDBC.
-
Em URL, realize um destes procedimentos:
-
Para usar um URL de conexão, insira uma string de conexão de linha única. O exemplo a seguir contém quebras de linha para facilitar a leitura.
jdbc:awsathena://AwsRegion=
region-id
; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider; user=athena-ba-user
@anycompany.com
; password=password
; idp_host=okta-idp-domain
; App_ID=okta-application-id
; SSL_Insecure=true; LakeFormationEnabled=true; -
Para usar um URL baseado no perfil da AWS, execute as seguintes etapas:
-
Configure um perfil da AWS que tenha um arquivo de credenciais, como mostrado no exemplo a seguir.
[
athena_lf_ba
] plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider idp_host=okta-idp-domain
app_id=okta-application-id
uid=athena-ba-user
@anycompany.com
pwd=password
-
Em URL, insira uma string de conexão de linha única, como mostrado a seguir. O exemplo contém quebras de linha para facilitar a leitura.
jdbc:awsathena://AwsRegion=
region-id
; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_ba
; SSL_Insecure=true; LakeFormationEnabled=true;
-
-
-
-
Escolha Test (Testar) para confirmar se a conexão foi estabelecida.
-
Na janela SQL Statement (Instrução SQL), execute os mesmos comandos SQL
DESCRIBE
eSELECT
de antes e confira os resultados.Como o athena-ba-user é membro do grupo lf-business-analyst, apenas as três primeiras colunas que você especificou no console do Lake Formation são retornadas.
Depois disso, retorne ao console do Okta para adicionar o athena-ba-user
ao grupo do Okta lf-developer
.
Para adicionar o athena-ba-user ao grupo lf-developer
-
Faça login no console do Okta como usuário administrativo do domínio do Okta atribuído.
-
Escolha Directory (Diretório) e Groups (Grupos).
-
Na página Groups (Grupos), escolha o grupo lf-developer.
-
Escolha Manage People (Gerenciar pessoas).
-
Na lista Not Members (Não membros), escolha o athena-ba-user para adicionar ao grupo lf-developer.
-
Escolha Salvar.
Agora você retorna ao console do Lake Formation para configurar as permissões de tabela do grupo lf-developer.
Para configurar as permissões de tabela do grupo lf-developer
-
Faça login no console do Lake Formation como administrador do data lake.
-
No painel de navegação, selecione Tabelas.
-
Selecione a tabela nyctaxi.
-
Escolha Actions (Ações), Grant (Conceder).
-
Na caixa de diálogo Grant Permissions (Conceder permissões), insira as seguintes informações:
-
Em SAML and Amazon QuickSight users and groups (Usuários e grupos do SAML e do Amazon QuickSight), insira o ARN do grupo SAML lf-developer do Okta no seguinte formato:
-
Em Columns (Colunas), Choose filter type (Escolher tipo de filtro), escolha Include columns (Incluir colunas).
-
Escolha a coluna trip_type.
-
Em Table permissions (Permissões de tabela), escolha SELECT.
-
-
Escolha Grant (Conceder).
Agora você pode usar o SQL Workbench para verificar a alteração nas permissões do grupo lf-developer. A alteração deve ser refletida nos dados disponíveis ao athena-ba-user, que agora é membro do grupo lf-developer.
Para verificar a alteração nas permissões do athena-ba-user
-
Feche e reabra o programa SQL Workbench.
-
Conecte-se ao perfil do athena-ba-user.
-
Na janela Statement (Instrução), emita as mesmas instruções SQL que você executou antes:
Desta vez, a coluna trip_type é exibida.
Como o athena-ba-user agora é membro dos dois grupos lf-developer e lf-business-analyst, a combinação das permissões do Lake Formation desses grupos determina as colunas que são retornadas.
Conclusão
Neste tutorial, você configurou a integração do Athena com o AWS Lake Formationusando o Okta como provedor SAML. Você usou o Lake Formation e o IAM para controlar os recursos disponíveis ao usuário SAML no Catálogo de dados do AWS Glue do seu data lake.
Recursos relacionados
Para obter informações relacionadas, consulte os recursos a seguir.
-
Granting and revoking Data Catalog permissions (Conceder e revogar permissões de catálogo de dados) no Guia do desenvolvedor do AWS Lake Formation.
-
Provedores de identidade e federação no Guia do usuário do IAM.
-
Criação de provedores de identidade SAML do IAM no Guia do usuário do IAM.
-
Habilitar a federação na AWS usando Windows Active Directory, ADFS e SAML 2.0
no blog de segurança da AWS.