Como posso usar minhas credenciais de função do IAM ou mudar para outra função do IAM ao me conectar ao Athena usando o driver JDBC?
Quero usar uma função do AWS Identity and Access Management (IAM) para me conectar ao Amazon Athena por meio do driver JDBC. Ou quero mudar para outra função do IAM antes de me conectar ao Athena por meio do driver JDBC.
Resolução
Use as credenciais do perfil do IAM para se conectar ao driver JDBC do Athena
Recupere as credenciais temporárias do perfil. O processo de recuperação das credenciais temporárias depende de como você assume o perfil.
- Assumindo o perfil com um provedor de identidade SAML: Os Serviços de Federação do Active Directory (AD FS) 3.0, Okta, PingFederate e Azure AD são os únicos provedores de identidade SAML 2.0 que são diretamente suportados no driver JDBC do Athena. Se você assumir o perfil com um provedor de identidade diferente, use o comando assume-role-with-saml para obter as credenciais temporárias.
- **Assumindo um perfil diferente em sua conta:**Se você assumir outro perfil na mesma conta da AWS, use assume-role para obter as credenciais temporárias.
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), verifique se está utilizando a versão mais recente da AWS CLI.
Para obter mais informações, consulte Como Usar perfis do IAM e consulte a tabela de comparação de métodos para usar perfis.
As credenciais temporárias contêm o token da sessão, o ID da chave de acesso e a chave de acesso secreta. Essas três credenciais são necessárias para autenticar a conexão JDBC com o Athena. Lembre-se de que as credenciais temporárias têm uma vida útil máxima de 12 horas.
-
Na máquina em que o driver Athena JDBC está instalado, salve as credenciais temporárias no arquivo de credenciais da AWS (~/.aws/credentials) como um perfil nomeado. Para obter mais informações, consulte Definições de arquivos de configuração e credenciais.
Aqui está um exemplo de credenciais temporárias que são armazenadas em um perfil da AWS CLI chamado testprofile:
[testprofile] aws_access_key_id=ASIAXXXXXXXXX aws_secret_access_key=XXXXXXXX aws_session_token=XXXXXXXXXXXXXXXXXX
-
Para se conectar ao Athena com o driver JDBC, especifique o nome do perfil na string de conexão do JDBC (por exemplo: jdbc:awsathena: //awsRegion=us-west-2; profile=testProfile;). Ou defina o nome do perfil na propriedade de configuração Perfil JDBC.
Observação: a propriedade de configuração Profile JDBC está disponível nas versões 2.0.6 e posteriores do driver Athena JDBC. Para obter o driver JDBC mais recente, consulte Conectando-se ao Amazon Athena com o JDBC.
Mude para um perfil diferente do IAM e, em seguida, conecte-se ao driver JDBC do Athena
Para trocar de perfil antes de se conectar ao driver JDBC do Athena, use a opção source\ _profile no perfil nomeado:
-
Na máquina em que o driver Athena JDBC está instalado, adicione um perfil nomeado ao arquivo de credenciais da AWS CLI (~/.aws/credentials). Para obter mais informações sobre a criação de perfis nomeados, consulte Usando perfis nomeados. O perfil deve incluir as seguintes propriedades:
role\ _arn: o nome de recurso da Amazon (ARN) do perfil que você deseja assumir
source\ _profile: um perfil que contém as credenciais de um usuário do IAM ou de um perfil do IAM que tem permissões para assumir o perfilPor exemplo, para assumir um perfil chamado testrole que tenha o ARN arn:aws:iam: :123456789012:role/testrole, crie um perfil nomeado como este:
[switchroletest] role_arn=arn:aws:iam::123456789012:role/testrole source_profile=default
Neste exemplo, o perfil padrão contém as credenciais de um usuário ou perfil do IAM com permissões para assumir testrole:
[default] aws_access_key_id=ASIAXXXXXXXXX aws_secret_access_key=XXXXXXXX aws_session_token=XXXXXXXXXXXXXXXXXX
Observação: o AWS CLI suporta a especificação da fonte\ _profile no arquivo de configuração da CLI da AWS (/.aws/config) e das credenciais do usuário em um arquivo separado de credenciais da CLI da AWS (~/.aws/credentials). No entanto, o driver JDBC do Athena suporta a leitura de credenciais somente do arquivo de credenciais da AWS CLI. Devido a essa limitação, é necessário colocar esses perfis no mesmo arquivo de credenciais da CLI da AWS (/.aws/credentials). Além disso, não os prefixe com perfil. O driver JDBC do Athena não suporta o uso de credential\ _source = ec2InstanceMetadata em perfis nomeados.
-
Para se conectar ao Athena com o driver JDBC, especifique o nome do perfil na string de conexão do JDBC (por exemplo: jdbc:awsathena: //awsregion=us-west-2; profile=switchroletest;). Ou defina o nome do perfil na propriedade de configuração Perfil JDBC.
Informações relacionadas
Como solicitar credenciais de segurança temporárias
Driver Simba Athena JDBC com guia de instalação e configuração do conector SQL (versão 2.0.9)
Conteúdo relevante
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 10 meses
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 5 meses