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.
Carga de credenciales desde un proceso externo mediante AWS SDK for Java 2.x
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. Recomendamos utilizar otros proveedores de credenciales si es posible. Si usa esta opción, es recomendable asegurarse de que el archivo config esté lo más bloqueado posible siguiendo las prácticas recomendadas de seguridad del sistema operativo.
Asegúrese de que su herramienta de credenciales personalizadas no escriba ninguna información secreta en ellaStdErr. SDKs y AWS CLI puede capturar y registrar dicha información, lo que podría exponerla a usuarios no autorizados.
Con el SDK para Java 2.x, puede adquirir credenciales temporales de 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.
El SDK llama al comando exactamente como se especifica y, a continuación, lee los datos JSON desde stdout.
Los ejemplos siguientes muestran el uso de esta configuración para las rutas de archivos sin espacios y las rutas de archivos con espacios.
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 de procesos de la Guía de referencia sobre herramientas AWS SDKs y herramientas.
Utilizar un ProcessCredentialsProvider.
Como alternativa al uso de la configuración del archivo config, puede usar los ProcessCredentialsProvider del SDK 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.
Uso IAM Roles Anywhere en autenticación
IAM Roles Anywhere le permite obtener AWS credenciales temporales para cargas de trabajo Servicio de AWS que se ejecutan fuera de él. AWS Permite el acceso seguro a recursos de AWS desde entornos locales o de otro tipo en la nube.
Antes de poder autenticar las solicitudes con IAM Roles Anywhere, debe recopilar la información necesaria y descargar la herramienta ayudante de credenciales. Siga las instrucciones de Introducción de la Guía del usuario de IAM Roles Anywhere para crear los artefactos necesarios.
El SDK para Java no tiene un proveedor de credenciales dedicado para recuperar credenciales temporales de IAM Roles Anywhere, pero puede utilizar la herramienta ayudante de credenciales junto con una de las opciones para recuperar credenciales de un proceso externo.
Uso del ajuste credential_process en un perfil
En el siguiente fragmento del archivo de AWS configuración compartido, se muestra un nombre de perfil roles_anywhere que utiliza la configuración: credential_process
[profile roles_anywhere] credential_process =./aws_signing_helper credential-process \ --certificate/path/to/certificate\ --private-key/path/to/private-key\ --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID\ --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID\ --role-arn arn:aws:iam::account:role/role-name-with-path
Debe reemplazar el texto que se muestra en rojo por sus valores después de haber ensamblado todos los artefactos. El primer elemento de la configuración, aws_signing_helper es el ejecutable de la herramienta ayudante de credenciales y credential-process es el comando.
Al configurar un cliente de servicio para que use el perfil roles_anywhere, como se muestra en el siguiente código, el SDK almacena en caché las credenciales temporales y las actualiza antes de que caduquen:
S3Client s3Client = S3Client.builder() .credentialsProvider(ProfileCredentialsProvider.builder() .profileName("roles_anywhere").build()) .build();
Configuración de un ProcessCredentialsProvider
Como se muestra a continuación, puede utilizar un método de solo código con el ProcessCredentialsProvider en lugar de utilizar la configuración del perfil:
ProcessCredentialsProvider processCredentialsProvider = ProcessCredentialsProvider.builder() .command("""./aws_signing_helper credential-process \ --certificate/path/to/certificate\ --private-key/path/to/private-key\ --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID\ --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID\ --role-arn arn:aws:iam::account:role/role-name-with-path""").build(); S3Client s3Client = S3Client.builder() .credentialsProvider(processCredentialsProvider) .build();
Reemplace el texto que se muestra en rojo por sus valores después de haber ensamblado todos los artefactos.