Slik låser du S3-sikkerhetskopier – governance kan omgås av administratoren

|Forfatter: QUASAs redaksjon|5 min lesetid
Slik låser du S3-sikkerhetskopier – governance kan omgås av administratoren

For å låse S3-sikkerhetskopier aktiverer du versjonering og Object Lock på en bucket og setter oppbevaring for objektversjonene. AWS’ beskrivelse av låsemodusene viser at governance beskytter mot vanlige slettinger, men kan omgås med tillatelsen s3:BypassGovernanceRetention. Prøv derfor governance med en kort oppbevaringstid før du vurderer compliance, som hindrer sletting av en beskyttet versjon også for kontoens root-bruker.

Begynn i en egen testbucket med ufarlige kopier. AWS’ oppsettsveiledning viser hvordan du aktiverer Object Lock og setter standard oppbevaring: Når Object Lock først er aktivert på bucketen, kan funksjonen ikke slås av og versjonering kan ikke settes på pause. En governance-lås på en testversjon kan derimot omgås av en identitet med riktig tillatelse.

Velg modus etter hvem låsen skal tåle

Governance passer når du vil hindre utilsiktet sletting fra vanlige driftsroller, men beholde en kontrollert mulighet til å rette feil i oppbevaringen. Gi ikke s3:BypassGovernanceRetention til rollen som skriver eller sletter sikkerhetskopier i det daglige. En særskilt administrativ rolle kan få tillatelsen hvis nødprosedyren faktisk krever at en governance-beskyttet versjon slettes eller får kortere oppbevaringstid.

En administrator kan ikke omgå governance bare ved å være administrator i vanlig språkbruk: Identiteten må ha den særskilte tillatelsen. Ved API-kall må forespørselen også uttrykkelig be om omgåelse; S3-konsollen legger til dette automatisk for en identitet som har tillatelsen. Derfor bør en slettetest utføres med den samme rollen som sikkerhetskopijobben bruker, ikke bare med en privilegert konsollbruker.

Compliance er aktuelt når oppbevaringen må gjelde også for de mest privilegerte brukerne. Mens perioden løper, kan en beskyttet versjon ikke slettes, oppbevaringstiden kan ikke forkortes, og låsemodusen kan ikke endres. En feil valgt frist binder dermed versjonen til fristen utløper. Bestem perioden ut fra hvor lenge en brukbar kopi må kunne hentes tilbake, og prøv hele gjenopprettingen før du bruker compliance på produksjonskopier.

Sett opp en avgrenset governance-test

  1. Opprett en general purpose-bucket i ønsket AWS-region. Velg Enabled under Bucket Versioning og Enable for Object Lock under Advanced settings. På en eksisterende bucket finner du Object Lock under Properties; sørg for at versjonering er aktivert før du slår på låsen.
  2. La Default retention være avslått mens du prøver oppbevaring på én testversjon, eller velg en kort standardperiode i governance-modus hvis du vil prøve nøyaktig den opplastingsflyten som senere skal brukes. Å aktivere Object Lock på bucketen gir ikke alene nye objektversjoner en oppbevaringstid.
  3. Last opp en ufarlig kopi med samme metode som sikkerhetskopijobben skal bruke. Finn versjons-ID, låsemodus og datoen oppbevaringen utløper. Kontroller disse verdiene på selve versjonen, siden eksplisitte innstillinger ved opplasting går foran bucketens standardregel.
  4. Forsøk å slette den konkrete versjonen med den vanlige driftsrollen mens oppbevaringen gjelder. Prøv deretter en vanlig sletting uten versjons-ID og undersøk versjonshistorikken. De to forespørslene prøver ulike forhold: permanent sletting av en beskyttet versjon og opprettelse av en slettemarkør.
  5. Hent den bevarte versjonen ved hjelp av versjons-ID-en, gjenopprett den til et separat mål og kontroller innholdet. Hvis dere trenger en nødprosedyre for governance, prøv den særskilte rollen på et testobjekt og kontroller hvilke tillatelser den faktisk trenger.

Før du utvider testen, se på hvilke verdier sikkerhetskopiverktøyet sender ved opplasting. En bucket-standard beskytter nye versjoner som ikke får egne oppbevaringsinnstillinger, mens en eksplisitt modus og periode på en ny versjon overstyrer standarden. Endrer du standardregelen senere, blir ikke allerede opplastede versjoner automatisk låst på nytt. Kontrollen må derfor gjøres på en fersk kopi etter hver relevant endring i opplastingsflyten.

Prøv gjenoppretting fra riktig versjon

Object Lock beskytter en objektversjon, ikke navnet som brukes til å slå opp objektet. En ny opplasting med samme nøkkel lager en ny versjon uten å endre låsen på den eldre. En sletting uten versjons-ID kan legge en slettemarkør øverst i historikken, slik at et vanlig oppslag ser ut som om objektet er borte selv om den beskyttede versjonen fortsatt finnes.

Gjenopprettingsprøven bør derfor bruke en eldre, beskyttet versjon etter at en nyere versjon eller en slettemarkør er blitt gjeldende. Kontroller at riktig innhold kommer tilbake, og at rollen som skal håndtere en hendelse kan lese den aktuelle versjonen. En vellykket opplasting alene sier lite om hvorvidt kopien lar seg finne og bruke når den trengs.

Hvis en sikkerhetskopi består av flere objekter, prøv en samlet gjenoppretting. Du må kunne identifisere versjonene som hører til samme kopiering, og oppbevaringstiden må dekke tiden det tar å oppdage feilen og velge en frisk kopi. Dette er et valg ut fra egen gjenopprettingsprosess, ikke en frist Object Lock kan fastsette for deg.

Sett standarden for drift og regn på beholdte versjoner

Når governance-testen virker, kan du sette Default retention på bucketen til den valgte modusen og perioden. Kontroller deretter en ny opplasting med produksjonsrollens tillatelser. Hvis kravet er at heller ikke en identitet med omgåelsestillatelse skal kunne forkorte perioden eller slette versjonen, kan du velge compliance for nye kopier etter at oppbevaringstid og gjenoppretting er prøvd sammen.

Ta med beholdte versjoner i kostnadsanslaget. AWS’ veiledning om S3 Versioning forklarer at hver versjon er et helt objekt, ikke bare endringene fra forrige versjon, og at vanlig lagringspris gjelder for hver beholdt versjon. Et objekt som skrives på nytt ofte, kan derfor bruke langt mer plass enn størrelsen på den nyeste kopien antyder.

Bruk størrelsen på faktiske kopier, opplastingsfrekvensen og valgt oppbevaringstid når du anslår forbruket. S3 Lifecycle kan brukes til å håndtere eldre versjoner, men en utløpsregel kan ikke fjerne en versjon mens Object Lock fortsatt beskytter den. La perioden være lang nok til at en feil kan oppdages og kopien gjenopprettes, uten å binde flere fullstendige versjoner lenger enn behovet tilsier.

Les også:

Del:

Abonner på nyhetsbrevet vårt

Få de siste nyhetene om Web3, KI og krypto rett i innboksen.

0