Jak zabezpieczyć obiekty S3 za pomocą szyfrowania Amazon S3

Wiele firm przechowuje dane w magazynie-chmura. Usługi magazynu-chmury cieszą się obecnie dużą popularnością ze względu na ich wysoką niezawodność i dostępność – dwa czynniki o kluczowym znaczeniu dla biznesu. Amazon jest jednym z czołowych dostawców usług w chmurze na rynku. Usługi te noszą nazwę Amazon Web Services (AWS). Amazon zapewnia wysoki poziom bezpieczeństwa, w tym szyfrowane połączenie sieciowe wykorzystywane do uzyskiwania dostępu do plików i usług. Szyfrowanie zmniejsza ryzyko przechwycenia danych w sieci. Dane mają kluczowe znaczenie dla każdej firmy i każdego użytkownika. Nikt nie chce, aby jego dane zostały utracone, uszkodzone lub skradzione.

Z tego powodu Amazon zapewnia opcje szyfrowania do przechowywania danych w swoich różnych usługach magazynu w chmurze. Te opcje magazynu w chmurze obejmują woluminy EBS, wysokowydajną pamięć masową dla maszyn wirtualnych (instancji), oraz Amazon S3, usługę magazynu w chmurze opracowaną do przechowywania kopii zapasowych, archiwów, plików aplikacji i innych danych. Możesz szyfrować zasoby Amazon S3 oraz pliki przechowywane w tych zasobach, korzystając z opcji szyfrowania AWS. Ten wpis na blogu dotyczy szyfrowania Amazon S3, w tym typów szyfrowania i konfiguracji.

Bezpośrednie tworzenie kopii zapasowej w usłudze AWS S3 | NAKIVO

Bezpośrednie tworzenie kopii zapasowej w usłudze AWS S3 | NAKIVO

Unikaj pojedynczego punktu awarii dzięki prostej integracji z Amazon S3 oraz opcjom ochrony przed oprogramowaniem wymuszającym okup. Funkcje automatycznej obsługi warstw kopii zapasowych i natychmiastowego odzyskiwania danych.

O szyfrowaniu danych

Szyfrowanie danych to proces zabezpieczania danych poprzez ich kodowanie. Dane są kodowane przy użyciu hasła lub klucza szyfrującego oraz specjalnych algorytmów szyfrujących. Dostęp do zaszyfrowanych danych można uzyskać po wprowadzeniu prawidłowego hasła lub klucza szyfrującego (do odszyfrowywania). Szyfrowanie danych służy do ochrony poufności danych cyfrowych, nawet jeśli osoba nieuprawniona uzyska do nich dostęp logiczny lub fizyczny. Jeśli osoba nieuprawniona uzyska dostęp do zaszyfrowanych danych, dane te są nieczytelne bez klucza lub hasła. Nowoczesne algorytmy szyfrujące sprawiają, że złamanie długiego klucza szyfrującego lub złożonego hasła jest trudne i prawie niemożliwe. Można stosować różne algorytmy szyfrujące, na przykład AES, 3DES, RSA, Blowfish i tak dalej. Głównymi rodzajami kryptografii są kryptografia klucza symetrycznego i kryptografia klucza asymetrycznego.

Amazon zaleca stosowanie szyfrowania S3 podczas przechowywania danych w zasobnikach Amazon S3. Pierwszym powodem tego zalecenia jest bezpieczeństwo. Szyfrowanie zwiększa poziom bezpieczeństwa i prywatności. Istnieje jednak jeszcze jeden powód, dla którego dane przechowywane w chmurze powinny być szyfrowane. Amazon przechowuje dane użytkowników z różnych krajów. Czasami państwo może zażądać przekazania danych do celów dochodzenia, jeśli klient lub organizacja jest podejrzana o naruszenie prawa. Jednak Amazon musi przestrzegać umowy licencyjnej i przepisów innych krajów (krajów, których obywatele są klientami Amazon), co może prowadzić do konfliktu.

Jeśli dane użytkownika są zaszyfrowane, a Amazon nie posiada kluczy szyfrujących, dane użytkownika nie mogą zostać przekazane organizacjom lub osobom trzecim (nawet jeśli zaszyfrowane dane zostaną przekazane, będą one bezużytecznym i nieczytelnym zestawem bitów). Wyobraźmy sobie sytuację, w której Stany Zjednoczone zwracają się do europejskiego klienta Amazon o udostępnienie danych w celu przeprowadzenia dochodzenia. Co należy zrobić w takim przypadku? Jak zapewne wiesz, dane osobowe obywateli europejskich są chronione przez Ogólne rozporządzenie o ochronie danych (RODO). Więcej informacji na ten temat można znaleźć w oficjalnym dokumencie Ogólne rozporządzenie o ochronie danych UE.

Rodzaje szyfrowania w Amazon S3

