Introduction
Associez un rôle préparé à EC2, observez la vraie lecture d’une image privée puis retirez l’association.
Terminez les laboratoires précédents du portfolio. Cet environnement fournit ses propres ressources et les capacités antérieures nécessaires. Réutilisez les connaissances, pas les instances, fichiers ou identifiants précédents.
Lien avec la certification
| Certification | Tâches | Pratique |
|---|---|---|
| AWS Certified Cloud Practitioner (CLF-C02) | Task 2.3 | Donner au site un rôle d’instance limité à la lecture de quatre objets. |
Vue d’ensemble

Comprendre la permission manquante
Dans cette étape, vous examinerez image et politique avant d’associer le rôle. Ouvrez le portfolio : texte visible, image indisponible. Un rôle IAM fournit identité et permissions ; un instance profile l’associe à EC2. Les deux portent le nom portfolio-reader.
Entrez dans le projet.
cd /home/labex/project
Chargez et affichez le bucket de cet environnement.
source website.env
echo "$PORTFOLIO_BUCKET"
Confirmez images/aura-brand.webp dans Contents. Terminal possède une identité distincte ; ses permissions ne sont pas celles du site.
aws s3api list-objects-v2 --bucket "$PORTFOLIO_BUCKET"
La politique autorise s3:GetObject. Le tableau Resource contient les ARN exacts des trois images et de projects.json, sans écriture ni autres objets. Un ARN identifie entièrement une ressource ; ce périmètre applique le moindre privilège.
cat read-image-policy.json
Le bucket reste privé. Le site lit l’image autorisée et la renvoie au navigateur ; l’accès public au site n’exige pas un bucket public.
Associer le rôle de lecture
Dans cette étape, vous donnerez au site son profil préparé. La SDK découvre des identifiants temporaires ; ne copiez pas de clés permanentes dans l’application.
Affichez et comparez INSTANCE_ID.
echo "$INSTANCE_ID"
Associez Name=portfolio-reader. $(...) capture le résultat, query sélectionne AssociationId et output text renvoie l’ID affiché par echo.
ASSOCIATION_ID=$(aws ec2 associate-iam-instance-profile --instance-id "$INSTANCE_ID" --iam-instance-profile Name=portfolio-reader --query 'IamInstanceProfileAssociation.AssociationId' --output text)
echo "$ASSOCIATION_ID"
Rechargez pour voir AURA, FORMA et ECHO. Cliquez sur une couverture : le panneau lit son titre et sa description depuis projects.json dans S3. Gardez le bucket privé ; vérifiez instance et profil si nécessaire. Le SDK obtient des identifiants temporaires via IMDSv2, sans clés copiées.


Retirer association et serveur
Dans cette étape, vous retirerez l’autorisation ajoutée puis terminerez l’application. Des identifiants temporaires peuvent être déjà en cache ; le retrait du profil n’assure pas leur révocation instantanée. Ne testez pas cela par une image immédiatement cassée.
Dissociez l’ID précis sauvegardé.
aws ec2 disassociate-iam-instance-profile --association-id "$ASSOCIATION_ID"
Terminez l’instance pour arrêter ses requêtes.
aws ec2 terminate-instances --instance-ids "$INSTANCE_ID"
Attendez terminated.
aws ec2 wait instance-terminated --instance-ids "$INSTANCE_ID"
Préservez rôle, stockage et références fournis. Vérifiez que le site n’est plus exécuté.
Résumé
Vous avez distingué les identités, associé le profil, vu l’image privée et nettoyé l’association et l’instance.
Références officielles : EC2 application roles, instance profiles.



