Tutorial: configurar o acesso federado ao Athena para usuários do Okta usando o Lake Formation e o JDBC - Amazon Athena

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:

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
  1. 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.

  2. 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
  1. Depois de ativar sua conta do Okta, faça login como usuário administrativo no domínio do Okta atribuído.

  2. No painel de navegação à esquerda, escolha Directory (Diretório) e People (Pessoas).

  3. Escolha Add Person (Adicionar pessoa) para adicionar um novo usuário que acessará o Athena por meio do driver JDBC.

    Escolha Add Person (Adicionar pessoa).
  4. 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.

    Adicione um usuário à aplicação do Okta.
  5. Escolha Save and Add Another (Salvar e adicionar outro).

  6. Insira as informações do outro usuário. Este exemplo adiciona o usuário analista de negócios athena-ba-user@anycompany.com.

    Adicione um usuário à aplicação do Okta.
  7. 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
  1. No painel de navegação do Okta, escolha Directory (Diretório) e Groups (Grupos).

  2. Na página Groups (Grupos), escolha Add Group (Adicionar grupo).

    Escolha Adicionar grupo.
  3. 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).

    Adicionar um grupo do Okta.
  4. Escolha Adicionar grupo.

  5. Na página Groups (Grupos), escolha Add Group (Adicionar grupo) novamente. Desta vez, você insere as informações do grupo Developer.

  6. Insira as informações necessárias.

    • Em Name (Nome), insira lf-developer.

    • Em Group Description (Descrição do grupo), insira Developers (Desenvolvedores).

  7. 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
  1. 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 lf-developer.
  2. Escolha Manage People (Gerenciar pessoas).

    Escolha Manage People (Gerenciar pessoas).
  3. Na lista Not Members (Não membros), escolha athena-okta-user.

    Escolha um usuário para adicionar à lista de membros.

    A entrada referente ao usuário é transferida da lista Not Members (Não membros) à esquerda para a lista Members (Membros) à direita.

    Usuário do Okta adicionado a um grupo do Okta.
  4. Escolha Salvar.

  5. Escolha Back to Group (Voltar ao grupo) ou Directory (Diretório) e selecione Groups (Grupos).

  6. Escolha o grupo lf-business-analyst.

  7. Escolha Manage People (Gerenciar pessoas).

  8. Adicione o athena-ba-user à lista Members (Membros) do grupo lf-business-analyst e escolha Save (Salvar).

  9. 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.

    Um usuário foi adicionado a cada grupono console 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
  1. 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.

  2. Clique em Browse App Catalog (Procurar no catálogo de aplicações).

  3. Na caixa de pesquisa, insira Redshift.

  4. Escolha Amazon Web Services Redshift. Neste tutorial, a aplicação do Okta usa a integração existente com SAML para Amazon Redshift.

    Escolha Amazon Web Services Redshift.
  5. Na página Amazon Web Services Redshift, escolha Add (Adicionar) para criar uma aplicação baseada em SAML para o Amazon Redshift.

    Escolha Add (Adicionar) para criar uma aplicação baseada em SAML.
  6. Em Application label (Rótulo da aplicação), insira Athena-LakeFormation-Okta e escolha Done (Concluído).

    Insira um nome para a aplicação do Okta.

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
  1. Na página Applications (Aplicações), escolha a aplicação Athena-LakeFormation-Okta.

  2. Na guia Assignments (Atribuições), escolha Assign (Atribuir), Assign to People (Atribuir a pessoas).

    Escolha Assign (Atribuir), Assign to People (Atribuir a pessoas).
  3. 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.

  4. Escolha Assign (Atribuir) para atribuir o usuário à aplicação.

    Selecione Assign (Atribuir).
  5. Escolha Save and Go Back (Salvar e voltar).

  6. Selecione Done (Concluído).

  7. Na guia Assignments (Atribuições) da aplicação Athena-LakeFormation-Okta, escolha Assign (Atribuir), Assign to Groups (Atribuir a grupos).

  8. 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).

    Atribuir uma aplicação do Okta a um grupo de usuários do Okta.

    O grupo aparecerá na lista de grupos da aplicação.

    A aplicação do Okta é atribuída ao grupo do Okta.

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
  1. 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).

    Clique com o botão direito em Identity Provider metadata (Metadados do provedor de identidade).
  2. 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).

    Salvar os metadados do provedor de identidade.

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
  1. 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/).

  2. No painel de navegação, escolha Identity providers (Provedores de identidade) e clique em Add provider (Adicionar provedor).

  3. 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.

  4. 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
  1. No painel de navegação do console do IAM, escolha Roles (Funções) e Create role (Criar função).

  2. Na página Create role (Criar função), siga estas etapas:

    Configure uma função do IAM para usar o SAML 2.0.
    1. Em Select type of trusted entity (Selecionar tipo de entidade confiável), escolha SAML 2.0 Federation.

    2. Em SAML provider (Provedor SAML), selecione AthenaLakeFormationOkta.

    3. Em SAML provider (Provedor SAML), selecione a opção Allow programmatic and AWS Management Console access (Permitir acesso programático e por console).

    4. Selecione Next: Permissions (Próximo: permissões).

  3. Na página Attach Permissions policies (Anexar políticas de permissões), em Filter policies (Filtrar políticas), insira Athena.

  4. Selecione a política gerenciada AmazonAthenaFullAccess e escolha Next: Tags (Próximo: etiquetas).

    Anexar a política gerenciada AmazonAthenaFullAccess à função do IAM.
  5. Na página Add tags (Adicionar tags), escolha Next: Review(Próximo: Revisar).

  6. 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).

    Insira um nome para a função do IAM.

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
  1. Na lista de funções no console do IAM, escolha a Athena-LakeFormation-OktaRole recém-criada.

  2. Na página Summary (Resumo) da função, na guia Permissions (Permissões), escolha Add inline policy (Adicionar política em linha).

  3. Na página Create policy (Criar política), escolha JSON.

  4. 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": "*" } }
  5. Escolha Revisar política.

  6. Em Name (Nome), insira um nome para a política (por exemplo, LakeFormationGlueInlinePolicy).

  7. Escolha Criar política.

