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.
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 un 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.
Usa IAM Roles Anywhere para la autenticación
IAMRoles Anywhere es una Servicio de AWS herramienta que le permite obtener AWS credenciales temporales para cargas de trabajo que se ejecutan fuera de AWS. Permite el acceso seguro a AWS los recursos desde entornos locales u otros entornos en la nube.
Para poder autenticar las solicitudes con IAM Roles Anywhere, primero debe recopilar la información necesaria y descargar la herramienta de ayuda para las credenciales. Si sigue las instrucciones de introducción de la guía del usuario de IAM Roles Anywhere, puede crear los artefactos necesarios.
En el SDK caso de Java, no hay un proveedor de credenciales específico para recuperar las credenciales temporales de IAM Roles Anywhere, pero puedes usar la herramienta de ayuda de credenciales junto con una de las opciones para recuperar las credenciales de un proceso externo.
Usa la credential_process
configuración en un perfil
El siguiente fragmento del archivo de AWS
configuración compartido muestra un nombre de perfil roles_anywhere
que usa la credential_process
configuración:
[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 es el ejecutable de la herramienta auxiliar de credenciales y credential-process
es el comando. aws_signing_helper
Al configurar un cliente de servicio para que utilice el roles_anywhere
perfil, como se muestra en el código siguiente, guarda en SDK caché las credenciales temporales y las actualiza antes de que caduquen:
S3Client s3Client = S3Client.builder() .credentialsProvider(ProfileCredentialsProvider.builder() .profileName("roles_anywhere").build()) .build();
Configure un ProcessCredentialsProvider
Como se muestra a continuación, puede utilizar un enfoque de solo código con la configuración del perfil ProcessCredentialsProvider
en lugar de utilizar:
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();
Sustituya el texto que se muestra en rojo por sus valores después de haber ensamblado todos los artefactos.