Quero usar as credenciais de perfil do AWS Identity and Access Management (AWS IAM) para autenticar a conexão do driver JDBC com o Amazon Athena. Ou quero mudar para outro perfil do IAM antes de usar o driver JDBC para me conectar ao Amazon Athena.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Usar credenciais de perfil do IAM para se conectar ao driver JDBC do Athena
Recupere as credenciais temporárias do perfil. O processo para recuperar as credenciais temporárias é diferente com base em como você assume o perfil.
Você usa um provedor de identidade SAML para assumir o perfil
O Active Directory Federation Services (AD FS) 3.0, o Okta, o PingFederate e o Microsoft Entra ID são os únicos provedores de identidade SAML 2.0 que possuem suporte direto no driver JDBC do Athena. Se você usar um provedor de identidade diferente para assumir o perfil, execute o comando assume-role-with-saml para obter as credenciais temporárias.
Você assume um perfil diferente na sua conta
Se você assumir outro perfil na mesma conta da AWS, execute o comando assume-role para obter as credenciais temporárias.
Para obter mais informações, consulte Métodos para assumir um perfil.
As credenciais temporárias contêm o token de sessão, o ID da chave de acesso e a chave de acesso secreta necessários para autenticar a conexão do JDBC com o Amazon Athena.
Observação: As credenciais temporárias são válidas somente por 12 horas.
Salve as credenciais temporárias em sua máquina no arquivo de credenciais da AWS ~/.aws/credentials como um perfil nomeado. Para obter mais informações, consulte Configurações de arquivos de configuração e credenciais na AWS CLI.
O exemplo a seguir é de credenciais temporárias que são armazenadas em um perfil da AWS CLI chamado testprofile:
[testprofile]aws_access_key_id=ASIA#########
aws_secret_access_key=########
aws_session_token=##################
Para usar o driver JDBC para se conectar ao Amazon Athena, especifique o nome do perfil na string de conexão JDBC, por exemplo jdbc:awsathena://AwsRegion=us-west-2;Profile=testprofile;. Ou defina o nome do perfil na propriedade de configuração JDBC Profile.
Observação: A propriedade de configuração JDBC Profile está disponível nas versões 2.0.6 e posteriores do driver JDBC do Athena. Para obter o driver JDBC mais recente, consulte Conectar-se ao Amazon Athena com o JDBC.
Mudar para um perfil diferente do IAM e, em seguida, conectar-se ao driver JDBC do Athena
Para alternar perfis antes de se conectar ao driver JDBC do Athena, use a opção source_profile no perfil nomeado.
Em sua máquina, adicione um perfil nomeado ao arquivo de credenciais ~/.aws/credentials da AWS CLI. Para obter mais informações, consulte Usando perfis nomeados.
O perfil deve incluir as seguintes propriedades:
- role_arn: ARN do perfil que você deseja assumir.
- source_profile: Um perfil que contém as credenciais de um usuário do IAM ou um perfil do IAM que tem permissões para assumir o perfil.
Veja a seguir um exemplo de configuração para assumir um perfil chamado testrole, que possui o ARN arn:aws:iam::123456789012:role/testrole:
[switchroletest]role_arn=arn:aws:iam::123456789012:role/testrole
source_profile=default
No exemplo a seguir, 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=ASIA#########
aws_secret_access_key=########
aws_session_token=##################
Observação: A AWS CLI permite que você especifique source_profile no arquivo de configuração /.aws/config da AWS CLI e as credenciais do usuário em um arquivo de credenciais da AWS CLI separado. No entanto, o driver JDBC do Athena pode ler credenciais somente do arquivo de credenciais da AWS CLI. Devido a essa limitação, você deve colocar os perfis no mesmo arquivo de credenciais do AWS CLI. Além disso, não use o prefixo perfil para os perfis.
Para usar o driver JDBC para se conectar ao Athena, especifique o nome do perfil na string de conexão JDBC, por exemplo jdbc:awsathena://AwsRegion=us-west-2;Profile=switchroletest;. Ou defina o nome do perfil na propriedade de configuração JDBC Profile.
Informações relacionadas
Solicitar as credenciais de segurança temporárias
Guia de instalação e configuração do driver JDBC Simba do Athena com conector SQL (versão 2.0.9)
Mudar para um perfil do IAM (AWS CLI)
Usar um perfil do IAM na AWS CLI