Administration af S3-buckets og IAM
Lær at klargøre og konfigurere S3-lagerbuckets samt administrere AWS Identity and Access Management (IAM)-ressourcer med Terraform.
Administration af S3-buckets og IAM er en gratis Terraform som infrastruktur som kode-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Terraform som infrastruktur som kode, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Terraform som infrastruktur som kode-kurset indeholder 4 lektioner i alt.
S3 og Terraform: Cloud-lager
Amazon S3 (Simple Storage Service) tilbyder objektlager, der er meget skalerbart, robust og tilgængeligt. Det er perfekt til sikkerhedskopier, statiske websteder og dataarkivering.
Det giver flere fordele at administrere S3-buckets med Terraform:
- Automatisering: Opret og konfigurer buckets programmatisk.
- Versionsstyring: Spor ændringer i dine bucket-konfigurationer.
- Konsistens: Sørg for, at alle miljøer har identiske S3-opsætninger.
Din første S3-bucket
Lad os definere en enkel S3-bucket. Ressourcen aws_s3_bucket bruges til dette.
Bucket-navne skal være globalt unikke på tværs af alle AWS-konti. Vælg et unikt navn!
Prøv at køre dette eksempel:
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
}Navngivning af buckets og region
Husk disse vigtige punkter, når du opretter en S3-bucket:
- Global entydighed: Bucket-navne skal være globalt unikke på tværs af alle AWS-konti.
- Region: Selvom navnene er globale, befinder selve bucketen sig i en bestemt AWS-region (defineret i konfigurationen af din AWS-provider).
- Navngivningsregler: Navne skal skrives med små bogstaver, være på 3 til 63 tegn og må indeholde bindestreger.
Det er vigtigt at vælge en god navngivningskonvention for at sikre organisering og tydelighed.
S3-sikkerhed og funktioner
S3 tilbyder funktioner som versionsstyring, der bevarer flere versioner af et objekt, samt blokering af offentlig adgang af hensyn til sikkerheden. Det er afgørende som standard at blokere offentlig adgang for de fleste buckets.
Dette eksempel konfigurerer versionsstyring og sikrer, at offentlig adgang er blokeret.
Prøv at køre dette eksempel:
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: Identitet og adgang
AWS IAM (Identity and Access Management) er en webtjeneste, der hjælper dig med at kontrollere adgangen til AWS-ressourcer på en sikker måde. Det er grundlæggende for sikkerheden.
Med IAM kan du:
- Administrere brugere og deres program- og konsoladgang.
- Tildele detaljerede tilladelser til bestemte AWS-ressourcer.
- Kontrollere, hvem der må gøre hvad på din AWS-konto.
Terraform giver dig mulighed for at definere og administrere IAM-ressourcer på samme måde som S3-buckets.
Klargøring af en IAM-bruger
Lad os oprette en ny IAM-bruger ved hjælp af Terraform. En IAM-bruger repræsenterer en person eller en tjeneste, der interagerer med AWS.
Denne bruger har endnu ingen tilladelser. Dem tilføjer vi bagefter.
Prøv at køre dette eksempel:
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
}Forstå IAM-politikker
IAM-politikker er dokumenter, der definerer tilladelser. De angiver, hvilke handlinger der er tilladt eller afvist på hvilke ressourcer, og under hvilke betingelser.
Politikker skrives i JSON og kan knyttes til brugere, grupper eller roller.
- Identitetsbaserede politikker: Knyttes til en IAM-identitet (bruger, gruppe eller rolle).
- Ressourcebaserede politikker: Knyttes til en ressource (f.eks. en S3-bucket eller SQS-kø).
Tildeling af S3-tilladelser
Lad os nu oprette en politik, der giver vores IAM-bruger skrivebeskyttet adgang til en bestemt S3-bucket, og derefter knytte den til brugeren.
Ressourcen aws_iam_policy definerer politikken, og aws_iam_user_policy_attachment knytter den til brugeren.
Prøv at køre dette eksempel:
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
}Organisering med IAM-grupper
Du kan bruge IAM-grupper for at opnå bedre administration, især når du har mange brugere. En gruppe er en samling af IAM-brugere.
I stedet for at knytte politikker til individuelle brugere kan du knytte dem til en gruppe, hvorefter alle brugere i gruppen arver disse tilladelser.
Det forenkler administrationen af tilladelser og gør det nemmere at følge princippet om mindste privilegium.
Hurtig kontrol: S3 og IAM
Hvilke af følgende udsagn om administration af AWS S3-buckets og IAM-brugere/-politikker med Terraform er SANDE?
Opsummering: S3 og IAM
Godt klaret! I denne lektion har du lært, hvordan du administrerer AWS S3-buckets og IAM-ressourcer ved hjælp af Terraform.
- Vi klargjorde S3-buckets, konfigurerede versionsstyring og blokerede offentlig adgang.
- Vi oprettede IAM-brugere og knyttede brugerdefinerede politikker til dem for at tildele bestemte tilladelser.
- Du forstår nu betydningen af S3 til lagring og IAM til sikker adgangskontrol i AWS, alt sammen defineret som kode!
Nu går vi videre til avancerede teknikker til håndtering af tilstand.
Lær Terraform som infrastruktur som kode med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Administration af S3-buckets og IAM” gratis?
Ja — hele teksten til “Administration af S3-buckets og IAM” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Terraform som infrastruktur som kode-kurset, skal du opgradere til CoddyKit PRO. Terraform som infrastruktur som kode-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Administration af S3-buckets og IAM”?
Lær at klargøre og konfigurere S3-lagerbuckets samt administrere AWS Identity and Access Management (IAM)-ressourcer med Terraform. Du øver dig i Terraform som infrastruktur som kode med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Terraform som infrastruktur som kode?
Der kræves ingen tidligere erfaring. Terraform som infrastruktur som kode på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Administration af S3-buckets og IAM”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Terraform som infrastruktur som kode-lektion?
Ja. Alle Terraform som infrastruktur som kode-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Konfiguration af AWS Provider
- Klargøring af EC2-instanser
- Administration af S3-buckets og IAM
- Konfiguration af VPC og netværk