Fournisseur d'identifiants de processus - AWS SDK et outils

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.

Fournisseur d'identifiants de processus

Les SDK permettent d'étendre la chaîne de fournisseurs d'informations d'identification pour des cas d'utilisation personnalisés.

IAM Roles Anywhere permet d'obtenir des informations d'identification temporaires pour une charge de travail ou un processus qui s'exécute en dehors de AWS. credential_processPour configurer cet usage, voirRôles Anywhere IAM.

Avertissement

Ce qui suit décrit une méthode d'obtention d'informations d'identification 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. Vérifiez que votre outil d'identification personnalisé n'écrit aucune information secrèteStdErr, car les SDK AWS CLI peuvent capturer et enregistrer ces informations, les exposant potentiellement à des utilisateurs non autorisés.

Configurez cette fonctionnalité à l'aide des méthodes suivantes :

credential_process- réglage AWS config du fichier partagé

Spécifie une commande externe que le SDK ou l'outil exécute en votre nom pour générer ou récupérer les informations d'authentification à utiliser. Le paramètre spécifie le nom d'un programme/commande que le SDK appellera. Lorsque le SDK appelle le processus, il attend que celui-ci y écrive des données JSON. stdout Le fournisseur personnalisé doit renvoyer les informations dans un format spécifique. Ces informations contiennent les informations d'identification que le SDK ou l'outil peut utiliser pour vous authentifier.

Note

Le fournisseur d'informations d'identification du processus fait partie duChaîne de fournisseurs d'identifiants. Cependant, le fournisseur d'identifiants de processus n'est vérifié qu'après plusieurs autres fournisseurs de cette série. Par conséquent, si vous souhaitez que votre programme utilise les informations d'identification de ce fournisseur, vous devez supprimer les autres fournisseurs d'informations d'identification valides de votre configuration ou utiliser un profil différent. Sinon, au lieu de vous fier à la chaîne de fournisseurs d'informations d'identification pour découvrir automatiquement quel fournisseur renvoie des informations d'identification valides, spécifiez l'utilisation du fournisseur d'informations d'identification de processus dans le code. Vous pouvez spécifier les sources d'informations d'identification directement lorsque vous créez des clients de service.

Spécification du chemin d'accès au programme d'identification

La valeur du paramètre est une chaîne qui contient le chemin d'accès à un programme que le SDK ou l'outil de développement exécute en votre nom :

  • Le chemin et le nom du fichier ne peuvent être composés que des caractères suivants : A-Z, a-z, 0-9, tiret (-), trait de soulignement (_), point (.), barre oblique (/), barre oblique inverse (\) et espace.

  • Si le chemin d'accès ou le nom du fichier contient un espace, entourez le chemin d'accès complet et le nom du fichier de guillemets doubles (" ").

  • Si un nom de paramètre ou une valeur de paramètre contient un espace, entourez cet élément de guillemets doubles (" "). Entourez uniquement le nom ou la valeur, pas la paire.

  • N'incluez aucune variable d'environnement dans les chaînes. Par exemple, n'incluez pas $HOME ou%USERPROFILE%.

  • Ne spécifiez pas le dossier de base comme~. * Vous devez spécifier le chemin complet ou le nom du fichier de base. S'il existe un nom de fichier de base, le système tente de trouver le programme dans les dossiers spécifiés par la variable d'PATHenvironnement.

    L'exemple suivant montre comment définir credential_process dans le config fichier partagé sous Linux/macOS.

    credential_process = "/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"

    L'exemple suivant montre comment définir credential_process dans le config fichier partagé sous Windows.

    credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"

Sortie valide du programme d'identification

Le SDK exécute la commande comme indiqué dans le profil, puis lit les données du flux de sortie standard. La commande que vous spécifiez, qu'il s'agisse d'un script ou d'un programme binaire, doit générer une sortie JSON STDOUT correspondant à la syntaxe suivante.

{ "Version": 1, "AccessKeyId": "an AWS access key", "SecretAccessKey": "your AWS secret access key", "SessionToken": "the AWS session token for temporary credentials", "Expiration": "RFC3339 timestamp for when the credentials expire" }
Note

A la date de cette publication, la clé Version doit être définie sur 1. Cela pourrait augmenter avec le temps à mesure que la structure évolue.

La Expiration clé est un horodatage au format RFC3339. Si la Expiration clé n'est pas présente dans la sortie de l'outil, le SDK suppose que les informations d'identification sont des informations d'identification à long terme qui ne sont pas actualisées. Dans le cas contraire, les informations d'identification sont considérées comme des informations d'identification temporaires et elles sont automatiquement actualisées en réexécutant la credential_process commande avant leur expiration.

Note

Le SDK ne met pas en cache les informations d'identification des processus externes de la même manière qu'il assume les informations d'identification des rôles. Si la mise en cache est obligatoire, vous devez la mettre en œuvre dans le processus externe.

Le processus externe peut renvoyer un code de retour non nul pour indiquer qu'une erreur s'est produite lors de la récupération des informations d'identification.

Compatibilité avec les AWS SDK

Les SDK suivants prennent en charge les fonctionnalités et les paramètres décrits dans cette rubrique. Toute exception partielle est notée. Tous les paramètres de propriété du système JVM sont pris en charge par le AWS SDK for Java et le Kit AWS SDK pour Kotlin seul.

Kit SDK Pris en charge Remarques ou informations supplémentaires
AWS CLI v2 Oui
SDK pour C++ Oui
SDK pour Go V2 (1.x) Oui
SDK pour Go 1.x (V1) Oui Pour utiliser les paramètres des config fichiers partagés, vous devez activer le chargement à partir du fichier de configuration ; voir Sessions.
SDK pour Java 2.x Oui
SDK pour Java 1.x Oui
SDK pour 3.x JavaScript Oui
SDK pour 2.x JavaScript Oui
SDK pour Kotlin Oui
SDK pour .NET 3.x Oui
SDK pour PHP 3.x Oui
SDK pour Python (Boto3) Oui
SDK pour Ruby 3.x Oui
SDK pour Rust Oui
Outils pour PowerShell Oui