Apache Ozone to rozproszony magazyn obiektów zbudowany na bazie usługi Hadoop Distributed Data Store. Może zarządzać miliardami małych i dużych plików, które są trudne do obsługi przez inne rozproszone systemy plików. Ozone obsługuje bogate interfejsy API, takie jak Amazon S3, Kubernetes CSI, a także natywne interfejsy API systemu plików Hadoop. Dzięki temu Ozone jest łatwo zużywalny przez różnego rodzaju obciążenia Big Data, takie jak hurtownia danych w Apache Hive, pozyskiwanie danych za pomocą Apache Nifi, przesyłanie strumieniowe za pomocą Apache Spark/Flink i uczenie maszynowe za pomocą Tensorflow.
Ze względu na rosnącą ilość danych i wieloaspektowe obciążenia, które wymagają współpracy między różnymi grupami, bezpieczeństwo danych ma ogromne znaczenie. Ochrona ozonowa została dodana od czasu wydania Apache Hadoop Ozone 0.4.0 z udziałem społeczności. Został również dołączony jako podgląd techniczny w wydaniu Cloudera CDP Data Center 7.0. Bezpieczeństwo można podzielić na cztery elementy składowe:uwierzytelnianie, autoryzacja, inspekcja i szyfrowanie. Część dotyczącą uwierzytelniania omówimy na tym blogu, a pozostałe w kolejnych.
Uwierzytelnianie to proces rozpoznawania tożsamości użytkownika dla składników Ozone. Ozone jest kompatybilny z architekturą bezpieczeństwa Apache Hadoop, wspierając silne uwierzytelnianie przy użyciu protokołu Kerberos oraz tokenów bezpieczeństwa.
Uwierzytelnianie oparte na Kerberos
Jak pokazano na rysunku 1 poniżej, składniki usługi, w tym OM (Ozone Manager), SCM (Storage Container Manager) i Datandoes, są wzajemnie uwierzytelniane za pośrednictwem protokołu Kerberos. Każda usługa musi być skonfigurowana z prawidłową nazwą główną Kerberos i plikiem tablicy kluczy, który będzie używany przez usługę do logowania po uruchomieniu usługi w trybie bezpiecznym. Więcej szczegółów na temat konfiguracji protokołu OM/SCM/Datanode Kerberos można znaleźć w dokumentach Apache Hadoop Ozone. Odpowiednio, klienci Ozone muszą dostarczyć ważny bilet Kerberos lub tokeny bezpieczeństwa, aby uzyskać dostęp do usług Ozone, takich jak Menedżer Ozone dla metadanych i Datanode dla bloków odczytu/zapisu.
Tokeny bezpieczeństwa
Podobnie jak tokeny delegowania Hadoop, token zabezpieczający Ozone ma identyfikator tokenu wraz z podpisem podpisanym przez wystawcę. Menedżer ozonu wystawia tokeny delegowania i tokeny blokowania dla użytkowników lub aplikacji klienckich uwierzytelnionych za pomocą protokołu Kerberos. Podpis tokena może zostać zweryfikowany przez walidatory tokenów w celu zweryfikowania tożsamości wystawcy. W ten sposób prawidłowy posiadacz tokenu może użyć tokenu do wykonywania operacji na usługach klastra, tak jakby posiadały bilety protokołu Kerberos wystawcy.
Token delegacji wydane przez Ozone Managera pozwala posiadaczom tokenów na dostęp do usług metadanych dostarczanych przez Ozone Managera, takich jak tworzenie wolumenu lub wylistowanie obiektów w kubełku. Po otrzymaniu żądania od klienta z tokenem delegacji, menedżer Ozone weryfikuje token delegacji, sprawdzając podpis podpisującego za pomocą jego klucza publicznego. Operacje na tokenach delegowania, takie jak pobieranie, odnawianie i anulowanie, można wykonywać tylko za pośrednictwem połączenia uwierzytelnionego Kerberos.
Blokuj tokeny są podobne do tokenów delegacji w tym sensie, że są wystawiane/podpisywane przez zarządcę Ozone. Są one wydawane przez menedżera Ozone, gdy żądanie klienta obejmuje blokowy odczyt lub zapis w Datanode. W przeciwieństwie do tokenów delegowania żądanych za pomocą jawnych interfejsów API pobierania/odnawiania/anulowania, są one w przejrzysty sposób przekazywane klientom wraz z informacjami o lokalizacji klucza/bloku. Tokeny blokowe są weryfikowane przez Datanodes po otrzymaniu żądania odczytu/zapisu od klientów przy użyciu klucza publicznego menedżera Ozone piosenkarza. Token blokowy nie może zostać wyraźnie odnowiony przez klienta. Po wygaśnięciu klient musi ponownie pobrać lokalizacje klucza/bloku, aby uzyskać nowe tokeny bloku.
Sekret S3
Ozone obsługuje protokół Amazon S3 za pośrednictwem bramy Ozone S3. W trybie bezpiecznym Ozone Manager wydaje klucz tajny s3 dla uwierzytelnionych użytkowników Kerberos lub aplikacji klienckich uzyskujących dostęp do Ozone przy użyciu interfejsów API S3. Omówimy to w późniejszych blogach na temat Ozone S3 Gateway.
Jak działa token bezpieczeństwa Ozone?
Jak pokazano na rysunku 2, tradycyjny token delegowania Apache Hadoop i token blokowy opierają się na wspólnych kluczach tajnych między wystawcą tokenów a walidatorem tokenów w celu podpisania i zweryfikowania tokenu. Dlatego też, gdy wystawca i walidator są różni, np. w przypadku tokena blokowego, wspólny klucz główny musi być okresowo przesyłany przez sieć, aby zsynchronizować się między wystawcą tokena (nazwanode) a walidatorem tokena (węzły danych).
Zamiast tego token bezpieczeństwa Ozone przyjmuje podejście oparte na certyfikatach. Jak pokazano na rysunku 3, całkowicie oddziela ona wystawców tokenów i weryfikatorów tokenów za pomocą podpisu opartego na certyfikacie. W ten sposób tokeny są bezpieczniejsze, ponieważ wspólne tajemnice nigdy nie są przesyłane przez sieć.
W trybie bezpiecznym SCM uruchamia się jako urząd certyfikacji (CA) i tworzy samopodpisany certyfikat CA. Datanode i Ozone Manager muszą zarejestrować się w SCM CA za pośrednictwem CSR (żądanie podpisania certyfikatu). SCM weryfikuje tożsamość Datanode i Ozone Managera za pomocą protokołu Kerberos i podpisuje certyfikat komponentu. Podpisane certyfikaty są używane przez Ozone Manager i Datanode do potwierdzenia ich tożsamości. Jest to szczególnie przydatne w przypadku podpisywania i walidacji tokenów/bloków tokenów delegowania.
W przypadku tokena blokowego, Ozone Manager (wystawca tokenów) podpisuje token swoim kluczem prywatnym, a Datanodes (walidator tokenów) używa certyfikatu Ozone Managera do walidacji tokenów blokowych, ponieważ zarówno Ozone Manager, jak i datanode ufają certyfikatom podpisanym przez SCM CA.
W przypadku tokena delegowania, gdy Menedżer ozonu (zarówno wystawca tokena, jak i walidator) działa w trybie HA (High Availability). Istnieje wiele instancji programu Ozone Manager działających jednocześnie. Token delegacji wystawiony i podpisany przez instancję Ozone Manager 1 może zostać zweryfikowany przez instancję Ozone Manager 2, gdy lider Ozone Manager zmieni się, ponieważ obie instancje ufają podpisanym certyfikatom SCM CA. Więcej szczegółów na temat dokumentu projektowego Ozone HA można znaleźć tutaj.
Wniosek
Uwierzytelnianie jest jednym z najważniejszych elementów bezpieczeństwa Apache Hadoop Ozone. Powinieneś teraz lepiej zrozumieć, jakie mechanizmy uwierzytelniania są obsługiwane przez Apache Hadoop Ozone i jak one działają. Pomoże to zrozumieć inne filary bezpieczeństwa ozonu, takie jak autoryzacja i audyt.
Bądź na bieżąco z artykułami uzupełniającymi na temat autoryzacji bezpieczeństwa ozonu, audytu, szyfrowania i RODO. Jeśli jesteś zainteresowany głębokim nurkowaniem, możesz znaleźć więcej szczegółów technicznych w dokumencie projektu bezpieczeństwa Ozone.
Odniesienie
[1] Architektura ozonowa Apache Hadoop
[2] Benchmarking Ozone:nowa generacja pamięci masowej Cloudera dla CDP
[3] Co to jest Kerberos? · Hadoop i Kerberos:szaleństwo za bramą
[4] Dokument Apache Hadoop ozonu
[5] Dodawanie zabezpieczeń do Apache Hadoop
[6] Dokument projektowy Apache Hadoop Ozone HA na HDDS-505.
[7] Dokument projektu bezpieczeństwa ozonu Apache Hadoop na HDDS-4.