Versjonering, MFA Delete og replikering
Aktiver versjonering for å beskytte mot utilsiktet sletting, konfigurer replikering på tvers av regioner og legg til MFA Delete.
Versjonering, MFA Delete og replikering er en gratis leksjon i AWS Solutions Architect på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AWS Solutions Architect, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AWS Solutions Architect inneholder totalt 4 leksjoner.
S3-versjonering: hvorfor det er viktig
S3 Versioning gjør det mulig å bevare, hente frem og gjenopprette hver versjon av hvert objekt som er lagret i en bucket. Når versjonering er aktivert, oppretter hver PUT en ny versjon med en unik versjons-ID; den gamle versjonen beholdes og overskrives ikke. Hvis et objekt slettes, legger S3 til en slettemarkør som gjeldende versjon, men beholder alle tidligere versjoner. Dette beskytter mot utilsiktet overskriving, utilsiktede slettinger og utilsiktet datakorrupsjon på applikasjonsnivå—de vanligste scenariene for datatap i produksjon.
# Enable versioning on a bucket
aws s3api put-bucket-versioning \
--bucket my-important-bucket \
--versioning-configuration Status=Enabled
# List all versions of an object
aws s3api list-object-versions \
--bucket my-important-bucket \
--prefix my-document.pdfVersjoneringstilstander og overganger
En S3-bucket kan være i én av tre versjoneringstilstander: Unversioned (standard, ingen versjons-ID-er), Versioning-enabled (alle nye objekter får unike versjons-ID-er, og alle overskrivinger oppretter nye versjoner) eller Versioning-suspended (nye objekter får en null-versjons-ID, mens eksisterende versjoner beholdes). De kan ikke slette versjonering etter at den er aktivert—den kan bare suspenderes. Objekter som ble opprettet før versjonering ble aktivert, har en null-versjons-ID og påvirkes ikke før de overskrives eller slettes.
Gjenopprette en tidligere versjon
For å gjenopprette en eldre versjon av et versjonert objekt har De to alternativer. Alternativ 1: Kopier den eldre versjons-ID-en tilbake til samme nøkkel—dette oppretter en ny versjon som er en kopi av det eldre innholdet, og gjør den til gjeldende versjon. Alternativ 2: Slett den gjeldende versjonen eller slettemarkøren for å gjøre den forrige versjonen gjeldende. Når De «sletter» et objekt i en versjonert bucket gjennom konsollen uten å angi en versjons-ID, legger S3 til en slettemarkør. Objektet ser slettet ut for forespørsler uten versjonering, men alle versjonene finnes fortsatt.
# Restore a specific version by copying it back to the same key
aws s3api copy-object \
--bucket my-important-bucket \
--copy-source 'my-important-bucket/my-document.pdf?versionId=abc123'\
--key my-document.pdfMFA Delete: ekstra beskyttelse
MFA Delete legger til et ekstra beskyttelseslag for versjonerte bucketer. Når funksjonen er aktivert, krever permanent sletting av en bestemt versjon eller endring av bucket-ens versjoneringstilstand (enabled → suspended) at gyldig MFA-legitimasjon oppgis i API-forespørselen. Dette beskytter mot en angriper som har fått tilgang til AWS-legitimasjonen Deres og permanent sletter kritiske versjoner, utilsiktet eller automatisert sletting av fastlåste objektversjoner og interne trusler som forsøker å ødelegge revisjonsspor. MFA Delete kan bare aktiveres og deaktiveres av root-brukeren via CLI.
# Enable MFA Delete (must be done as root user)
aws s3api put-bucket-versioning \
--bucket my-important-bucket \
--versioning-configuration Status=Enabled,MFADelete=Enabled \
--mfa 'arn:aws:iam::123456789012:mfa/root-account-mfa-device 123456'S3 Object Lock
S3 Object Lock håndhever en WORM-modell (write-once-read-many) for overholdelse av regulatoriske krav. Objekter som er låst med Object Lock, kan ikke slettes eller overskrives i en angitt oppbevaringsperiode—heller ikke av root-brukeren for kontoen. Det finnes to moduser: Governance mode (brukere med spesielle tillatelser kan overstyre eller fjerne låsen) og Compliance mode (ingen, heller ikke AWS, kan slette objektet i oppbevaringsperioden—den sterkeste beskyttelsen). Object Lock må aktiveres når bucket-en opprettes, og krever versjonering.
# Apply a retention rule to an object
aws s3api put-object-retention \
--bucket my-compliance-bucket \
--key audit-log-2024.csv \
--version-id abc123 \
--retention '{"Mode":"COMPLIANCE","RetainUntilDate":"2027-01-01T00:00:00Z"}'S3-replikering på tvers av regioner (CRR)
Cross-Region Replication (CRR) replikerer automatisk nye objekter og oppdateringer fra en kildebucket i én region til en destinasjonsbucket i en annen region. Bruksområder er overholdelse av regulatoriske krav (beholde en kopi av data i et bestemt land), katastrofegjenoppretting (redusere RPO for kritiske data ved å opprettholde en kopi i en annen region) og redusert forsinkelse (levere objekter fra regionen som er nærmest brukerne). CRR krever at versjonering er aktivert på både kilde- og destinasjonsbucket-en, samt en IAM-rolle med nødvendige replikeringstillatelser.
# Apply a replication configuration
aws s3api put-bucket-replication \
--bucket source-bucket-us-east-1 \
--replication-configuration file://replication-config.json
# Config specifies Role ARN, destination bucket ARN, and filter rulesReplikering i samme region (SRR)
Same-Region Replication (SRR) replikerer objekter innenfor samme region. Bruksområder er loggsamling (replikere logger fra flere kildebucketer til én sentral bucket), synkronisering av testmiljø (beholde en kopi av produksjonsdata i en utviklingsbucket i samme region) og overholdelse av krav til datasuverenitet innenfor ett enkelt land med flere AWS-tilgjengelighetssoner. I likhet med CRR krever SRR versjonering på begge bucketer og en IAM-rolle. Bare nye objekter som opprettes etter at replikering er aktivert, replikeres automatisk. Bruk S3 Batch Replication til å replikere eksisterende objekter.
Replikering: hva som replikeres og ikke replikeres
S3-replikering replikerer: nye objekter, metadata, tagger, ACL-er og krypteringsstatus. Som standard replikerer den ikke: objekter som eksisterte før replikering ble aktivert (bruk S3 Batch Replication for disse), slettemarkører (med mindre De aktiverer Delete Marker Replication), objekter i Glacier (kan ikke replikeres—gjenopprett dem først) og replikerte objekter (ingen kaskadereplikering mellom tre bucketer). Det er viktig å forstå disse begrensningene når De utformer komplette strategier for katastrofegjenoppretting, der også historiske data og slettehendelser må replikeres.
S3 Replication Time Control (RTC)
Replication Time Control (RTC) er et valgfritt tillegg for CRR som gir en tjenestenivåavtale: 99,99 % av objektene replikeres innen 15 minutter, med replikeringsmålinger og varsler i CloudWatch. Uten RTC har replikeringen ingen tidsfordel—de fleste objekter replikeres raskt, men enkelte kan ta flere timer. RTC er nødvendig når kravene til katastrofegjenoppretting eller regulatorisk overholdelse angir et maksimalt Recovery Point Objective (RPO) for data i S3. Det medfører en replikeringskostnad per GB i tillegg til den vanlige kostnaden for dataoverføring ved replikering.
Versjonering og lagringskostnader
Aktivering av versjonering øker lagringskostnadene fordi S3 beholder hver versjon av hvert objekt til den slettes eksplisitt. En fil på 100 MB som overskrives 10 ganger, bruker nå 1 000 MB lagringsplass. Dette kan begrenses med livssyklusregler som automatisk utløper ikke-aktive versjoner etter et angitt antall dager (for eksempel ved å slette ikke-aktive versjoner som er eldre enn 30 dager), eller ved å flytte ikke-aktive versjoner til rimeligere lagringsklasser som Glacier. Kombiner alltid versjonering med livssyklusregler i produksjon for å kontrollere lagringskostnadene.
# Lifecycle rule to expire non-current versions after 30 days
aws s3api put-bucket-lifecycle-configuration \
--bucket my-important-bucket \
--lifecycle-configuration '{"Rules":[{"ID":"expire-old-versions","Status":"Enabled","NoncurrentVersionExpiration":{"NoncurrentDays":30}}]}'Beskyttelse mot løsepengevirus
S3-versjonering kombinert med Object Lock (Compliance-modus) gir god beskyttelse mot løsepengevirus. Hvis en angriper krypterer eller sletter objektene dine, sørger versjonering for at tidligere versjoner beholdes (med mindre angriperen sletter dem permanent – derfor forhindrer Object Lock permanent sletting i oppbevaringsperioden). For maksimal beskyttelse: aktiver versjonering, aktiver MFA Delete, bruk Object Lock i Compliance-modus for kritiske data, og repliker til en annen Region med separate IAM-legitimasjoner for å hindre at et kompromittert enkeltkonto ødelegger alle kopier.
Rask kontroll
Test forståelsen din av AWS Solutions Architect-konsepter (SAA-C03) fra denne leksjonen.
Oppsummering av leksjonen
I denne leksjonen lærte du at versjonering bevarer alle versjoner av hvert objekt og beskytter mot utilsiktet sletting, at MFA Delete og Object Lock gir ekstra uforanderlighet for samsvarskrav og beskyttelse mot løsepengevirus, og at CRR og SRR replikerer objekter til andre bøtter for å oppfylle krav til katastrofegjenoppretting og samsvar. Deretter skal vi se nærmere på S3-lagringsklasser og livssyklusregler for kostnadsoptimalisering.
Lær deg AWS Solutions Architect med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Versjonering, MFA Delete og replikering» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien AWS Solutions Architect, inkludert «Versjonering, MFA Delete og replikering», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i AWS Solutions Architect inneholder totalt 4 leksjoner.
Hva lærer jeg i «Versjonering, MFA Delete og replikering»?
Aktiver versjonering for å beskytte mot utilsiktet sletting, konfigurer replikering på tvers av regioner og legg til MFA Delete. Du øver på AWS Solutions Architect med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med AWS Solutions Architect?
Ingen tidligere erfaring er nødvendig. AWS Solutions Architect på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Versjonering, MFA Delete og replikering»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne AWS Solutions Architect-leksjonen?
Ja. Alle AWS Solutions Architect-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Bucket-er, objekter og regioner
- S3-tilgangskontroll: Bucket-policyer og ACL-er
- Versjonering, MFA Delete og replikering
- Lagringsklasser og livssykluspolicyer