0Pricing
Cloud & IT Cert Prep · Lekcja

Wersjonowanie, MFA Delete i replikacja

Włączą wersjonowanie, aby chronić się przed przypadkowym usunięciem danych, skonfigurują replikację między Regionami i dodadzą MFA Delete.

Wersjonowanie, MFA Delete i replikacja to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Przechowywanie wersji w S3: dlaczego ma znaczenie

Przechowywanie wersji w S3 umożliwia zachowanie, pobieranie i przywracanie każdej wersji każdego obiektu przechowywanego w bucketu. Gdy przechowywanie wersji jest włączone, każda operacja PUT tworzy nową wersję z unikalnym identyfikatorem wersji; stara wersja zostaje zachowana, a nie zastąpiona. Po usunięciu obiektu S3 dodaje znacznik usunięcia jako bieżącą wersję, ale zachowuje wszystkie wcześniejsze wersje. Chroni to przed przypadkowym zastąpieniem, przypadkowym usunięciem i niezamierzoną korupcją danych na poziomie aplikacji — najczęstszymi scenariuszami utraty danych w środowisku produkcyjnym.

# 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.pdf

Stany przechowywania wersji i przejścia między nimi

Bucket S3 może znajdować się w jednym z trzech stanów przechowywania wersji: Unversioned (domyślny, bez identyfikatorów wersji), Versioning-enabled (wszystkie nowe obiekty otrzymują unikalne identyfikatory wersji, a każde zastąpienie tworzy nową wersję) lub Versioning-suspended (nowe obiekty otrzymują identyfikator wersji null, ale istniejące wersje zostają zachowane). Po włączeniu przechowywania wersji nie można go usunąć — można je tylko zawiesić. Obiekty utworzone przed włączeniem przechowywania wersji mają identyfikator wersji null i nie zostaną zmienione, dopóki nie zostaną zastąpione lub usunięte.

Przywracanie poprzedniej wersji

Aby przywrócić starszą wersję obiektu z włączonym przechowywaniem wersji, można skorzystać z dwóch opcji. Opcja 1: należy skopiować identyfikator starszej wersji z powrotem do tego samego klucza — spowoduje to utworzenie nowej wersji będącej kopią starszej zawartości i ustawienie jej jako bieżącej. Opcja 2: należy usunąć bieżącą wersję lub znacznik usunięcia, aby poprzednia wersja stała się bieżącą. Gdy w konsoli „usuwają” Państwo obiekt z bucketu z włączonym przechowywaniem wersji, nie podając identyfikatora wersji, S3 dodaje znacznik usunięcia — obiekt wygląda na usunięty dla żądań nieuwzględniających wersji, ale wszystkie wersje nadal istnieją.

# 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.pdf

MFA Delete: dodatkowa ochrona

MFA Delete dodaje drugą warstwę ochrony dla bucketów z włączonym przechowywaniem wersji. Po włączeniu tej funkcji trwałe usunięcie określonej wersji lub zmiana stanu przechowywania wersji bucketu (enabled → suspended) wymaga podania prawidłowych danych MFA w żądaniu API. Chroni to przed trwałym usunięciem krytycznych wersji przez osobę atakującą, która przejęła poświadczenia AWS, przypadkowym lub automatycznym usunięciem przypiętych wersji obiektów oraz zagrożeniami wewnętrznymi polegającymi na próbie zniszczenia śladów audytowych. Funkcję MFA Delete może włączać i wyłączać wyłącznie użytkownik root za pośrednictwem interfejsu 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 wymusza model WORM (write-once-read-many) na potrzeby zgodności z przepisami. Obiektów zablokowanych za pomocą Object Lock nie można usuwać ani zastępować przez określony okres przechowywania — nawet przy użyciu konta root. Dostępne są dwa tryby: Governance mode (użytkownicy ze specjalnymi uprawnieniami mogą zastąpić blokadę lub ją usunąć) oraz Compliance mode (nikt, nawet AWS, nie może usunąć obiektu w okresie przechowywania — jest to najsilniejsza ochrona). Funkcję Object Lock należy włączyć podczas tworzenia bucketu; wymaga ona także włączenia przechowywania wersji.

# 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"}'

Replikacja S3 między regionami (CRR)

Cross-Region Replication (CRR) automatycznie replikuje nowe obiekty i aktualizacje z bucketu źródłowego w jednym regionie do bucketu docelowego w innym regionie. Przykładowe zastosowania to: zgodność z przepisami (przechowywanie kopii danych w określonym kraju), odtwarzanie po awarii (zmniejszenie RPO dla krytycznych danych dzięki utrzymywaniu kopii w drugim regionie) oraz redukcja opóźnień (udostępnianie obiektów z regionu znajdującego się najbliżej użytkowników). CRR wymaga włączenia przechowywania wersji zarówno w bucketach źródłowym, jak i docelowym, oraz roli IAM z niezbędnymi uprawnieniami do replikacji.

# 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 rules

Replikacja w tym samym regionie (SRR)

