Obtenir des informations d'identification par le biais d'un processus externe dans le AWS CLI - AWS Command Line Interface

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.

Obtenir des informations d'identification par le biais d'un processus externe dans le AWS CLI

Avertissement

La rubrique aborde l'utilisation d'informations d'identification provenant d'un processus d'approvisionnement externe. Un risque de sécurité peut exister si la commande de génération des informations d'identification devient accessible à des processus ou utilisateurs non approuvés. Nous vous recommandons d'utiliser les alternatives sécurisées prises en charge par le AWS CLI et AWS afin de réduire le risque de compromettre vos informations d'identification. Veillez à sécuriser le fichier config et tous les outils et fichiers de support afin d'éviter toute divulgation.

Assurez-vous que votre outil d'identification personnalisé n'écrit aucune information secrète, StdErr car le SDKs et AWS CLI peut capturer et enregistrer ces informations, les exposant potentiellement à des utilisateurs non autorisés.

Si vous disposez d'une méthode pour générer ou rechercher des informations d'identification qui n'est pas directement prise en charge par le AWS CLI, vous pouvez la configurer AWS CLI pour l'utiliser en configurant le credential_process paramètre dans le config fichier.

Par exemple, vous pourriez inclure une entrée comme celle-ci dans le fichier config :

[profile developer] credential_process = /opt/bin/awscreds-custom --username helen
Syntaxe

Pour créer cette chaîne d'une manière compatible avec n'importe quel système d'exploitation, suivez ces règles :

  • 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 (" "). Le chemin et le nom de fichier peuvent contenir uniquement les caractères suivants : A-Z a-z 0-9 - _. espace

  • 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, vous ne pouvez pas inclure $HOME ou %USERPROFILE%.

  • Ne spécifiez pas le dossier de base comme ~. Vous devez spécifier le chemin d'accès complet.

Exemple pour Windows

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

Exemple pour Linux ou macOS

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

Sortie attendue du programme d'informations d'identification

AWS CLI Exécute la commande comme indiqué dans le profil, puis lit les données depuisSTDOUT. La commande que vous spécifiez doit générer une JSON sortie 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": "ISO8601 timestamp 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 ISO8601. Si la Expiration clé n'est pas présente dans la sortie de l'outil, on CLI 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 temporaires et sont actualisées automatiquement en réexécutant la commande credential_process avant leur expiration.

Note

Le AWS CLI 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.