Interagir en toute sécurité avec les services AWS à l’aide de l’API Boto3 / Blogs / Perficient

Dans le monde actuel centré sur le cloud, AWS (Amazon Web Services) se distingue comme l’un des principaux fournisseurs de services cloud évolutifs et fiables. La bibliothèque Boto3 de Python est un outil puissant qui permet aux développeurs d’interagir avec les services AWS par programmation. Cependant, garantir des interactions sécurisées est crucial pour protéger les données sensibles et maintenir l’intégrité de vos applications.
L’objectif principal de ce blog est d’expliquer comment nous pouvons interagir avec différents services AWS de manière sécurisée. Dans ce blog, j’ai expliqué comment nous pouvons créer un objet de session à partir des informations d’identification AWS (clés et clés secrètes) que nous récupérons à partir des variables d’environnement du système d’exploitation et utiliser un objet de session pour interagir avec les services AWS.
Configuration de Python, de l’API Boto3, d’AWS et de VS Code Editor
Python
Vous pouvez vous assurer que Python est installé sur votre système/serveur en exécutant la commande « python –version ». Nous pouvons exécuter la même commande dans n’importe quel système d’exploitation, que ce soit Windows, Linux/Unix ou MacOS. si python n’est pas installé, nous devons d’abord l’installer avant de continuer.
Vous pouvez télécharger et installer le python depuis sa page officielle Télécharger Python | Python.org
Code VS
J’utilise l’outil d’édition VS Code pour développer le code Api boto3, nous devons donc également nous assurer de quelques éléments dans l’éditeur de code.
Nous devons installer l’extension Python pour Visual Studio Code qui intègre et offre la prise en charge d’IntelliSense (Pylance), du débogage (Python Debugger), du formatage, du peluchage, de la navigation dans le code, de la refactorisation, de l’explorateur de variables, de l’explorateur de tests et bien d’autres.
- Nous devons également nous assurer que la version de Python s’affiche dans la barre inférieure droite lors de l’écriture dans un fichier Python. cela sera disponible une fois que nous aurons correctement configuré Python dans notre système.
Boto3
Une fois la configuration de Python et VS Code terminée, nous devons installer le package python boto3 à partir de la commande « pip install boto3 ».
- Le package boto3 ne sera pas reconnu et donnera une erreur lors de l’exécution jusqu’à ce que nous l’installions. voir dans la capture d’écran donnée où vous pouvez voir un soulignement jaune sous boto3.
- Pour exécuter cette commande dans l’éditeur VS Code, nous pouvons ouvrir le terminal depuis Terminal >> Nouveau terminal et y exécuter cette commande. vous pouvez voir l’installation dans la capture d’écran ci-dessous où quelques autres packages dépendants sont également installés avec le package boto3. plus tard, il me demandait également de mettre à niveau pip (gestionnaire de packages python), j’exécute donc également cette commande.
- Nous sommes maintenant prêts avec l’API boto3
AWS
Configurez vos informations d’identification AWS à l’aide de l’AWS CLI ou en définissant des variables d’environnement.
- si nous devons utiliser AWS cli, nous en avons besoin, installez-le d’abord.
- Vous pouvez utiliser les instructions de téléchargement et d’installation à partir d’ici
- une fois AWS cli installé, nous pouvons utiliser la commande « aws configure » pour définir les informations d’identification
Gestion sécurisée des informations d’identification AWS
La gestion sécurisée des informations d’identification AWS est la première étape pour garantir des interactions sécurisées avec les services AWS. Nous pouvons utiliser deux manières pour interagir avec différents services AWS.
- Variables d’environnement: stockez vos informations d’identification AWS dans des variables d’environnement au lieu de les coder en dur dans vos scripts.
import os import boto3 aws_access_key = os.getenv('AWS_ACCESS_KEY_ID') aws_secret_key = os.getenv('AWS_SECRET_ACCESS_KEY') session = boto3.Session( aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key )
- Rôles IAM: utilisez les rôles IAM pour les instances EC2 afin d’éviter de stocker les informations d’identification sur l’instance.
session = boto3.Session() s3 = session.resource('s3')
Différentes interactions des services AWS avec l’API boto3
Voyons comment interagir en toute sécurité avec certains services AWS courants.
Amazone S3
Amazon S3 est un service de stockage largement utilisé. Voici comment interagir en toute sécurité avec S3 à l’aide de Boto3.
- Téléchargement de fichiers
import os import boto3 aws_access_key = os.getenv('aws_access_key_id') aws_secret_key = os.getenv('aws_secret_access_key') session = boto3.Session( aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key ) s3 = session.resource('s3') bucket_name="sachinsinghfirstbucket" file_path="temp/first.txt" s3.Bucket(bucket_name).upload_file(file_path, 'first.txt')
- Téléchargement de fichiers
import os import boto3 aws_access_key = os.getenv('aws_access_key_id') aws_secret_key = os.getenv('aws_secret_access_key') session = boto3.Session( aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key ) s3 = session.resource('s3') bucket_name="sachinsinghfirstbucket" file_path="temp/first_copy.txt" s3.Bucket(bucket_name).download_file('first.txt', file_path)
Amazon EC2
Amazon EC2 offre une capacité informatique évolutive. Voici comment gérer les instances EC2 en toute sécurité.
- Lancer une instance
import os import boto3 aws_access_key = os.getenv('aws_access_key_id') aws_secret_key = os.getenv('aws_secret_access_key') session = boto3.Session( aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key ) ec2 = session.resource('ec2') instance = ec2.create_instances( ImageId='ami-07b69f62c1d38b012', MinCount=1, MaxCount=1, InstanceType="t2.micro" )
- Arrêter une instance
import os import boto3 aws_access_key = os.getenv('aws_access_key_id') aws_secret_key = os.getenv('aws_secret_access_key') session = boto3.Session( aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key ) instance_id = 'i-00ab4568503979da4' ec2 = session.resource('ec2') ec2.Instance(instance_id).stop()
Pour d’autres services
Vous pouvez consulter d’autres services et une documentation détaillée ici Documentation Boto3 1.35.91
Meilleures pratiques pour des interactions Boto3 sécurisées
Utiliser le moindre privilège: assurez-vous que vos stratégies IAM accordent les autorisations minimales requises pour vos tâches.
Effectuez une rotation régulière des informations d’identification: alternez régulièrement vos informations d’identification AWS pour réduire le risque de compromission.
Activer la journalisation et la surveillance: utilisez AWS CloudTrail et CloudWatch pour surveiller et enregistrer les appels d’API à des fins d’audit et de dépannage.
L’interaction avec les services AWS à l’aide de Boto3 est puissante et flexible, mais la sécurité doit toujours être une priorité absolue. En suivant les meilleures pratiques et en tirant parti des fonctionnalités de sécurité d’AWS, vous pouvez garantir que vos applications restent sécurisées et résilientes.
Source link