Autenticar com a AWS usando o AWS SDK for Java 2.x
Ao usar o AWS SDK for Java 2.x, uma coisa importante a saber sobre a autenticação é que o SDK processa automaticamente o complexo processo de assinatura de solicitações usando credenciais do seu ambiente ou perfis do IAM, sem exigir que você implemente nenhum algoritmo criptográfico.
O SDK gerencia a descoberta de credenciais, a criação de assinaturas e a atualização de credenciais completamente nos bastidores, permitindo que você se concentre na lógica da sua aplicação.
Configurar a autenticação
O tópico Autenticação e acesso no Guia de Referência de AWS SDKs e ferramentas descreve as diferentes abordagens de autenticação. Recomendamos que você siga as instruções para configurar o acesso ao Centro de Identidade do IAM para que o SDK possa adquirir credenciais.
Depois de seguir as instruções no Guia de referência de AWS SDKs e ferramentas, seu sistema deve ser configurado para permitir que o SDK assine solicitações:
1. Configurar acesso de autenticação única para o SDK
Depois de concluir a etapa 2 na seção de acesso programático para que o SDK possa usar a autenticação do Centro de Identidade do IAM, o sistema deve conter os elementos a seguir.
-
A AWS CLI, que você usa para iniciar uma sessão do portal de acesso da AWS antes de executar o aplicativo.
-
Um arquivo
~/.aws/configque contém um perfil padrão. O SDK para Java usa as configurações do provedor de token de SSO do perfil para adquirir as credenciais antes de enviar solicitações à AWS. O valorsso_role_name, que é um perfil do IAM conectado a um conjunto de permissões do Centro de Identidade do IAM, deve permitir o acesso a Serviços da AWS usado na aplicação.O arquivo
configde exemplo a seguir mostra um perfil padrão configurado com o provedor de token de SSO. A configuraçãosso_sessiondo perfil se refere à seção chamadasso-session. A seçãosso-sessioncontém configurações para iniciar uma sessão do portal de acesso da AWS.[default] sso_session = my-sso sso_account_id =111122223333sso_role_name =SampleRoleregion = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url =https://provided-domain.awsapps.com/startsso_registration_scopes = sso:account:access
Para obter mais detalhes sobre as configurações usadas na configuração do provedor de token de SSO, consulte Configuração do provedor de token de SSO no Guia de Referência de SDKs e Ferramentas da AWS.
Se seu ambiente de desenvolvimento não estiver configurado para acesso programático conforme mostrado anteriormente, siga a Etapa 2 no Guia de Referência de SDKs.
2. Faça login usando a AWS CLI
Antes de executar um aplicativo que acessa os Serviços da AWS, você precisa de uma sessão ativa do portal de acesso da AWS para que o SDK use a autenticação do Centro de Identidade do IAM para resolver as credenciais. Para entrar no portal de acesso da AWS, execute o comando a seguir na AWS CLI.
aws sso login
Como você tem uma configuração de perfil padrão, não precisa chamar o comando com uma opção --profile. Se a configuração do provedor de token de SSO estiver usando um perfil nomeado, o comando será aws sso login --profile
.named-profile
Para testar se você já tem uma sessão ativa, execute o comando da AWS CLI a seguir.
aws sts get-caller-identity
A resposta a esse comando deve relatar a conta do Centro de Identidade do IAM e o conjunto de permissões configurados no arquivo compartilhado config.
nota
Se você já tiver uma sessão ativa do portal de acesso da AWS e executar aws sso
login, não será necessário fornecer credenciais.
No entanto, você verá uma caixa de diálogo solicitando permissão para que o botocore acesse suas informações. O botocore é a base para a AWS CLI.
Selecione Permitir para autorizar o acesso às suas informações para a AWS CLI e o SDK para Java.
Opções de autenticação adicionais
Para obter mais opções de autenticação para o SDK, como o uso de perfis e variáveis de ambiente, consulte o capítulo de configuração no Guia de Referência de SDKs e Ferramentas da AWS.