Charger des informations d'identification temporaires à partir d'un processus externe - AWS SDK for Java 2.x

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Charger des informations d'identification temporaires à partir d'un processus externe

Avertissement

Ce qui suit décrit une méthode d'obtention d'informations d'identification temporaires auprès d'un processus externe. Cela peut être dangereux, alors soyez prudent. Dans la mesure du possible, il convient de privilégier d'autres fournisseurs d'informations d'identification. Si vous utilisez cette option, vous devez vous assurer que le config fichier est aussi verrouillé que possible conformément aux meilleures pratiques de sécurité de votre système d'exploitation.

Assurez-vous que votre outil d'identification personnalisé n'écrit aucune information secrète dansStdErr. Les SDK AWS CLI peuvent également capturer et enregistrer ces informations, les exposant potentiellement à des utilisateurs non autorisés.

Avec le SDK pour Java 2.x, vous pouvez obtenir des informations d'identification temporaires auprès d'un processus externe pour des cas d'utilisation personnalisés. Il existe deux manières de configurer cette fonctionnalité.

Utiliser le credential_process réglage

Si vous disposez d'une méthode qui fournit des informations d'identification temporaires, vous pouvez l'intégrer en ajoutant le credential_process paramètre dans le cadre d'une définition de profil dans le config fichier. La valeur que vous spécifiez doit utiliser le chemin complet du fichier de commandes. Si le chemin du fichier contient des espaces, vous devez l'entourer de guillemets.

Le SDK appelle la commande exactement comme indiqué, puis lit les données JSON depuisstdout.

Les exemples suivants montrent l'utilisation de ce paramètre pour les chemins de fichiers sans espaces et les chemins de fichiers contenant des espaces.

Linux/macOS
Aucun espace dans le chemin du fichier
[profile process-credential-profile] credential_process = /path/to/credential/file/credential_file.sh --custom-command custom_parameter
Espaces dans le chemin du fichier
[profile process-credential-profile] credential_process = "/path/with/space to/credential/file/credential_file.sh" --custom-command custom_parameter
Windows
Aucun espace dans le chemin du fichier
[profile process-credential-profile] credential_process = C:\Path\To\credentials.cmd --custom_command custom_parameter
Espaces dans le chemin du fichier
[profile process-credential-profile] credential_process = "C:\Path\With Space To\credentials.cmd" --custom_command custom_parameter

L'extrait de code suivant montre comment créer un client de service qui utilise les informations d'identification temporaires définies dans le cadre du profil nommé. process-credential-profile

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

Pour obtenir des informations détaillées sur l'utilisation d'un processus externe comme source d'informations d'identification temporaires, reportez-vous à la section relative aux informations d'identification du processus dans le Guide de référence AWS des SDK et des outils.

Utilisation de la ProcessCredentialsProvider

Au lieu d'utiliser les paramètres du config fichier, vous pouvez utiliser le SDK ProcessCredentialsProvider pour charger des informations d'identification temporaires à l'aide de Java.

Les exemples suivants montrent différentes versions de la manière de spécifier un processus externe à l'aide des informations d'identification temporaires ProcessCredentialsProvider et de la configuration d'un client de service utilisant les informations d'identification temporaires.

Linux/macOS
Aucun espace dans le chemin du fichier
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();
Espaces dans le chemin du fichier
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
Aucun espace dans le chemin du fichier
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();
Espaces dans le chemin du fichier
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();