Habilitar o acesso federado à API do Athena
Esta seção aborda o acesso federado que permite que um usuário ou aplicação cliente na sua organização chame operações de API do Amazon Athena. Nesse caso, os usuários da sua organização não têm acesso direto ao Athena. Em vez disso, você gerencia as credenciais do usuário fora da AWS no Microsoft Active Directory. O Active Directory é compatível com SAML 2.0
Para autenticar usuários nesse cenário, use o driver JDBC ou ODBC com suporte a SAML.2.0 para acessar o Active Directory Federation Services (ADFS) 3.0 e permitir que uma aplicação cliente chame as operações de API do Athena.
Para obter mais informações sobre o suporte ao SAML 2.0 na AWS, consulte Sobre a federação baseada em SAML 2.0 no Guia do usuário do IAM.
nota
O acesso federado à API do Athena é permitido para um determinado tipo de provedor de identidade (IdP), o Active Directory Federation Service (ADFS 3.0), que faz parte do Windows Server. O acesso federado não é compatível com o recurso de propagação de identidade confiável do Centro de Identidade do IAM. O acesso é estabelecido por meio das versões dos drivers JDBC ou ODBC que oferecem suporte ao SAML 2.0. Para obter informações, consulte Conectar ao Amazon Athena com JDBC e Conectar ao Amazon Athena com ODBC.
Tópicos
Antes de começar
Antes de começar, conclua os pré-requisitos a seguir:
-
Dentro da sua organização, instale e configure o ADFS 3.0 como seu IdP.
-
Instale e configure as versões mais recentes disponíveis dos drivers JDBC ou ODBC nos clientes usados para acessar o Athena. O driver deve incluir suporte para acesso federado compatível com o SAML 2.0. Para obter informações, consulte Conectar ao Amazon Athena com JDBC e Conectar ao Amazon Athena com ODBC.
Entender o processo de autenticação
O diagrama a seguir ilustra o processo de autenticação do acesso federado à API do Athena.
-
Um usuário na sua organização usa um aplicativo cliente com o driver JDBC ou ODBC para solicitar a autenticação do IdP da sua organização. O IdP é ADFS 3.0.
-
O IdP autentica o usuário no Active Directory, ou seja, o armazenamento de identidades da sua organização.
-
O IdP cria uma declaração do SAML com informações sobre o usuário e a envia para o aplicativo cliente por meio do driver JDBC ou ODBC.
-
O driver JDBC ODBC chama a operação da API AWS Security Token Service AssumeRoleWithSAML e passa os seguintes parâmetros:
-
O ARN do provedor SAML
-
O ARN da função a ser assumida
-
A declaração do SAML do IdP
Para obter mais informações, consulte AssumeRoleWithSAML na Referência de API do AWS Security Token Service.
-
-
A resposta da API para o aplicativo cliente por meio do driver JDBC ou ODBC inclui credenciais de segurança temporárias.
-
A aplicação cliente usa as credenciais de segurança temporárias para chamar as operações de API do Athena, permitindo que seus usuários acessem as operações de API do Athena.
Procedimento: habilitar acesso federado baseado em SAML à API do Athena
Esse procedimento estabelece uma confiança entre o IdP da sua organização e sua conta da AWS para permitir acesso federado baseado em SAML à operação de API do Amazon Athena.
Para habilitar o acesso federado à API do Athena:
-
Em sua organização, registre a AWS como um provedor de serviços (SP) em seu IdP. Esse processo é conhecido como confiança da parte dependente. Para obter mais informações, consulte Configuração do IdP SAML 2.0 com objeto de confiança de terceira parte confiável no Guia do usuário do IAM. Como parte dessa tarefa, execute estas etapas:
-
Obtenha o documento de metadados do SAML de amostra deste URL: https://signin.aws.amazon.com/static/saml-metadata.xml
. -
No IdP da sua organização (ADFS), gere um arquivo XML de metadados equivalente que descreva o seu IdP como um provedor de identidade para a AWS. O arquivo de metadados deve incluir o nome do emissor, uma data de criação, uma data de expiração e chaves que a AWS usa para validar as respostas de autenticação (declarações) da sua organização.
-
-
No console do IAM, crie uma entidade de provedor de identidade do SAML. Para obter mais informações, consulte Criação de provedores de identidade SAML do IAM no Guia do usuário do IAM. Como parte dessa etapa, realize as seguintes ações:
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
Faça upload do documento de metadados SAML produzido pelo IdP (ADFS) na Etapa 1 deste procedimento.
-
No console do IAM, crie uma ou mais funções do IAM para seu IdP. Para obter mais informações, consulte Criar uma função para um provedor de identidade de terceiros (federação) no Guia do usuário do IAM. Como parte dessa etapa, realize as seguintes ações:
-
Na política de permissões da função, estabeleça o que os usuários da sua organização têm permissão para fazer na AWS.
-
Na política de confiança da função, defina como principal a entidade do provedor do SAML que você criou na Etapa 2 deste procedimento.
Isso estabelece uma relação de confiança entre sua organização e a AWS.
-
-
No IdP da sua organização (ADFS), defina declarações que mapeiam usuários ou grupos na sua organização para as funções do IAM. O mapeamento de usuários e grupos para as funções do IAM também é conhecido como regra de declaração. Observe que usuários e grupos diferentes na sua organização podem ser mapeados para funções do IAM distintas.
Para obter informações sobre como configurar o mapeamento no ADFS, consulte a publicação do blog: Habilitação de federação na AWS usando Windows Active Directory, ADFS e SAML 2.0
. -
Instale e configure o driver JDBC ou ODBC com o suporte a SAML 2.0. Para obter informações, consulte Conectar ao Amazon Athena com JDBC e Conectar ao Amazon Athena com ODBC.
-
Especifique a string de conexão do seu aplicativo para o driver JDBC ou ODBC. Para obter informações sobre a string de conexão que sua aplicação deve usar, consulte o tópico "Using the Active Directory Federation Services (ADFS) Credentials Provider" (“Usar o provedor de credenciais do Active Directory Federation Services (ADFS)”) no Guia de instalação e configuração do driver JDBC ou um tópico similar no Guia de instalação e configuração do driver ODBC disponível como downloads de PDF dos tópicos Conectar ao Amazon Athena com JDBC e Conectar ao Amazon Athena com ODBC.
A seguir, veja um resumo de alto nível de como configurar a string de conexão para os drivers:
-
Em
AwsCredentialsProviderClass configuration
, defina ocom.simba.athena.iamsupport.plugin.AdfsCredentialsProvider
para indicar que você deseja usar a autenticação baseada em SAML 2.0 por meio do IdP do ADFS. -
Em
idp_host
, forneça o nome de host do servidor do IdP do ADFS. -
Em
idp_port
, informe o número da porta que o IdP do ADFS identifica a solicitação de declaração do SAML. -
Em
UID
ePWD
, forneça as credenciais de usuário do domínio do AD. Ao usar o driver no Windows, seUID
ePWD
não forem fornecidos, o driver tentará obter as credenciais de usuário do usuário conectado no computador com Windows. -
Opcionalmente, defina
ssl_insecure
paratrue
. Nesse caso, o driver não verifica a autenticidade do certificado SSL para o servidor do IdP do ADFS. Será necessário definir essa opção comotrue
se o certificado SSL do IdP do ADFS não tiver sido configurado como confiável pelo driver. -
Para habilitar o mapeamento de um usuário ou grupo de domínio do Active Directory para uma ou mais funções do IAM (como mencionado na etapa 4 deste procedimento), em
preferred_role
, na conexão do JDBC ou do ODBC, especifique a função do IAM (ARN) a ser assumida. Especificar opreferred_role
é opcional. Ele é útil se a função não for a primeira a ser listada na regra de declaração.
As seguintes ações ocorrem como resultado desse procedimento:
-
O driver JDBC ou ODBC chama a API AWS STS AssumeRoleWithSAML e transmite as declarações, conforme mostrado na etapa 4 do diagrama de arquitetura.
-
A AWS certifica-se de que a solicitação para assumir a função vem do IdP referenciado na entidade do provedor do SAML.
-
Se a solicitação for bem-sucedida, a operação da API AssumeRoleWithSAML do AWS STS retornará um conjunto de credenciais de segurança temporárias, que a aplicação cliente usa para fazer solicitações assinadas ao Athena.
Sua aplicação agora tem informações sobre o usuário atual e pode acessar o Athena de forma programática.
-