Jak działa szyfrowanie w S3? Amazon oferuje kilka rodzajów szyfrowania danych przechowywanych w Amazon S3. Czy S3 jest szyfrowane? Domyślnie dane przechowywane w zasobniku S3 nie są szyfrowane, ale można skonfigurować ustawienia szyfrowania AWS S3.

Należy określić, której metody szyfrowania użyć, po udzieleniu odpowiedzi na następujące pytania:

  • Kto szyfruje i odszyfruje dane?
  • Kto przechowuje klucz tajny?
  • Kto zarządza kluczem tajnym?

Przyjrzyjmy się dostępnym metodom szyfrowania AWS dla obiektów S3 przechowywanych w zasobniku.

Szyfrowanie po stronie serwera

Szyfrowanie po stronie serwera (SSE) to najprostsza opcja szyfrowania danych. Wszystkie złożone operacje szyfrowania są wykonywane po stronie serwera w chmurze AWS. Wysyłasz surowe (niezaszyfrowane) dane do AWS, a następnie dane są szyfrowane po stronie AWS podczas zapisywania w magazynie-chmura. Gdy chcesz odzyskać swoje dane, Amazon odczytuje zaszyfrowane dane, wykonuje odszyfrowywanie potrzebnych danych po stronie serwera Amazon, a następnie wysyła do Ciebie niezaszyfrowane dane przez sieć. Proces ten jest przezroczysty dla użytkowników końcowych.

SSE-S3 jest najprostszą metodą – klucze są zarządzane i obsługiwane przez AWS w celu szyfrowania wybranych przez Ciebie danych. Nie możesz bezpośrednio zobaczyć klucza ani użyć go ręcznie do szyfrowania lub odszyfrowywania danych. Jako algorytm szyfrowania stosowany jest AES-256. AES (Advanced Encryption Standard) to symetryczny szyfr blokowy, w którym długość klucza kryptograficznego wynosi 256 bitów. Jeśli w pełni ufasz AWS, użyj tej metody szyfrowania S3.

SSE-KMS to metoda nieco różniąca się od SSE-S3. Do szyfrowania danych S3 po stronie serwera Amazon wykorzystywana jest usługa AWS Key Management Service (KMS). Kluczem do danych zarządza AWS, ale to użytkownik zarządza kluczem głównym klienta (CMK) w AWS KMS. Zaletami korzystania z typu szyfrowania SSE-KMS są kontrola użytkownika i ścieżka audytu.

W przypadku SSE-Cklucze są dostarczane przez klienta, a AWS nie przechowuje kluczy szyfrujących. Dostarczony klucz jest przekazywany do AWS w celu obsługi każdego żądania związanego z szyfrowaniem lub odszyfrowywaniem danych. Użytkownik musi zapewnić bezpieczeństwo kluczy. Szyfrowanie danych S3 odbywa się po stronie serwera AWS. Można używać wyłącznie połączenia HTTPS (nie HTTP).

Szyfrowanie po stronie klienta

W przypadku korzystania z szyfrowania po stronie klienta S3 to klient jest odpowiedzialny za wszystkie operacje szyfrowania. W tym przypadku dane nie są szyfrowane przez AWS, lecz po stronie użytkownika. Dane zaszyfrowane w centrum danych użytkownika są przesyłane bezpośrednio do AWS. Dostępne są dwie opcje szyfrowania po stronie klienta w usłudze S3 — klucz główny może być przechowywany po stronie klienta lub po stronie serwera. Jeśli klucz główny jest przechowywany po stronie klienta, to klient ponosi pełną odpowiedzialność za szyfrowanie. Zaletą tego podejścia jest to, że Amazon nigdy nie zna kluczy szyfrujących użytkownika, a dane nigdy nie są przechowywane na serwerach Amazon w postaci niezaszyfrowanej. Użytkownik szyfruje dane przed wysłaniem ich do usługi Amazon S3 i przeprowadza odszyfrowywanie po pobraniu z tej usługi.

Czym jest klient szyfrujący Amazon S3?

Klient szyfrujący Amazon S3 służy do szyfrowania danych po stronie użytkownika. Generowany jest losowo jednorazowy klucz szyfrujący, który służy do szyfrowania danych na poziomie poszczególnych obiektów, co oznacza, że w tym samym zasobniku Amazon S3 mogą znajdować się zarówno obiekty zaszyfrowane, jak i niezaszyfrowane. AmazonS3EncryptionClient to klasa publiczna dla AWS SDK. Możesz używać AWS SDK dla Java, C++, Python, .NET i innych obsługiwanych języków programowania do tworzenia własnych aplikacji współpracujących z Amazon S3, które mogą służyć do szyfrowania danych wysyłanych do S3 oraz do odszyfrowywania danych otrzymanych z S3 po stronie klienta.

