Formation DevOps | Formation AWS Services : Workshop S3 -1
WORKSHOP 1 : AMAZON S3 PART 1
Procédure de connexion : Si vous n’avez pas de compte AWS
- Se connecter à la console à l’URL suivante :
-
S’authentifier avec le compte IAM
- Nom d’utilisateur et mot de passe : remis par le formateur
S3 : GETTING START
Objectifs :
- Savoir créer un bucket S3 et manipuler des objets.
- Utiliser un rôle IAM EC2 pour gérer les permissions d’accès au bucket
- Autoriser un accès au bucket via un cross-account et synchroniser 2 buckets
- Créer un cycle d’archivage de S3 vers Glacier
Dans ce workshop, nous allons créer un bucket S3 et paramétrer les permissions IAM nécessaires afin de pouvoir réaliser des opérations sur le bucket depuis une instance EC2.
Dans un second temps, nous réaliserons les paramétrages nécessaires afin de pouvoir se connecter à un bucket S3 appartenant à un autre compte AWS. De manière réciproque, nous paramétrerons notre bucket pour y donner l’accès à cet autre compte AWS.
Commencer par créer un bucket S3 avec un nom unique dans la région Paris (Menu Services > S3 > Create Bucket :
Démarrer l’instance EC2 pour manipuler « instanceS3 », s’y connecter en SSH .
Nous allons utiliser les commandes CLI pour la suite du workshop, en manipulant les permissions IAM afin d’observer la correspondance entre les commandes CLI et les APIs autorisées.
Par exemple, tester la commande suivante (qui liste tous les buckets de l’environnement) :
$ aws s3 ls
/!\ Un « access denied » signifie que les permissions IAM associées au rôle de l’instance ne permettent pas l’exécution de cette action.
/!\ Ou demande AWS configure ce qui signifie le besoin d’un user pour lister des bucket ce qui n’est pas le but dans cet exercice car on veut bien donner les droits et les accées à une instance EC2
Pour modifier ces permissions IAM, éditer la policy (Menu Services > Identity and Access Management > Roles > ec2_role > Permissions > Inline Policies, éditer la policy « S3access ») :
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “Listbucket”,
“Effect”: “Allow”,
“Action”: [
“s3:ListAllMyBuckets”
],
“Resource”: [
“arn:aws:s3:::*”
]
}
]
}
Recherchez l’action à autoriser explicitement dans la policy, en consultant le pointeur suivant :
http://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
Continuer l’exploration des commandes en exécutant les actions suivantes :
- Lister les objets de votre bucket ;
- Uploader un fichier depuis votre instance vers les bucket ;
- Downloader ce fichier (du bucket vers l’instance) ;
Les commandes CLI S3 sont indiquées ici :
http://docs.aws.amazon.com/cli/latest/reference/s3/#available-commands
La suite de l’atelier consiste à permettre à une instance d’un autre Master Account (Master Account B) d’accéder à votre bucket (localisé dans le Master Account A comme présenté ci-dessous).
L’objectif final est de réaliser une synchronisation des données entre les 2 buckets.
Travaillez en binôme avec un autre stagiaire (qui prendra le rôle du compte B) pour échanger vos accès aux buckets.
Associer au bucket A une policy afin d’autoriser le Master Account B à s’y connecter. Accédez au panneau des permissions S3, dans le menu Services > S3 > monbucketperso > autoristations >strategie de compartiment.
Cliquer sur « Add bucket policy » et insérer la policy suivante, en indiquant correctement l’AWS account ID de votre binôme, ainsi que le nom de votre bucket :
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “AccesCompteB”,
“Effect”: “Allow”,
“Principal”: {
“AWS”: “arn:aws:iam::AWS_ACCOUNT_ID:root”
},
“Action”: [
“s3:List*”,
“s3:Get*”,
“s3:Put*”
],
“Resource”: [
“arn:aws:s3:::monbucketperso”,
“arn:aws:s3:::monbucketperso/*”
]
}
]
}
Les droits sont donnés au Master Account B de réaliser des appels APIs à ce bucket.
Pour terminer la configuration, il faut maintenant donner les droits au rôle IAM de l’instance du compte B à se connecter à ce bucket.
Le binôme doit donc éditer la policy IAM du role ec2_role (Menu Services > Identity and Access Management > Roles > ec2_role > Permissions, éditer la policy « S3access ») :
Editer la policy S3access et insérer le statement suivant, en indiquant correctement le nom du bucket S3 :
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“s3:List*”,
“s3:Get*”,
“s3:Put*”
],
“Resource”: [
“arn:aws:s3:::monbucketperso “,
“arn:aws:s3:::monbucketperso/*”
]
}
]
}
Pour valider que ces paramétres sont corrects, tenter une connexion au bucket A depuis l’instance B, par exemple avec la commande CLI suivante :
$ aws s3 ls s3://monbucketperso
Enfin, nous allons réaliser la synchronisation du bucket B vers le bucket A. Au préalable nous allons charger le bucket B avec des objets :
$ sudo aws s3 cp /var/log/ s3://bucketB/ --recursive --exclude “*” --include “*.log”
Pour terminer ce workshop, nous allons créer une règle d’archivage des données stockées sur le bucket A. Aller dans le menu Services > S3 > monbucketperso > gestion > Lifecycle, et cliquer sur Add rule. Choisir d’appliquer une nouvelle règle d’archivage sur l’ensemble du bucket :
Puis choisir d’archiver sur Glacier 30 jours après la création d’un objet :
Cliquer sur Review, choisir un nom pour la règle et l’activer.
Terminer le workshop :
- Stopper l’instance (ne pas la terminer)
- Supprimer le bucket
Decouvrez plus d’Offres de la plateform ItGalaxy.io :
Découvrez notre gamme complète de services et formations pour accélérer votre carrière.
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io