Para adicionar uma política em linha à função para o local de resultados das consultas do Athena
  1. 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).

  2. Na página Create policy (Criar política), escolha JSON.

  3. 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>/*" ] } ] }
  4. Escolha Revisar política.

  5. Em Name (Nome), insira um nome para a política (por exemplo, AthenaQueryResultsInlinePolicy).

  6. 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
  1. 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
  2. Salve o ARN completo com segurança para referência futura.

  3. No painel de navegação do console do IAM, escolha Identity providers (Provedores de identidade).

  4. Escolha o provedor AthenaLakeFormationOkta.

  5. 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
  6. 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
  1. Faça login no console de desenvolvedor do Okta.

  2. Escolha a guia Applications (Aplicações) e selecione a aplicação Athena-LakeFormation-Okta.

  3. Escolha a guia Sign On (Logon) da aplicação e selecione Edit (Editar).

    Edite a aplicação do Okta.
  4. Escolha Attributes (optional) (Atributos (opcional)) para expandi-los.

    Adicionar atributos de URL do Lake Formation de usuário à aplicação do Okta.
  5. 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

  6. 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.

    Adicionar atributos de URL do Lake Formation de grupo à aplicação do Okta.
  7. 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
  1. 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
    Inserir o ARN do provedor de identidade e o ARN da função do IAM na aplicação do Okta.
  2. 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.
  1. Escolha a guia General (Geral) da aplicação do Okta.

    Escolha a guia General (Geral) da aplicação do Okta.
  2. Rola para baixo até a seção App Embed Link (Link de incorporação de aplicação).

  3. 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 incluir amazon_aws_redshift/aaa/bbb, o ID da aplicação será aaa.

    Copie o ID da aplicação do Okta.
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
  1. Faça login como administrador de data lake no AWS Management Console.

  2. Abra o console do Lake Formation em https://console.aws.amazon.com/lakeformation/.

  3. 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 dados tripdb.

    Escolha a tabela à qual deseja conceder as permissões.
  4. Em Actions (Ações), escolha Grant (Conceder).

    Escolha Grant (Conceder).
  5. Na caixa de diálogo Grant permissions (Conceder permissões), insira as seguintes informações:

    1. 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>
    2. Em Columns (Colunas), Choose filter type (Escolher tipo de filtro), escolha Include columns (Incluir colunas) ou Exclude columns (Excluir colunas) conforme desejado.

    3. 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.

    4. Em Table permissions (Permissões de tabela), escolha Select (Selecionar). Este tutorial concede apenas as permissões SELECT, seus requisitos podem variar.

      Conceder permissões no nível da tabela e da coluna a um usuário do Okta.
  6. 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
  1. Na página Tables (Tabelas) do console do Lake Formation, verifique se a tabela nyctaxi ainda está selecionada.

  2. Em Actions (Ações), escolha Grant (Conceder).

  3. Na caixa de diálogo Grant permissions (Conceder permissões), insira as seguintes informações:

    1. 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
    2. Em Columns (Colunas), Choose filter type (Escolher tipo de filtro), escolha Include columns (Incluir colunas).

    3. Em Choose one or more columns (Escolher uma ou mais colunas), escolha as primeiras três colunas da tabela.

    4. 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.

      Conceder permissões de tabela a um grupo do Okta.
  4. Escolha Grant (Conceder).

  5. Para verificar as permissões concedidas, escolha Actions (Ações), View permissions (Visualizar permissões).

    Escolha View permissions (Visualizar permissões) para verificar as permissões concedidas.

    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.

    Visualizar as permissões concedidas ao usuário e grupo do Okta.

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
  1. 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.

  2. Baixe e instale a ferramenta de consulta SQL gratuita SQL Workbench/J, disponível na licença modificada do Apache 2.0.

  3. No SQL Workbench, escolha File (Arquivo) e Manage Drivers (Gerenciar drivers).

    Escolha Manage Drivers (Gerenciar drivers).
  4. Na caixa de diálogo Manage Drivers (Gerenciar drivers), execute as seguintes etapas:

    1. Escolha o ícone do novo driver.

    2. Em Name (Nome), insira Athena.

    3. Em Library (Biblioteca), procure e escolha o arquivo .jar do Simba Athena JDBC que você acabou de baixar.

    4. Escolha OK.

      Adicionar o driver Athena JDBC ao SQL Workbench.

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
  1. Escolha File (Arquivo), Connect window (Conectar janela).

    Escolha Connect window (Conectar janela).
  2. 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:

        1. 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
        2. 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.

    Um perfil de conexão no SQL Workbench.

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
  1. Escolha Test (Testar) e verifique se a conexão foi estabelecida.

  2. 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"
    Todas as colunas exibidas.
  3. 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
    Verifique se todas as colunas são exibidas.

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
  1. 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:

        1. 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
        2. 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;
  2. Escolha Test (Testar) para confirmar se a conexão foi estabelecida.

  3. Na janela SQL Statement (Instrução SQL), execute os mesmos comandos SQL DESCRIBE e SELECT 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.

    Somente as três primeiras colunas são retornadas.
    Dados das três primeiras colunas.

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
  1. Faça login no console do Okta como usuário administrativo do domínio do Okta atribuído.

  2. Escolha Directory (Diretório) e Groups (Grupos).

  3. Na página Groups (Grupos), escolha o grupo lf-developer.

    Escolha o grupo lf-developer.
  4. Escolha Manage People (Gerenciar pessoas).

  5. Na lista Not Members (Não membros), escolha o athena-ba-user para adicionar ao grupo lf-developer.

  6. 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
  1. Faça login no console do Lake Formation como administrador do data lake.

  2. No painel de navegação, selecione Tabelas.

  3. Selecione a tabela nyctaxi.

  4. Escolha Actions (Ações), Grant (Conceder).

  5. 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.

  6. 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
  1. Feche e reabra o programa SQL Workbench.

  2. Conecte-se ao perfil do athena-ba-user.

  3. Na janela Statement (Instrução), emita as mesmas instruções SQL que você executou antes:

    Desta vez, a coluna trip_type é exibida.

    A quarta coluna está disponível para consulta.

    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.

    A quarta coluna nos resultados dos dados.

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.

Para obter informações relacionadas, consulte os recursos a seguir.