Jak skonfigurować szyfrowanie AWS S3?

  1. Zaloguj się do interfejsu internetowego AWS. Twoje konto musi posiadać wystarczające uprawnienia do edycji ustawień S3.
  2. Przejdź do strony Amazon S3 (link może się różnić w zależności od regionu i konta):
    https://s3.console.aws.amazon.com/s3/home Opening the S3 bucket to configure Amazon S3 encryption
  3. Wybierz swój zasób lub utwórz nowy zasób, dla którego chcesz skonfigurować ustawienia szyfrowania.
  4. Na stronie z ustawieniami zasobu kliknij zakładkę Properties , a następnie kliknij Default encryption.Amazon S3 bucket encryption is disabled by default
  5. Ustawienia szyfrowania są teraz otwarte. Domyślnie opcja szyfrowania zasobnika S3 jest wyłączona.
  6. Wybierz potrzebną opcję, na przykład AES-256. Jest to szyfrowanie po stronie serwera z kluczami zarządzanymi przez Amazon S3 (SSE-S3). Możesz wyświetlić zasady zasobnika. Kliknij Save , aby zapisać ustawienia szyfrowania dla zasobnika. Ustawienia te będą używane jako domyślne ustawienia szyfrowania S3 dla obiektów dodanych do tego zasobnika w przyszłości.Changing default S3 bucket encryption settings
  7. Kliknij Save.
  8. Teraz domyślne szyfrowanie jest ustawione. Wszystkie nowe obiekty przechowywane w zasobniku S3 będą szyfrowane zgodnie z ustawioną konfiguracją. Zaleca się włączenie szyfrowania podczas tworzenia zasobnika. Szyfrowanie można również włączyć później na poziomie zasobnika. Jeśli jednak skonfigurujesz ustawienia szyfrowania później, nie będą one miały wpływu na niezaszyfrowane pliki, które zostały już przesłane do zasobnika.
    S3 encryption at rest is configured
  9. Jeśli chcesz wybrać szyfrowanie AWS-KMS, kliknij odpowiednią opcję. W tym przypadku wybierz klucz z listy rozwijanej.
    Using AWS-KMS for AWS encryption

Szyfrowanie obiektów niestandardowych w zasobniku

Przyjrzyjmy się, jak zaszyfrować obiekty niestandardowe, które zostały już przesłane do zasobnika i dla których ustawienia szyfrowania są ustawione na Brak .

Otwórz swój zasobnik w interfejsie internetowym AWS. Obiekty S3 można wyświetlić w zakładce Overview . Kliknij obiekt (plik lub katalog), aby wyświetlić aktualne ustawienia szyfrowania zastosowane do tego obiektu. W oknie podręcznym wyświetlane są właściwości obiektu i uprawnienia. Jak widać na poniższym zrzucie ekranu, przesłany plik nie jest zaszyfrowany (Szyfrowanie: Brak).

AWS encryption for the file stored in an S3 bucket is set to none

Wybierz jeden lub wiele obiektów, kliknij Actions , a następnie kliknij Change encryption , aby zmienić ustawienia szyfrowania dla niestandardowych obiektów w swoim zasobniku S3.

Changing AWS S3 encryption settings for custom files stored in an S3 bucket

W oknie, które się otworzy, wybierz wymagany typ szyfrowania, na przykład AES-256, a następnie kliknij Save.

Changing AWS S3 encryption settings for custom files stored in an S3 bucket

W oknie potwierdzenia zaznacz wybrane obiekty, na które będą miały wpływ nowe ustawienia szyfrowania, a następnie kliknij Change.

Confirmation that all affected S3 objects will change AWS encryption

Teraz szyfrowanie jest ustawione dla wybranych obiektów.

Pamiętaj, że po skonfigurowaniu ustawień szyfrowania dla całego zasobnika pliki, które zostały przesłane do zasobnika przed włączeniem szyfrowania, pozostają niezaszyfrowane. Jeśli w Twoim zasobniku S3 znajduje się duża liczba obiektów, znalezienie i zaznaczenie wszystkich niezaszyfrowanych obiektów, które należy zaszyfrować, może być trudne. Aby zaznaczyć niezaszyfrowane obiekty w zasobniku z włączonym szyfrowaniem, możesz użyć Amazon S3 Inventory lub AWS CLI.

Należy zidentyfikować niezaszyfrowane obiekty, a następnie ponownie je przesłać, aby zaszyfrować je przy użyciu domyślnego poziomu szyfrowania zasobnika S3 ustawionego dla całego zasobnika. Jeśli nie chcesz wyszukiwać niezaszyfrowanych obiektów S3 w swoim zasobniku (na przykład bucket1), możesz utworzyć nowy zasobnik (bucket2), skopiować wszystkie pliki z bucket1 do bucket2, a następnie skopiować wszystkie pliki z powrotem z bucket2 do bucket1.

