Cargar las credenciales temporales de un proceso externo - AWS SDK for Java 2.x

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cargar las credenciales temporales de un proceso externo

aviso

A continuación se describe un método para obtener credenciales de un proceso externo. Esto resulta potencialmente peligroso, así que proceda con precaución. En la medida de lo posible, se debe preferir a otros proveedores de credenciales. Si usa esta opción, debe asegurarse de que el archivo config esté lo más bloqueado posible siguiendo las mejores prácticas de seguridad para su sistema operativo.

Asegúrese de que su herramienta de credenciales personalizadas no escriba ninguna información secreta en ella StdErr. SDKsy AWS CLI puede capturar y registrar dicha información, lo que podría exponerla a usuarios no autorizados.

Con la SDK versión 2.x para Java, puede adquirir credenciales temporales mediante un proceso externo para casos de uso personalizados. Hay dos formas de configurar esta funcionalidad.

Usar la configuración de credential_process

Si tiene un método que proporciona credenciales temporales, puede integrarlo añadiendo la configuración de credential_process como parte de una definición de perfil en el archivo config. El valor que especifique debe utilizar la ruta completa al archivo de comandos. Si la ruta del archivo contiene espacios, debe escribirla entre comillas.

SDKLlama al comando exactamente como se indica y, a continuación, lee JSON los datosstdout.

Los ejemplos siguientes muestran el uso de esta configuración para las rutas de archivos sin espacios y las rutas de archivos con espacios.

Linux/macOS
Sin espacios en la ruta del archivo
[profile process-credential-profile] credential_process = /path/to/credential/file/credential_file.sh --custom-command custom_parameter
Con espacios en la ruta del archivo
[profile process-credential-profile] credential_process = "/path/with/space to/credential/file/credential_file.sh" --custom-command custom_parameter
Windows
Sin espacios en la ruta del archivo
[profile process-credential-profile] credential_process = C:\Path\To\credentials.cmd --custom_command custom_parameter
Con espacios en la ruta del archivo
[profile process-credential-profile] credential_process = "C:\Path\With Space To\credentials.cmd" --custom_command custom_parameter

El siguiente fragmento de código muestra cómo crear un cliente de servicio que utilice la configuración definida como parte del perfil denominado process-credential-profile.

Region region = Region.US_WEST_2; S3Client s3Client = S3Client.builder() .region(region) .credentialsProvider(ProfileCredentialsProvider.create("process-credential-profile")) .build();

Para obtener información detallada sobre el uso de un proceso externo como fuente de credenciales temporales, consulte la sección sobre credenciales del proceso en la Guía de referencia de herramientas AWS SDKs y herramientas.

Utilizar la ProcessCredentialsProvider

Como alternativa al uso de los ajustes del config archivo, puede utilizar los SDK valores ProcessCredentialsProvider para cargar credenciales temporales mediante Java.

Los siguientes ejemplos muestran varias versiones de cómo especificar un proceso externo utilizando el ProcessCredentialsProvider y configurando un cliente de servicio que utilice las credenciales temporales.

Linux/macOS
Sin espacios en la ruta del archivo
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("/path/to/credentials.sh optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();
Con espacios en la ruta del archivo
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("/path\\ with\\ spaces\\ to/credentials.sh optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();
Windows
Sin espacios en la ruta del archivo
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("C:\\Path\\To\\credentials.exe optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();
Con espacios en la ruta del archivo
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("\"C:\\Path\\With Spaces To\\credentials.exe\" optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();