Autenticación con AWS utilizando AWS SDK for Java 2.x
Cuando se utiliza AWS SDK for Java 2.x, es importante saber que en la autenticación el SDK administra automáticamente el complejo proceso de firma de solicitudes con las credenciales del entorno o los roles de IAM sin necesidad de implementar algoritmos criptográficos.
El SDK administra la detección de credenciales, la creación de firmas y la actualización de credenciales totalmente en segundo plano, lo que le permite centrarse en la lógica de la aplicación.
Configuración de la autenticación
En el tema Autenticación y acceso de la Guía de referencia de herramientas y SDK de AWS se describen los distintos métodos de autenticación. Le recomendamos que siga las instrucciones para configurar el acceso al Centro de identidades de IAM para que el SDK pueda adquirir credenciales.
Tras seguir las instrucciones de la Guía de referencia de herramientas y SDK de AWS, el sistema debería estar configurado para permitir que el SDK firme solicitudes:
1. Configuración del acceso de inicio de sesión único para el SDK
Tras completar el paso 2 de la sección de acceso mediante programación para que el SDK pueda utilizar la autenticación del Centro de identidades de IAM, el sistema debe contener los siguientes elementos.
-
La AWS CLI, que se utiliza para iniciar una sesión en el portal de acceso a AWS antes de ejecutar la aplicación.
-
Un archivo
~/.aws/configque contiene un perfil predeterminado. El SDK para Java utiliza la configuración de proveedor de token de SSO del perfil para adquirir las credenciales antes de enviar las solicitudes a AWS. El valorsso_role_name, que es un rol de IAM conectado a un conjunto de permisos del Centro de identidades de IAM, debería permitir el acceso a los Servicios de AWS utilizados en la aplicación.El siguiente archivo
configde ejemplo muestra la configuración de un perfil predeterminado con el proveedor de token de SSO. La configuraciónsso_sessiondel perfil hace referencia a la secciónsso-sessionnombrada. La secciónsso-sessioncontiene la configuración para iniciar una sesión en el portal de acceso a 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 más detalles sobre los ajustes utilizados en la configuración del proveedor de tokens SSO, consulte Configuración del proveedor de tokens SSO en la Guía de referencia de SDK y herramientas de AWS.
Si su entorno de desarrollo no está configurado para el acceso mediante programación como se ha mostrado anteriormente, siga el Paso 2 de la Guía de referencia de los SDK.
2. Iniciar sesión con el AWS CLI
Antes de ejecutar una aplicación que accede a Servicios de AWS, necesita una sesión activa en el portal de acceso a AWS para que el SDK utilice la autenticación del Centro de identidades de IAM para resolver las credenciales. Ejecute el siguiente comando en el AWS CLI para iniciar sesión en el portal de acceso AWS.
aws sso login
Como tiene una configuración de perfil predeterminada, no necesita llamar al comando con una opción --profile. Si la configuración del proveedor de token de SSO utiliza un perfil con nombre, el comando es aws sso login --profile
.named-profile
Para comprobar si ya tiene una sesión activa, ejecute el siguiente comando de la AWS CLI.
aws sts get-caller-identity
La respuesta a este comando debe indicar la cuenta y el conjunto de permisos del Centro de identidades de IAM configurados en el archivo compartido config.
nota
Si ya tiene una sesión activa en el portal de acceso a AWS y ejecuta aws sso
login, no tendrá que proporcionar credenciales.
Sin embargo, verá un cuadro de diálogo en el que se solicita permiso para que botocore acceda a su información. botocore es la base de la AWS CLI.
Seleccione Permitir para autorizar el acceso a su información para el AWS CLI y el SDK para Java.
Opciones de autenticación adicionales
Para obtener más opciones de autenticación para SDK, como el uso de perfiles y variables de entorno, consulte el capítulo de configuración de la Guía de referencia de herramientas y SDK de AWS.