Możesz skopiować niezaszyfrowane obiekty, przepisując je za pomocą polecenia AWS CLI copy poprzez zdefiniowanie metody szyfrowania, na przykład --sse włącza 128-bitowe szyfrowanie SSE-S3 bez tworzenia nowego zasobnika:

aws s3 cp s3://mybucket/myfile.zip s3://mybucket/myfile.zip --sse

Po przepisaniu plik zostaje zaszyfrowany. Należy pamiętać, że atrybuty pliku, takie jak data utworzenia i modyfikacji, ulegają zmianie po przepisaniu. Aplikacje, które mogą odczytywać te atrybuty (datę i godzinę utworzenia/ostatniej modyfikacji pliku) i wykorzystują je do pracy z plikami przechowywanymi w zasobnikach Amazon S3, mogą nie działać zgodnie z oczekiwaniami po przepisaniu plików.

Jeśli w zasobniku AWS S3 włączono opcje zarządzania cyklem życia w celu oszczędności, mogą wystąpić pewne problemy. Na przykład można skonfigurować cykl życia tak, aby usuwać pliki utworzone lub zmodyfikowane 6 miesięcy temu. Stare pliki są automatycznie usuwane, w chmurze zajmują mniej miejsca, a Ty płacisz mniej za magazyn-chmurę. Gdy znacznik czasu LastModified (data i godzina ostatniej modyfikacji) zostanie zmieniony dla starego pliku, który ma wkrótce zostać usunięty, funkcja zarządzania cyklem życia rozpoznaje ten plik jako plik utworzony niedawno, który nie powinien być usuwany przez dłuższy czas (na przykład przez 6 miesięcy, jak wspomniano powyżej). W rezultacie w zasobniku przechowywanych jest więcej plików, co prowadzi do wyższych kosztów.

Jeśli włączono przechowywanie wersji, tworzona jest nowa zaszyfrowana wersja obiektu. Poprzednie wersje obiektu pozostają niezaszyfrowane.

Przesyłanie obiektów za pomocą AWS CLI

AWS CLI może być używane w innych przypadkach użycia, gdy trzeba skopiować pliki do Amazon S3 lub z Amazon S3 z opcjami szyfrowania. Można również użyć tego interfejsu wiersza poleceń do kopiowania obiektów w obrębie jednego zasobnika S3 oraz z jednego zasobnika do drugiego. Można ustawić opcje szyfrowania dla plików przesyłanych za pomocą CLI do zasobnika w przypadkach, gdy domyślne ustawienia szyfrowania zasobnika i ustawienia szyfrowania, które muszą być użyte dla przesyłanych plików, są różne. Zobaczmy przykłady użycia poleceń AWS CLI w bash.

Skopiuj plik z komputera lokalnego do zasobnika AWS S3 i ustaw szyfrowanie po stronie serwera (szyfrowanie SSE-S3):

aws s3 cp /directory/file-name s3://bucket-name/file-encrypted --sse AES256

Skopiuj i odszyfruj plik z AWS S3 na dysk lokalny:

aws s3 cp s3://bucket-name/file-encrypted /directory/file-name

Prześlij i zaszyfruj plik z dysku lokalnego do zasobnika S3 przy użyciu szyfrowania SSE-KMS:

aws s3 cp /directory/file-name s3://bucket-name/file-encrypted --sse aws:kms

Pobierz i odszyfruj plik z zasobnika S3 na dysk lokalny:

aws s3 cp s3://bucket-name/file-encrypted /directory/file-name

Wnioski

Szyfrowanie Amazon S3 pomaga chronić dane przechowywane w zasobnikach AWS S3 w chmurze, co jest szczególnie ważne w przypadku danych wrażliwych. Szyfrowanie AWS S3 może być wykonywane po stronie serwera Amazon oraz po stronie klienta. Klucze tajne mogą być przechowywane zarówno po stronie serwera, jak i po stronie klienta. Jeśli rozważasz użycie szyfrowania Amazon S3 dla obiektów, które zamierzasz przechowywać w zasobnikach S3, włącz szyfrowanie podczas tworzenia zasobnika. Jeśli już korzystasz z zasobnika, a obiekty w nim przechowywane nie są zaszyfrowane, możesz włączyć szyfrowanie dla tych obiektów. W takim przypadku należy jednak pamiętać o kilku kwestiach.

Korzystanie z szyfrowania to dobry pomysł na zwiększenie poziomu bezpieczeństwa i ochronę danych przed dostępem osób trzecich. Oprócz korzystania z szyfrowania AWS warto rozważyć wykonanie kopii zapasowej AWS S3 oraz Wykonać kopię zapasową AWS EC2 w celu zwiększenia bezpieczeństwa danych.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby poznać wszystkie funkcje rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie trzeba podawać danych karty kredytowej.

People also read