Jeton de session aws s3
Gestion des informations d’identification AWS avec Boto3 en Python – Guide complet
Cet article est une lecture incontournable pour tous ceux qui interagissent avec AWS à l’aide de Python, et en particulier de la bibliothèque Boto3.
La configuration des informations d’identification dans Boto3 peut sembler simple au début, mais en réalité, il s’agit d’un processus critique qui exige une manipulation méticuleuse.
pourquoi? Parce que la façon dont vous configurez et gérez vos informations d’identification AWS peut avoir des impacts significatifs sur la sécurité de vos ressources AWS et l’efficacité de vos flux de travail de développement.
Dans ce guide, nous allons vous guider à travers quatre méthodes de spécification des informations d’identification dans Boto3, en commençant par les approches de base de l’utilisation de variables d’environnement et de fichiers d’informations d’identification partagés jusqu’aux solutions plus avancées et évolutives d’AWS Config file et d’AWS IAM Identity Center.
Conditions préalables Avant de
pouvoir commencer à l’aide de boto3 sur votre compte AWS, vous devez avoir rempli les conditions préalables suivantes avant de pouvoir interagir avec les services AWS à l’aide de Boto3 avec vos informations d’identification :
- Installez Python3 et Boto3 sur votre système
- Installez l’interface de ligne de commande AWS et configurez un profil AWS
1. L’installation
dePython3 diffère en fonction de votre système d’exploitation :
Pour Windows
,téléchargez le programme d’installation officiel de Python3 sur le site Web de Python ici.
Exécutez le fichier d’installation et suivez les instructions, assurez-vous de cocher la case « Ajouter Python à PATH » avant de cliquer sur Installer maintenant.
Pour MacOS
,MacOS est livré avec Python 2.7 par défaut, mais vous pouvez installer Python3 à l’aide de Homebrew.
Si vous n’avez pas installé Homebrew, vous pouvez l’installer en collant ce qui suit commande dans votre terminal :
Une fois Homebrew installé, vous pouvez installer Python3 en exécutant :
Pour Linux
Ouvrez votre terminal et mettez à jour la liste des paquets en utilisant :
Installez Python3 en exécutant :
Vous pouvez vérifier votre installation Python en l’exécutant dans votre terminal. Vous devriez voir une réponse avec le numéro de version de Python.
deux. Installation de Boto3
Maintenant que Python3 est installé, vous pouvez installer Boto3. Le processus est le même pour tous les systèmes d’exploitation :
- ouvrez votre terminal.
- Installez Boto3 à l’aide de pip, qui est un gestionnaire de paquets pour Python. Exécutez la commande suivante :
C’est tout ! Vous avez installé Boto3 sur votre système.
Vous pouvez vérifier l’installation en ouvrant votre interpréteur Python avec la commande , puis essayer d’importer le module boto3 à l’aide de .
si vous ne voyez aucun message d’erreur, Boto3 a été installé avec succès.
3. Accès Installer l’AWS CLI et configurer un profil AWS L’AWS
CLI est un outil de ligne de commande qui vous permet d’interagir avec les services AWS dans votre terminal. Selon que vous utilisez Linux , macOS ou Windows , l’installation se déroule comme suit :
Pour accéder à votre compte AWS avec l’AWS CLI, vous devez d’abord configurer un profil AWS. Il existe 2 façons de configurer un profil :
- Accès et informations d’identification de clé secrète d’un utilisateur IAM
- Utilisateur AWS Single Sign-on (SSO)
Dans cet article, je vais expliquer brièvement comment configurer la première méthode afin que vous puissiez procéder plus rapidement à la configuration du compartiment Amazon S3 dans AWS CDK.
Si vous souhaitez configurer le profil AWS de manière plus sécurisée, je vous suggère de lire et d’appliquer les étapes décrites dans Configuration de l’interface de ligne de commande AWS avec AWS Single Sign-On (SSO).
Pour configurer l’AWS CLI avec l’accès et les informations d’identification de votre utilisateur IAM et de votre clé secrète, vous devez vous connecter à la console AWS.
Accédez à IAM > Utilisateurs, sélectionnez votre utilisateur IAM et cliquez sur l’onglet Identifiants de sécurité pour créer une clé d’accès et une clé secrète.
Configurez ensuite le profil AWS sur l’AWS CLI comme suit :
Vos informations d’identification was sont stockées dans ~/.aws/credentials et vous pouvez vérifier que votre profil AWS fonctionne en exécutant la commande :
Comment Boto3 choisit la méthode à utiliser en premier lorsque plusieurs méthodes d’identification sont disponibles
Dans Boto3, les données de configuration sont essentiellement divisées en deux catégories : Qualifications et non-références.
Des éléments tels que , et fall sous l’égide des titres de compétences. Ce sont les clés qui vous permettent d’authentifier vos requêtes lors de l’utilisation de Boto3.
Les configurations sans informations d’identification, en revanche, contiennent des données qui ne sont pas nécessairement liées aux autorisations d’accès, mais qui font partie intégrante de la façon dont Boto3 interagit avec les services AWS.
Il s’agit notamment de paramètres tels que la région dans laquelle résident vos ressources ou le style d’adressage qu’Amazon S3 doit utiliser.
Lorsque Boto3 a besoin d’authentifier une demande, il part à la recherche des informations d’identification appropriées.
Cette chasse implique une vérification systématique de plusieurs endroits possibles où ces identifiants pourraient être stockés. Dès que Boto3 trouve des identifiants valides, il arrête sa recherche.
L’ordre de priorité lorsque Boto3 recherche ces identifiants est le suivant :
- Transmission des identifiants en tant que paramètres dans la méthode Transmission d’informations d’identification en tant que paramètres lors de la
- création d’un objet
- Variables d’environnement
- Fichier d’informations d’identification partagé ()
- Fichier de configuration AWS ()
- Assumer le fournisseur de rôle
- Fichier de configuration Boto2 ( et )
- Service de métadonnées d’instance sur une instance Amazon EC2 sur laquelle un rôle IAM est configuré.
Vous trouverez ci-dessous 4 méthodes pour spécifier vos informations d’identification lorsque vous vous connectez aux services AWS à l’aide de Boto3.
Chaque méthode explique les avantages et les inconvénients de la mise en œuvre.
Méthode 1 : Utilisation du fichier d’informations d’identification AWS
Le fichier d’informations d’identification AWS est un fichier texte sur votre machine locale qui stocke vos clés d’accès AWS. Par défaut, il se trouve dans .
Vous pouvez créer et configurer le fichier d’informations d’identification AWS manuellement ou utiliser la commande AWS CLI .
Pour vous connecter à un service AWS, vous pouvez utiliser Boto3 comme suit :
Boto3 recherchera automatiquement les informations d’identification AWS dans votre fichier d’informations d’identification.
Méthode 2 : Utilisation de variables d’environnement
Lesvariables d’environnement permettent de stocker des paires clé-valeur dans l’environnement du système d’exploitation.
Vous pouvez définir les informations d’identification AWS en tant que variables d’environnement comme suit :
Une fois ces variables d’environnement définies, vous pouvez vous connecter à un service AWS à l’aide de Boto3 comme suit :
Boto3 recherchera automatiquement les informations d’identification AWS dans vos variables d’environnement.
Méthode 3 : Utilisation du centre d’identité IAM
Dans AWS, le centre d’identité IAM, qui succède à AWS Single Sign-On (SSO), dispose d’une fonctionnalité unique qui vous permet de gérer vos profils SSO et vos sessions de connexion.
Cette fonctionnalité a été introduite dans la version 1.14.0 de Boto3 et prend en charge les informations d’identification d’authentification unique (SSO).
Utilisation de profils dans votre fichier de configuration partagé (). Ces profils peuvent être l’un des suivants :
Maintenant, pour créer une session Boto3, vous pouvez spécifier le nom du profil via la variable d’environnement ou utiliser l’argument lors de la création d’une session.
Le code Python suivant le démontre :
Dans cet extrait de code, nous importons d’abord le module Boto3. Nous créons ensuite une nouvelle session à l’aide du nom du profil et le spécifions.
Enfin, nous utilisons cette session pour créer un client S3. Ce client S3 utilisera les informations d’identification associées au profil.
Méthode 4 : Fournir des informations d’identification directement dans le code
Avis de non-responsabilité : N’utilisez pas cette méthode ! Laissez-moi vous dire pourquoi c’est risqué.
L’intégration d’informations d’identification directement dans vos scripts Python peut les exposer à un accès non autorisé, en particulier lorsque les scripts sont confiés à des systèmes de contrôle de version.
Si vous choisissez d’utiliser cette méthode, assurez-vous de ne pas exposer le script à des référentiels publics :
Conclusion
Lorsqu’il s’agit de configurer les informations d’identification pour que Boto3 se connecte aux services AWS, vous disposez d’une multitude d’options. Chaque méthode dont nous avons parlé offre ses avantages et ses cas d’utilisation uniques.
Cependant, parmi ces méthodes, l’utilisation d’AWS IAM Identity Center (méthode 4) se distingue comme la solution la plus robuste et la plus évolutive.
Pourquoi est-ce le meilleur ? En utilisant IAM Identity Center, vous pouvez tirer parti de la puissance d’AWS Single Sign-On (SSO), ce qui permet une sécurité renforcée, une gestion simplifiée des informations d’identification et un changement de profil facile.
Cette approche facilite non seulement la gestion efficace de plusieurs comptes AWS, mais renforce également l’ensemble la sécurité en réduisant la surface d’attaque qui pourrait être exploitée en raison d’une mauvaise gestion des informations d’identification.
De plus, la possibilité de spécifier directement ces profils lors de la création d’une session Boto3 simplifie la tâche de maintenance de différentes sessions pour différents environnements AWS.
Envie de nous rejoindre ? Joignez-vous à nous pour obtenir des conseils, des stratégies et des ressources que j’utilise dans mon agence cloud solo pour créer des solutions AWS bien conçues, résilientes et optimisées en termes de coûts sur AWS.
Rejoignez 1k+ passionnés du
Apprécié par les ingénieurs du monde entier
aws iam, aws sdk, boto3, guide, python
Danny Steenman
Un ingénieur cloud AWS senior avec plus de 9 ans d’expérience dans la migration de charges de travail sur site vers le cloud AWS.
J’ai aidé des entreprises de toutes tailles à élaborer leurs stratégies d’adoption du cloud, en optimisant l’efficacité opérationnelle, en réduisant les coûts et en améliorant l’agilité organisationnelle.
Rejoignez-moi dès aujourd’hui pour discuter de vos aspirations en matière de cloud, et travaillons ensemble pour transformer votre entreprise en tirant parti de la puissance du cloud AWS.