Same-Region Replication (SRR) replikuje obiekty w obrębie tego samego regionu. Przykładowe zastosowania to: agregacja logów (replikowanie logów z wielu bucketów źródłowych do jednego centralnego bucketu), synchronizacja środowiska testowego (utrzymywanie kopii danych produkcyjnych w buckecie deweloperskim w tym samym regionie) oraz zgodność z zasadą suwerenności danych w jednym kraju, w którym znajduje się wiele stref dostępności AWS. Podobnie jak CRR, SRR wymaga włączenia przechowywania wersji w obu bucketach oraz roli IAM. Automatycznie replikowane są tylko nowe obiekty utworzone po włączeniu replikacji — do replikowania istniejących obiektów należy użyć S3 Batch Replication.

Replikacja: co jest replikowane, a co nie

Replikacja S3 obejmuje: nowe obiekty, metadane, tagi, listy ACL i stan szyfrowania. Domyślnie replikacja nie obejmuje: obiektów istniejących przed jej włączeniem (w ich przypadku należy użyć S3 Batch Replication), znaczników usunięcia (chyba że włączą Państwo Delete Marker Replication), obiektów w Glacier (nie można ich replikować — najpierw należy je przywrócić) ani obiektów już zreplikowanych (replikacja kaskadowa między trzema bucketami nie jest obsługiwana). Zrozumienie tych ograniczeń jest ważne podczas projektowania kompletnych strategii odtwarzania po awarii, w których trzeba również replikować dane historyczne i zdarzenia usunięcia.

S3 Replication Time Control (RTC)

Replication Time Control (RTC) to opcjonalny dodatek do CRR, który zapewnia umowę SLA: 99,99% obiektów zostaje zreplikowanych w ciągu 15 minut, a w CloudWatch dostępne są metryki replikacji i powiadomienia. Bez RTC replikacja nie ma gwarantowanego czasu realizacji — większość obiektów jest replikowana szybko, ale w pojedynczych przypadkach może to potrwać kilka godzin. RTC jest niezbędne, gdy wymagania dotyczące odtwarzania po awarii lub zgodności z przepisami określają maksymalny cel punktu odtwarzania (RPO) dla danych w S3. Oprócz standardowego kosztu transferu danych podczas replikacji naliczana jest opłata za replikację za każdy GB.

Wpływ wersjonowania na koszty przechowywania

Włączenie wersjonowania zwiększa koszty przechowywania, ponieważ S3 zachowuje każdą wersję każdego obiektu do momentu jej jawnego usunięcia. Plik o rozmiarze 100 MB, który zostanie nadpisany 10 razy, zajmuje teraz 1000 MB przestrzeni. Można temu zapobiec za pomocą reguł cyklu życia, które automatycznie usuwają nieaktualne wersje po określonej liczbie dni (np. usuwają nieaktualne wersje starsze niż 30 dni) lub przenoszą je do tańszych klas przechowywania, takich jak Glacier. W środowisku produkcyjnym zawsze należy łączyć wersjonowanie z regułami cyklu życia, aby kontrolować koszty przechowywania.

# 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}}]}'

Ochrona przed ransomware

Wersjonowanie S3 w połączeniu z Object Lock (tryb Compliance) zapewnia silną ochronę przed ransomware. Jeśli osoba atakująca zaszyfruje lub usunie obiekty, wersjonowanie gwarantuje zachowanie poprzednich wersji (chyba że osoba atakująca usunie je trwale — dlatego Object Lock uniemożliwia trwałe usunięcie danych w okresie przechowywania). Aby zapewnić maksymalną ochronę: należy włączyć wersjonowanie, włączyć MFA Delete, zastosować Object Lock w trybie Compliance dla danych krytycznych oraz replikować dane do drugiego Region z użyciem oddzielnych danych uwierzytelniających IAM, aby pojedyncze przejęcie konta nie mogło doprowadzić do zniszczenia wszystkich kopii.

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat zagadnień AWS Solutions Architect (SAA-C03) z tej lekcji.

Podsumowanie lekcji

W tej lekcji dowiedziałeś się, że: wersjonowanie zachowuje wszystkie wersje każdego obiektu i chroni przed przypadkowym usunięciem, MFA Delete i Object Lock zapewniają dodatkową niezmienność danych na potrzeby zgodności z wymaganiami i ochrony przed ransomware, a CRR i SRR replikują obiekty do innych bucketów, aby spełnić wymagania dotyczące odzyskiwania po awarii i zgodności. W następnej części omówimy klasy przechowywania S3 i zasady cyklu życia służące optymalizacji kosztów.

Często zadawane pytania

Czy lekcja „Wersjonowanie, MFA Delete i replikacja” jest bezpłatna?

Tak — pełny tekst „Wersjonowanie, MFA Delete i replikacja” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Co nauczysz się w „Wersjonowanie, MFA Delete i replikacja”?

Włączą wersjonowanie, aby chronić się przed przypadkowym usunięciem danych, skonfigurują replikację między Regionami i dodadzą MFA Delete. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?

Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Wersjonowanie, MFA Delete i replikacja”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?

Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Buckety, obiekty i Regiony
  2. Kontrola dostępu S3: zasady bucketów i ACL
  3. Wersjonowanie, MFA Delete i replikacja
  4. Klasy pamięci masowej i zasady cyklu życia
← Powrót do Cloud & IT Cert Prep