Gestion des compartiments S3 et d’IAM
Apprenez à approvisionner et configurer des compartiments de stockage S3 et à gérer les ressources AWS Identity and Access Management (IAM) avec Terraform.
Gestion des compartiments S3 et d’IAM est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.
S3 et Terraform : stockage infonuagique
Amazon S3 (Simple Storage Service) offre un stockage d’objets hautement évolutif, durable et disponible. Il est idéal pour les sauvegardes, les sites web statiques et l’archivage des données.
La gestion des compartiments S3 avec Terraform présente plusieurs avantages :
- Automatisation : créez et configurez des compartiments par programmation.
- Contrôle des versions : suivez les modifications apportées à la configuration de vos compartiments.
- Cohérence : assurez-vous que tous les environnements disposent de configurations S3 identiques.
Votre premier compartiment S3
Définissons un compartiment S3 simple. La ressource aws_s3_bucket sert à cela.
Les noms de compartiments doivent être uniques à l’échelle mondiale, parmi tous les comptes AWS. Choisissez un nom unique !
Essayez d’exécuter cet exemple :
resource "aws_s3_bucket" "my_unique_bucket" {
bucket = "my-coddykit-unique-bucket-12345" # Replace with a globally unique name
}
output "bucket_id" {
value = aws_s3_bucket.my_unique_bucket.id
}Nommage des compartiments et région
Lors de la création d’un compartiment S3, gardez à l’esprit les points essentiels suivants :
- Unicité mondiale : les noms de compartiments doivent être uniques à l’échelle mondiale, parmi tous les comptes AWS.
- Région : même si les noms sont mondiaux, le compartiment lui-même réside dans une région AWS précise, définie par la configuration de votre fournisseur AWS.
- Règles de nommage : les noms doivent être en minuscules, comporter de 3 à 63 caractères et peuvent contenir des traits d’union.
Le choix d’une bonne convention de nommage est essentiel pour garantir une organisation et une bonne lisibilité.
Sécurité et fonctionnalités de S3
S3 propose des fonctionnalités telles que la gestion des versions, qui permet de conserver plusieurs versions d’un objet, ainsi que le blocage de l’accès public pour renforcer la sécurité. Pour la plupart des compartiments, il est essentiel de bloquer l’accès public par défaut.
Cet exemple active la gestion des versions et garantit que l’accès public est bloqué.
Essayez d’exécuter cet exemple :
resource "aws_s3_bucket" "my_versioned_bucket" {
bucket = "coddykit-versioned-bucket-98765" # Replace with a unique name
}
resource "aws_s3_bucket_versioning" "my_versioned_bucket_versioning" {
bucket = aws_s3_bucket.my_versioned_bucket.id
versioning_configuration {
status = "Enabled"
}
}
resource "aws_s3_bucket_public_access_block" "my_versioned_bucket_public_access_block" {
bucket = aws_s3_bucket.my_versioned_bucket.id
block_public_acls = true
block_public_and_cross_account_access = true
ignore_public_acls = true
restrict_public_buckets = true
}
output "bucket_name_versioned" {
value = aws_s3_bucket.my_versioned_bucket.bucket
}AWS IAM : identité et accès
AWS IAM (Identity and Access Management) est un service web qui vous aide à contrôler de manière sécurisée l’accès aux ressources AWS. Il constitue un élément fondamental de la sécurité.
Avec IAM, vous pouvez :
- gérer les utilisateurs ainsi que leur accès par programmation ou via la console ;
- accorder des autorisations précises à des ressources AWS spécifiques ;
- contrôler qui peut effectuer quelle action dans votre compte AWS.
Terraform vous permet de définir et de gérer les ressources IAM comme les compartiments S3.
Approvisionnement d’un utilisateur IAM
Créons un nouvel utilisateur IAM avec Terraform. Un utilisateur IAM représente une personne ou un service qui interagit avec AWS.
Cet utilisateur ne disposera encore d’aucune autorisation ; nous les ajouterons ensuite.
Essayez d’exécuter cet exemple :
resource "aws_iam_user" "coddykit_user" {
name = "coddykit-app-user"
path = "/system/"
tags = {
Department = "DevOps"
}
}
output "iam_user_name" {
value = aws_iam_user.coddykit_user.name
}
output "iam_user_arn" {
value = aws_iam_user.coddykit_user.arn
}Comprendre les politiques IAM
Les politiques IAM sont des documents qui définissent les autorisations. Elles précisent quelles actions sont autorisées ou refusées sur quelles ressources et dans quelles conditions.
Les politiques sont rédigées en JSON et peuvent être associées à des utilisateurs, des groupes ou des rôles.
- Politiques basées sur l’identité : associées à une identité IAM (utilisateur, groupe ou rôle).
- Politiques basées sur les ressources : associées à une ressource (comme un compartiment S3 ou une file d’attente SQS).
Accorder des autorisations S3
Créons maintenant une politique qui accorde à notre utilisateur IAM un accès en lecture seule à un compartiment S3 précis, puis associons-la à cet utilisateur.
La ressource aws_iam_policy définit la politique, tandis que aws_iam_user_policy_attachment l’associe à l’utilisateur.
Essayez d’exécuter cet exemple :
resource "aws_s3_bucket" "policy_target_bucket" {
bucket = "coddykit-policy-bucket-112233" # Unique name
}
resource "aws_iam_user" "s3_reader_user" {
name = "coddykit-s3-reader"
}
data "aws_iam_policy_document" "s3_read_only_policy" {
statement {
actions = [
"s3:GetObject",
"s3:ListBucket"
]
resources = [
aws_s3_bucket.policy_target_bucket.arn,
"${aws_s3_bucket.policy_target_bucket.arn}/*"
]
}
}
resource "aws_iam_policy" "s3_read_only" {
name = "CoddyKitS3ReadOnlyPolicy"
description = "Grants read-only access to a specific S3 bucket"
policy = data.aws_iam_policy_document.s3_read_only_policy.json
}
resource "aws_iam_user_policy_attachment" "attach_s3_read_only" {
user = aws_iam_user.s3_reader_user.name
policy_arn = aws_iam_policy.s3_read_only.arn
}
output "s3_reader_user_name" {
value = aws_iam_user.s3_reader_user.name
}
output "s3_read_only_policy_arn" {
value = aws_iam_policy.s3_read_only.arn
}Organiser les utilisateurs avec des groupes IAM
Pour faciliter la gestion, en particulier lorsque vous avez de nombreux utilisateurs, vous pouvez utiliser des groupes IAM. Un groupe est un ensemble d’utilisateurs IAM.
Au lieu d’associer des politiques à des utilisateurs individuels, vous pouvez les associer à un groupe : tous les utilisateurs de ce groupe héritent alors de ces autorisations.
Cela simplifie la gestion des autorisations et permet de respecter plus facilement le principe du moindre privilège.
Vérification rapide : S3 et IAM
Lesquelles des affirmations suivantes concernant la gestion des compartiments AWS S3 et des utilisateurs ou politiques IAM avec Terraform sont TRUE ?
Récapitulatif : S3 et IAM
Excellent travail ! Dans cette leçon, vous avez appris à gérer les compartiments AWS S3 et les ressources IAM avec Terraform.
- Nous avons approvisionné des compartiments S3, configuré la gestion des versions et bloqué l’accès public.
- Nous avons créé des utilisateurs IAM et associé des politiques personnalisées afin d’accorder des autorisations précises.
- Vous comprenez maintenant l’importance de S3 pour le stockage et d’IAM pour contrôler les accès de manière sécurisée dans AWS, le tout défini sous forme de code !
Ensuite, nous approfondirons les techniques avancées de gestion de l’état.
Questions Fréquemment Posées
La leçon « Gestion des compartiments S3 et d’IAM » est-elle gratuite ?
Oui — le texte complet de « Gestion des compartiments S3 et d’IAM » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Gestion des compartiments S3 et d’IAM » ?
Apprenez à approvisionner et configurer des compartiments de stockage S3 et à gérer les ressources AWS Identity and Access Management (IAM) avec Terraform. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?
Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Gestion des compartiments S3 et d’IAM » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?
Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Configuration du fournisseur AWS
- Approvisionnement d’instances EC2
- Gestion des compartiments S3 et d’IAM
- Configurer un VPC et le réseau