S3-buckets en IAM beheren
Leer S3-opslagbuckets beschikbaar te stellen en te configureren en AWS Identity and Access Management (IAM)-resources met Terraform te beheren.
S3-buckets en IAM beheren is een gratis Terraform als Infrastructure as Code-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Terraform als Infrastructure as Code. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Terraform als Infrastructure as Code bevat in totaal 4 lessen.
S3 en Terraform: cloudopslag
Amazon S3 (Simple Storage Service) biedt zeer schaalbare, duurzame en beschikbare objectopslag. Het is ideaal voor back-ups, statische websites en gegevensarchivering.
S3-buckets beheren met Terraform biedt verschillende voordelen:
- Automatisering: Maak buckets programmatisch aan en configureer ze.
- Versiebeheer: Houd wijzigingen in je bucketconfiguraties bij.
- Consistentie: Zorg ervoor dat alle omgevingen identieke S3-configuraties hebben.
Je eerste S3-bucket
We definiëren een eenvoudige S3-bucket. Hiervoor gebruik je het aws_s3_bucket-resource.
Bucketnamen moeten wereldwijd uniek zijn voor alle AWS-accounts. Kies een unieke naam!
Probeer dit voorbeeld uit te voeren:
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
}Bucketnamen en regio
Houd bij het maken van een S3-bucket rekening met deze belangrijke punten:
- Wereldwijde uniciteit: Bucketnamen moeten wereldwijd uniek zijn voor alle AWS-accounts.
- Regio: Hoewel namen wereldwijd uniek zijn, bevindt de bucket zelf zich in een specifieke AWS-regio (gedefinieerd door je AWS-providerconfiguratie).
- Naamgevingsregels: Namen moeten uit kleine letters bestaan, 3 tot 63 tekens lang zijn en koppeltekens mogen bevatten.
Een goede naamgevingsconventie kiezen is essentieel voor overzicht en duidelijkheid.
S3-beveiliging en functies
S3 biedt functies zoals versiebeheer om meerdere versies van een object te bewaren, en blokkering van openbare toegang voor beveiliging. Voor de meeste buckets is het essentieel om openbare toegang standaard te blokkeren.
Dit voorbeeld schakelt versiebeheer in en zorgt ervoor dat openbare toegang wordt geblokkeerd.
Probeer dit voorbeeld uit te voeren:
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: identiteit en toegang
AWS IAM (Identity and Access Management) is een webservice waarmee je de toegang tot AWS-resources veilig kunt beheren. Het is een fundamenteel onderdeel van beveiliging.
Met IAM kun je:
- Gebruikers en hun programmatische toegang en consoletoegang beheren.
- Gedetailleerde machtigingen toekennen aan specifieke AWS-resources.
- Bepalen wie wat mag doen in je AWS-account.
Met Terraform kun je IAM-resources definiëren en beheren, net als S3-buckets.
Een IAM-gebruiker inrichten
We maken met Terraform een nieuwe IAM-gebruiker. Een IAM-gebruiker vertegenwoordigt een persoon of service die met AWS werkt.
Deze gebruiker heeft nog geen machtigingen; die voegen we hierna toe.
Probeer dit voorbeeld uit te voeren:
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
}IAM-beleidsregels begrijpen
IAM-beleidsregels zijn documenten waarin machtigingen worden gedefinieerd. Ze specificeren welke acties op welke resources zijn toegestaan of geweigerd en onder welke voorwaarden.
Beleidsregels worden geschreven in JSON en kunnen aan gebruikers, groepen of rollen worden gekoppeld.
- Identiteitsgebaseerde beleidsregels: Gekoppeld aan een IAM-identiteit (gebruiker, groep, rol).
- Resourcegebaseerde beleidsregels: Gekoppeld aan een resource (zoals een S3-bucket of SQS-wachtrij).
S3-machtigingen toekennen
We maken nu een beleidsregel die onze IAM-gebruiker alleen-lezen-toegang geeft tot een specifieke S3-bucket en koppelen deze daarna.
Het aws_iam_policy-resource definieert de beleidsregel en aws_iam_user_policy_attachment koppelt deze aan de gebruiker.
Probeer dit voorbeeld uit te voeren:
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
}Organiseren met IAM-groepen
Voor beter beheer, vooral bij veel gebruikers, kun je IAM-groepen gebruiken. Een groep is een verzameling IAM-gebruikers.
In plaats van beleidsregels aan afzonderlijke gebruikers te koppelen, kun je ze aan een groep koppelen. Alle gebruikers in die groep nemen die machtigingen over.
Dit vereenvoudigt het beheer van machtigingen en maakt het gemakkelijker om het principe van minimale bevoegdheden te volgen.
Korte controle: S3 en IAM
Welke van de volgende uitspraken over het beheren van AWS S3-buckets en IAM-gebruikers en -beleidsregels met Terraform zijn WAAR?
Samenvatting: S3 en IAM
Goed gedaan! In deze les heb je geleerd hoe je AWS S3-buckets en IAM-resources met Terraform beheert.
- We hebben S3-buckets ingericht, versiebeheer geconfigureerd en openbare toegang geblokkeerd.
- We hebben IAM-gebruikers gemaakt en aangepaste beleidsregels gekoppeld om specifieke machtigingen toe te kennen.
- Je begrijpt nu het belang van S3 voor opslag en IAM voor veilige toegangscontrole in AWS, allemaal gedefinieerd als code!
Hierna gaan we dieper in op geavanceerde technieken voor statusbeheer.
Leer Terraform als Infrastructure as Code met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “S3-buckets en IAM beheren” gratis?
Ja — de volledige tekst van “S3-buckets en IAM beheren” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Terraform als Infrastructure as Code wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Terraform als Infrastructure as Code bevat in totaal 4 lessen.
Wat leer ik in “S3-buckets en IAM beheren”?
Leer S3-opslagbuckets beschikbaar te stellen en te configureren en AWS Identity and Access Management (IAM)-resources met Terraform te beheren. Je oefent met Terraform als Infrastructure as Code door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Terraform als Infrastructure as Code te beginnen?
Ervaring vooraf is niet nodig. Terraform als Infrastructure as Code op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “S3-buckets en IAM beheren”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Terraform als Infrastructure as Code?
Ja. Elke les over Terraform als Infrastructure as Code bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- AWS-provider configureren
- EC2-instanties beschikbaar stellen
- S3-buckets en IAM beheren
- VPC en networking configureren