Apache Ozone е хранилище за разпределени обекти, изградено върху услугата Hadoop Distributed Data Store. Той може да управлява милиарди малки и големи файлове, които са трудни за обработка от други разпределени файлови системи. Ozone поддържа богати API като Amazon S3, Kubernetes CSI, както и собствени API на файловата система на Hadoop. Това прави Ozone лесно използваем от различни видове натоварвания с големи данни, като например склад за данни на Apache Hive, поглъщане на данни с Apache Nifi, поточно предаване с Apache Spark/Flink и машинно обучение с Tensorflow.
С нарастващия отпечатък на данните и многостранните работни натоварвания, които се нуждаят от сътрудничество между различни групи, сигурността на данните е от изключително значение. Озоновата сигурност е добавена след пускането на Apache Hadoop Ozone 0.4.0 с принос от общностите. Той също така е включен като технологичен преглед в изданието на CDP Data Center 7.0 на Cloudera. Сигурността може да бъде класифицирана в четири градивни блока:удостоверяване, оторизация, одит и криптиране. Ще разгледаме частта за удостоверяване в този блог заедно с останалите в следващите.
Удостоверяването е процес на разпознаване на самоличността на потребителя за компоненти на Ozone. Ozone е съвместим с архитектурата за сигурност на Apache Hadoop, поддържайки силна автентификация с помощта на Kerberos, както и токени за сигурност.
Удостоверяване, базирано на Kerberos
Както е показано на фигура 1 по-долу, компонентите на услугата, включително OM (Ozone Manager), SCM (Storage Container Manager) и Datandoes, се удостоверяват един с друг чрез Kerberos. Всяка услуга трябва да бъде конфигурирана с валидно Kerberos Principal Name и keytab файл, който ще се използва от услугата за влизане при стартиране на услугата в защитен режим. Повече подробности за конфигурацията на OM/SCM/Datanode Kerberos можете да намерите в документите на Apache Hadoop Ozone. Съответно, клиентите на Ozone трябва да предоставят или валиден билет на Kerberos, или токени за сигурност за достъп до услуги на Ozone, като Ozone Manager за метаданни и Datanode за блокове за четене/запис.
Сигурни токени
Подобно на токените за делегиране на Hadoop, токенът за сигурност Ozone има идентификатор на токен заедно с подписан подпис от издателя. Ozone manager издава токен за делегиране и токени за блокиране за потребители или клиентски приложения, удостоверени с Kerberos. Подписът на токена може да бъде валидиран от валидатори на токена, за да се провери самоличността на издателя. По този начин валиден притежател на токен може да използва токена за извършване на операции срещу клъстерните услуги, сякаш имат Kerberos билети на издателя.
Означение за делегиране издадено от Ozone Manager позволява на притежателите на токени да имат достъп до услуги за метаданни, предоставяни от Ozone Manager, като например създаване на том или изброяване на обектите в кофа. При получаване на заявка от клиент с токен за делегиране, Ozone мениджър потвърждава токена за делегиране, като проверява подписа на подписващия чрез неговия публичен ключ. Операциите с токени за делегиране, като получаване, подновяване и отмяна, могат да се извършват само през удостоверена връзка с Kerberos.
Блокиране на токени са подобни на токените за делегиране в смисъл, че се издават/подписват от мениджъра на Ozone. Те се издават от Ozone manager, когато клиентска заявка включва блоково четене или запис на Datanode. За разлика от токените за делегиране, заявени с изрични API за получаване/подновяване/отмяна, те се предават прозрачно на клиентите заедно с информацията за местоположението на ключа/блока. Блоковите токени се валидират от Datanodes при получаване на заявката за четене/запис от клиенти, използвайки публичния ключ на Ozone мениджъра на певеца. Блоковият маркер не може да бъде подновен изрично от клиента. След като изтече, клиентът трябва да извлече повторно местоположението на ключ/блок, за да получи нови токени за блок.
S3 Secret
Ozone поддържа протокола Amazon S3 чрез Ozone S3 Gateway. В защитен режим Ozone Manager издава тайна s3 за удостоверени потребители на Kerberos или клиентски приложения, които осъществяват достъп до Ozone чрез S3 API. Ще разгледаме това в по-късни блогове на Ozone S3 Gateway.
Как работи Ozone Security Token?
Както е показано на фигура 2, традиционният токен за делегиране на Apache Hadoop и токен за блокиране разчитат на споделени тайни между издателя на токен и валидатора на токен за подписване и валидиране на токен. Следователно, когато издателят и валидаторът са различни, например в случай на блоков токен, споделеният главен ключ трябва периодично да се прехвърля по кабела, за да се синхронизира между издателя на токена (именния номер) и валидатора на токена (данните).
Вместо това, маркерът за сигурност Ozone използва подход, базиран на сертификат. Както е показано на фигура 3, той напълно разделя издателите на токени и валидаторите на токени с базиран на сертификат подпис. По този начин токените са по-сигурни, тъй като споделените тайни никога не се транспортират по кабела.
В защитен режим SCM се зарежда като CA (сертификационен орган) и създава самоподписан CA сертификат. Datanode и Ozone Manager трябва да се регистрират в SCM CA чрез CSR (заявка за подписване на сертификат). SCM валидира самоличността на Datanode и Ozone Manager чрез Kerberos и подписва сертификата на компонента. Подписаните сертификати се използват от Ozone Manager и Datanode за доказване на неговата идентичност. Това е особено полезно за подписване и валидиране на маркер за делегиране/блоков токен.
В случай на блоков токен, Ozone Manager (издател на токен) подписва токена със своя частен ключ, а Datanodes (валидатор на токени) използва сертификата на Ozone Manager за валидиране на блокови токени, тъй като Ozone Manager и datanode се доверяват на подписани сертификати от SCM CA.
В случай на токен за делегиране, когато Ozone Manager (и издателят, и валидаторът) работи в режим HA (Висока достъпност). Има няколко екземпляра на Ozone Manager, работещи едновременно. Токен за делегиране, издаден и подписан от екземпляр на Ozone Manager 1, може да бъде валидиран от екземпляр на Ozone Manager 2, когато водещият Ozone Manager се промени, тъй като и двата екземпляра се доверяват на сертификати, подписани от SCM CA. Повече подробности за документа за проектиране на Ozone HA можете да намерите тук.
Заключение
Удостоверяването е един от най-важните градивни елементи на сигурността на Apache Hadoop Ozone. Сега трябва да имате по-добро разбиране за това какви механизми за удостоверяване се поддържат от Apache Hadoop Ozone и как работят. Това ще помогне за разбирането на други стълбове на сигурността на Ozone, като оторизация и одит.
Следете за последващи статии относно оторизацията за защита на озон, одита, криптирането и GDPR. Ако се интересувате от дълбоко гмуркане, можете да намерите повече технически подробности в документа за проектиране на Ozone Security.
Справка
[1] Apache Hadoop Ozone Architecture
[2] Сравнителен анализ на Ozone:Съхранение от следващо поколение на Cloudera за CDP
[3] Какво е Kerberos? · Hadoop и Kerberos:Лудостта отвъд портата
[4] Apache Hadoop Ozone Document
[5] Добавяне на сигурност към Apache Hadoop
[6] Проектен документ на Apache Hadoop Ozone HA на HDDS-505.
[7] Apache Hadoop Ozone Security Design Document на HDDS-4.