Acceso a credenciales para trabajo de desarrollo interactivo mediante AWS SDK for Java 2.x
Para aumentar la seguridad, AWS recomienda configurar el SDK para Java a fin de que utilice credenciales temporales en lugar de credenciales de larga duración. Las credenciales temporales consisten en claves de acceso (id de clave de acceso y clave de acceso secreta) y un token de sesión.
Dispone de varios métodos para trabajar con credenciales temporales. El método que utilice y, por tanto, la configuración que proporcione al SDK dependen de su caso de uso.
Cuando realice trabajo de desarrollo interactivo con el SDK de Java, le recomendamos que utilice el método de inicio de sesión único. Este método requiere los siguientes recursos:
-
Configuración de un perfil en el archivo de configuración compartida de AWS
-
mediante la AWS CLI y la ejecución de un comando para iniciar sesión y crear una sesión activa
Configuración del Identity Center de IAM
Al configurar el SDK para utilizar el acceso de inicio de sesión único al IAM Identity Center, tal como se describe en Descripción general de la configuración de esta guía, el SDK utiliza las credenciales temporales.
El SDK utiliza el token de acceso al IAM Identity Center para acceder al rol de IAM definido con la configuración sso_role_name del archivo config. El SDK asume este rol de IAM y recupera las credenciales temporales para firmar solicitudes de Servicio de AWS.
Para obtener más información sobre cómo el SDK obtiene las credenciales temporales de la configuración, consulte la sección Cómo entender la autenticación del IAM Identity Center de la Guía de referencia del SDK y las herramientas de AWS.
importante
Además de la configuración que establezca en el archivo de config compartido que funciona para todos los proyectos, cada proyecto de Java individual requiere las siguientes dependencias en el archivo pom.xmlde Maven:
<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>sso</artifactId> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>ssooidc</artifactId> </dependency>
Las dependencias sso y ssooidc proporcionan el código que permite que el SDK para Java 2.x acceda a credenciales temporales.
Recuperación de credenciales temporales del portal de acceso de AWS
Como alternativa a la configuración de inicio de sesión único del IAM Identity Center, puede copiar y utilizar las credenciales temporales disponibles en el portal de acceso de AWS. Puede utilizar las credenciales temporales en un perfil o como valores para las propiedades del sistema y las variables de entorno.
Configurar un archivo local de credenciales para las credenciales temporales
-
En el archivo de credenciales, pegue el siguiente texto de marcador de posición hasta que pegue las credenciales temporales que funcionen.
[default] aws_access_key_id=<value from AWS access portal>aws_secret_access_key=<value from AWS access portal>aws_session_token=<value from AWS access portal> -
Guarde el archivo. El archivo
~/.aws/credentialsdebería existir ahora en su sistema de desarrollo local. Este archivo contiene el perfil [predeterminado] que el SDK para Java utiliza si no se especifica un perfil con nombre específico. -
Siga las instrucciones de Actualizar manualmente las credenciales para copiar el rol de IAM desde el portal de acceso de AWS.
-
Para el paso 2 de las instrucciones vinculadas, elija
Access keyscomo nombre del rol de IAM que le concede acceso para sus necesidades de desarrollo. Este rol suele tener un nombre como PowerUserAccess o Developer. -
En el cuadro de diálogo modal, seleccione su sistema operativo y copie el contenido de Añadir un perfil al archivo de credenciales de AWS.
-
-
Pegue las credenciales copiadas en su archivo
credentialslocal y elimine el nombre del perfil generado. Su archivo debería parecerse a lo siguiente.[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE -
Guarde el archivo
credentials.
Cuando el SDK para Java cree un cliente de servicio, accederá a estas credenciales temporales y las utilizará para cada solicitud. La configuración del rol de IAM elegido en el paso 5a determina el tiempo de validez de las credenciales temporales. La duración máxima es de doce horas.
Cuando las credenciales temporales caduquen, repita los pasos del 4 al 7.