Variable denvironnement pour le jeton de session aws
Informations d’identification#
Vue d’ensemble#
Les informations d’identification Boto3 peuvent être configurées de plusieurs façons. Quelle que soit la ou les sources que vous choisissez, vous devez disposer d’informations d’identification AWS et d’une région AWS définies pour pouvoir effectuer des demandes.
Configuration interactive#
Si vous disposez de l’interface de ligne de commande AWS, vous pouvez utiliser sa commande interactive pour configurer vos informations d’identification et votre région par défaut :
Suivez les invites et il générera des fichiers de configuration aux emplacements appropriés pour vous.
Configuration des informations d’identification#
Il existe deux types de données de configuration dans Boto3 : les informations d’identification et les données non identifiées. Les informations d’identification incluent des éléments tels que , et . La configuration sans informations d’identification comprend des éléments tels que la région à utiliser ou le style d’adressage à utiliser pour Amazon S3. Pour plus d’informations sur la configuration des configurations sans informations d’identification, consultez le guide de configuration.
Boto3 cherchera à plusieurs endroits lors de la recherche d’identifiants. Le mécanisme par lequel Boto3 recherche des identifiants consiste à rechercher dans une liste d’emplacements possibles et à s’arrêter dès qu’il trouve des identifiants. L’ordre dans lequel Boto3 recherche les informations d’identification est le suivant :
-
Transmission des informations d’identification en tant que paramètres dans la méthode
-
Transmission des informations d’identification en tant que paramètres lors de la création d’un objet
-
Variables d’environnement
-
Assumer
le -
rôle auprès du fournisseur d’identité Web Fournisseur
-
d’informations d’identification AWS IAM Identity Center
-
Fichier d’informations d’identification partagé ()
-
Fichier de configuration AWS ()
-
Fichier de configuration Boto2 ( et )
-
Informations d’identification du conteneur service
-
de métadonnées d’instance sur une instance Amazon EC2 pour laquelle un rôle IAM est configuré.
Chacun de ces lieux est abordé plus en détail ci-dessous.
Transmission d’informations d’identification en tant que paramètres#
Il existe des cas d’utilisation valides pour fournir des informations d’identification à la méthode et à l’objet, notamment :
-
Récupération d’informations d’identification temporaires à l’aide d’AWS STS (par exemple).
-
Chargement des informations d’identification à partir d’un emplacement externe, par exemple le trousseau du système d’exploitation.
La première option pour fournir des informations d'identification à Boto3 est de les passer en tant que paramètres lors de la création de clients :
La deuxième option pour fournir des informations d'identification à Boto3 est de passer comme paramètres lors de la création d’un objet :
Avertissement
, et sont des variables qui contiennent votre clé d’accès, votre clé secrète et votre jeton de session facultatif. Notez que les exemples ci-dessus n’ont pas d’informations d’identification codées en dur. Nous vous déconseillons de coder en dur les informations d’identification dans votre code source.
Variables d’environnement#
Boto3 vérifiera les informations d’identification suivantes :
-
- La clé d’accès de votre compte AWS.
-
- La clé secrète de votre compte AWS.
-
- La clé de session de votre compte AWS. Cela n’est nécessaire que lorsque vous utilisez des informations d’identification temporaires. La variable d’environnement peut également être utilisée, mais n’est prise en charge que à des fins de rétrocompatibilité. est pris en charge par plusieurs kits SDK AWS en plus de python.
Assumer le fournisseur de rôle#
Remarque
Il s’agit d’un ensemble de configurations d’informations d’identification différent de l’utilisation de rôles IAM pour les instances EC2, ce qui est décrit dans une section ci-dessous.
Dans le fichier, vous pouvez également configurer un profil pour indiquer que Boto3 doit assumer un rôle. Lorsque vous faites cela, Boto3 effectuera automatiquement les appels AssumeRole correspondants à AWS STS en votre nom. Il gérera la mise en cache en mémoire ainsi que l’actualisation des informations d’identification si nécessaire.
Vous pouvez spécifier les valeurs de configuration suivantes pour la configuration d’un rôle IAM dans Boto3. Pour plus d’informations sur un paramètre particulier, consultez la section Configuration.
-
- L’ARN du rôle que vous souhaitez assumer.
-
- Le profil boto3 qui contient les informations d’identification que nous devons utiliser pour l’appel initial AssumeRole.
-
- La ressource (profil d’instance Amazon EC2, rôle de conteneur Amazon ECS ou variable d’environnement) qui contient les informations d’identification à utiliser pour l’appel initial AssumeRole.
-
- Un identifiant unique utilisé par des tiers pour jouer un rôle dans les comptes de leurs clients. Ce paramètre est mappé au paramètre de l’opération AssumeRole. Il s’agit d’un paramètre facultatif.
-
- Le numéro d’identification de l’appareil MFA à utiliser lors de la prise de fonction d’un rôle. Il s’agit d’un paramètre facultatif. Spécifiez cette valeur si la politique d’approbation du rôle assumé inclut une condition qui nécessite une authentification MFA. La valeur est soit le numéro de série d’un périphérique matériel (tel que GAHT12345678), soit un Amazon Resource Name (ARN) pour un périphérique virtuel (tel que arn :aws :iam ::123456789012 :mfa/user ).
-
- Nom appliqué à cette session d’acceptation de rôle. Cette valeur affecte l’ARN de l’utilisateur du rôle assumé (par exemple, arn :aws :sts ::123456789012 :assumed-role/role_name/role_session_name ). Cela correspond au paramètre RoleSessionName dans l’opération AssumeRole. Il s’agit d’un paramètre facultatif. Si vous ne fournissez pas cette valeur, un nom de session sera automatiquement généré.
-
- La durée en secondes de la session de rôle.
Si l’authentification MFA n’est pas activée, il vous suffit de spécifier a et un .
Lorsque vous spécifiez un profil qui a une configuration de rôle IAM, Boto3 effectue un appel pour récupérer les informations d’identification temporaires. Les appels d’API Boto3 suivants utiliseront les informations d’identification temporaires mises en cache jusqu’à leur expiration, auquel cas Boto3 actualisera automatiquement les informations d’identification.
Veuillez noter que Boto3 n’écrit pas ces Informations d’identification temporaires sur le disque. Cela signifie que les informations d’identification temporaires des appels ne sont mises en cache en mémoire qu’au sein d’une seule session. Tous les clients créés à partir de cette session partageront les mêmes informations d’identification temporaires.
Si vous spécifiez , la première fois qu’un appel est passé, vous êtes invité à entrer le code MFA. L’exécution du programme se bloquera jusqu’à ce que vous saisissiez le code MFA. Vous devrez garder cela à l’esprit si vous avez un appareil configuré, mais que vous souhaitez utiliser Boto3 dans un script automatisé.
Vous trouverez ci-dessous un exemple de configuration pour la quantité minimale de configuration nécessaire pour configurer un profil de rôle assumé :
Voir Utilisation des rôles IAM pour des informations générales sur les rôles IAM.
supposer Rôle avec le fournisseur d’identité Web#
Dans le fichier, vous pouvez également configurer un profil pour indiquer que Boto3 doit assumer un rôle. Lorsque vous faites cela, Boto3 effectuera automatiquement les appels correspondants à AWS STS en votre nom. Il gère la mise en cache en mémoire ainsi que l’actualisation des informations d’identification, si nécessaire.
Vous pouvez spécifier les valeurs de configuration suivantes pour la configuration d’un rôle IAM dans Boto3 :
-
- L’ARN du rôle que vous souhaitez assumer.
-
- Le chemin d’accès à un fichier qui contient un jeton d’accès OAuth 2.0 ou un jeton d’ID OpenID Connect fourni par le fournisseur d’identité. Le contenu de ce fichier sera chargé et passé en argument à l’opération.
-
- Nom appliqué à cette session d’acceptation de rôle. Cette valeur affecte l’ARN de l’utilisateur de rôle assumé (par exemple, arn :aws :sts ::123456789012 :assumed-role/role_name/role_session_name ). Cela correspond au paramètre de l’opération. Il s’agit d’un paramètre facultatif. Si vous ne fournissez pas cette valeur, un nom de session sera automatiquement généré.
Vous trouverez ci-dessous un exemple de configuration pour la quantité minimale de configuration nécessaire pour configurer un rôle assumé avec le profil d’identité web :
Ce fournisseur peut également être configuré via des variables d’environnement :
-
- L’ARN du rôle que vous souhaitez assumer.
-
- Le chemin d’accès au fichier de jeton d’identité web.
-
- Nom appliqué à cette session d’acceptation de rôle.
Remarque
: ces variables d’environnement ne sont actuellement S’appliquent à la configuration générale du fournisseur d’identité web Assumer le rôle et ne s’appliquent pas à la configuration générale du fournisseur de rôle Assumer.
AWS IAM Identity Center#
La prise en charge du fournisseur d’informations d’identification AWS IAM Identity Center (successeur d’AWS Single Sign-On) a été ajoutée dans la version 1.14.0. Le centre d’identité IAM prend en charge les informations d’identification d’authentification unique (SSO).
Pour commencer à utiliser le fournisseur d’informations d’identification IAM Identity Center, commencez par utiliser l’AWS CLI (v2) pour configurer et gérer vos profils SSO et vos sessions de connexion. Pour obtenir des instructions détaillées sur le processus de configuration et de connexion, consultez le Guide de l’utilisateur de l’interface de ligne de commande AWS pour l’authentification unique. Une fois terminé, vous aurez un ou plusieurs profils dans le fichier de configuration partagé avec les paramètres suivants :
-
- L’URL qui pointe vers le portail utilisateur IAM Identity Center de l’organisation.
-
- La région AWS qui contient l’hôte du portail IAM Identity Center. Il s’agit d’un paramètre distinct du paramètre de région par défaut de l’interface de ligne de commande AWS, et il peut également s’agir d’une autre région.
-
- L’ID de compte AWS qui contient le rôle IAM que vous souhaitez utiliser avec ce profil.
-
- Le nom du rôle IAM qui définit les autorisations de l’utilisateur lors de l’utilisation de ce profil.
Vous pouvez ensuite spécifier le nom du profil via la variable d’environnement ou l’argument lors de la création d’un . Par exemple, nous pouvons créer une session à l’aide du profil et tous les clients créés à partir de cette session utiliseront les informations d’identification :
Fichier d’informations d’identification partagé#
L’emplacement par défaut du fichier d’informations d’identification partagé est . Vous pouvez modifier l’emplacement du fichier d’informations d’identification partagé en définissant la variable d’environnement.
Ce fichier est un fichier au format INI avec des noms de section correspondant à des profils. Avec chaque section, les trois variables de configuration indiquées ci-dessus peuvent être spécifiées : , , . Il s’agit des seules valeurs prises en charge dans le fichier d’informations d’identification partagé.
Vous trouverez ci-dessous un exemple minimal du fichier d’informations d’identification partagé :
Le fichier d’informations d’identification partagé prend également en charge le concept de profils. Les profils représentent des groupes logiques de configuration. Le fichier d’informations d’identification partagé peut avoir plusieurs profils :
Vous pouvez ensuite spécifier un nom de profil via la variable d’environnement ou l’argument lors de la création d’un . Par exemple, nous pouvons créer une session à l’aide du profil « dev » et tous les clients créés à partir de cette session utiliseront les informations d’identification « dev » :
Fichier de configuration AWS#
Boto3 peut également charger des informations d'identification à partir de . Vous pouvez modifier cet emplacement par défaut en définissant la variable d’environnement. Le fichier de configuration est au format INI, avec les mêmes clés prises en charge par le fichier d’informations d’identification partagé. La seule différence est que les sections de profil doivent avoir le format , à l’exception du profil par défaut :
La raison pour laquelle les noms de section doivent commencer par profil dans le fichier est qu’il y a d’autres sections dans ce fichier qui sont autorisées qui ne sont pas des configurations de profil.
Support du fichier de configuration Boto2#
Boto3 tentera de charger les informations d’identification à partir du fichier de configuration Boto2. Il vérifie d’abord le fichier pointé par if set, sinon il vérifiera et . Notez que seule la section du fichier de configuration boto est utilisée. Toutes les autres données de configuration du fichier de configuration boto sont ignorées.
Remarque
: Ce fournisseur d’identifiants est principalement destiné à la rétrocompatibilité avec Boto2.
Fournisseur d’informations d’identification de conteneur#
Si vous utilisez Amazon Elastic Container Service (Amazon ECS) ou Amazon Elastic Kubernetes Service (Amazon EKS), vous pouvez obtenir des informations d’identification en spécifiant un point de terminaison HTTP comme variable d’environnement. Le SDK demandera des informations d’identification à partir du point de terminaison spécifié. Pour plus d’informations, consultez Fournisseur d’informations d’identification de conteneur dans le Guide de référence des kits SDK et des outils Amazon.
Rôles IAM#
Si vous exécutez sur Amazon EC2 et qu’aucune information d’identification n’a été trouvée par l’un des fournisseurs ci-dessus, Boto3 essaiera de charger les informations d’identification à partir du service de métadonnées d’instance. Pour tirer parti de cette fonctionnalité, vous devez avoir spécifié un rôle IAM à utiliser lors du lancement de votre instance EC2.
Pour plus d’informations sur la configuration des rôles IAM sur les instances EC2, consultez le guide Rôles IAM pour Amazon EC2.
Notez que si vous avez lancé une instance EC2 avec un rôle IAM configuré, il n’y a pas de configuration explicite à définir dans Boto3 pour utiliser ces informations d’identification. Boto3 utilisera automatiquement les informations d’identification du rôle IAM s’il ne trouve aucune identification dans l’un des autres emplacements répertoriés précédemment.
Bonnes pratiques pour la configuration des informations d’identification#
Si vous exécutez sur une instance EC2, utilisez les rôles AWS IAM. Pour plus d’informations sur la configuration, consultez le guide Rôles IAM pour Amazon EC2.
Si vous souhaitez interagir avec plusieurs kits SDK AWS (e.NET, AWS CLI, Go, C++), utilisez le fichier d’informations d’identification partagé (). En utilisant le fichier d’informations d’identification partagé, vous pouvez utiliser un seul fichier pour les informations d’identification qui fonctionneront dans tous les kits SDK AWS.