5 lipca wziąłem udział w zorganizowanym w Microsoft, technicznym warsztacie dotyczącym usług oferowanych (obecnie jest ich ponad 600!) na platformie chmury obliczeniowej Microsoft Azure oraz sposobu ich implementacji. Postaram się w skrócie podzielić zdobytą wiedzą i korzystając z okazji napisać więcej o możliwościach jakie niesie ta konkretnie chmura.
Wstęp do Azure
Zacznijmy do wyjaśnienia czym jest Azure i chmura jako taka. Mówiąc o platformie chmurowej, jaką jest np. Azure (model przetwarzania w chmurze pozwolę sobie pominąć) powinniśmy wiedzieć, że w uproszczeniu jest to nic innego jak infrastruktura centrum danych wyposażona w narzędzia do wirtualizacji (dla chmury prywatnej mówilibyśmy o Hyper-V), zarządzania (chmura prywatna – System Center), ale również mechanizmy skalowania i automatyzacji (Azure Stack), w odróżnieniu od np. kolokacji (która de facto również jest chmurą obliczeniową).
Do tego dochodzi mnóstwo zabezpieczeń, zaczynając od tych fizycznego i wirtualnego dostępu, przez systemy ppoż, nadmiarowe zasilanie, separację danych, a na szyfrowaniu tych danych w locie i spoczynku kończąc. Są to najwyższej klasy rozwiązania bezpieczeństwa wypracowywane przez pionierów branży w ciągu kilku dekad. Mówimy tu w sumie o ?Security as a Service?, czyli Bezpieczeństwie jako Usłudze.
Warto dodać, że Azure to chmura publiczna, ale w żadnym wypadku nie oznacza to, że nasze dane są publicznie dostępne, a jedynie, że możemy korzystać z niej wspólnie, w odróżnieniu od chmury prywatnej, która jest dostępna tylko w ramach posiadającej ją organizacji. Obie chmury są dobre, tyle, że na tę drugą nie każdy może sobie pozwolić. Oczywiście mamy też chmurę hybrydową, np. dla potrzeb mocy obliczeniowej lub jako DRC (Disaster Recovery Center), co w praktyce oznacza, że nasza infrastruktura jest zreplikowana w chmurze publicznej, dzięki czemu w wypadku awarii kilka minut zajmie ?przepięcie się? między ośrodkami i możemy być spokojni o business continuity, czyli ciągłość naszego biznesu.
Regiony
Microsoft Azure Management Tools, czyli Centrum Dowodzenia i nie tylko?
Portal / ARM / CLI / PowerShell
Przechodząc do kwestii zarządzania naszymi zasobami w chmurze, należy zacząć od podstawowego narzędzia jakim jest portal. W wielkim skrócie jest to miejsce, gdzie możemy ?wyklikać? swoją infrastrukturę wirtualną i nią administrować. Nasze ulubione zasoby z łatwością znajdziemy w dostępnych Pulpitach Nawigacyjnych, które dodatkowo możemy współdzielić i mnożyć, by podzielić dzierżawione usługi na związane z np. konkretną aplikacją. Znajdziemy tu również galerie predefiniowanych maszyn wirtualnych, wyszukiwarkę zasobów, czy Marketplace, który jest centralnym miejscem przeszukiwania dostępnych usług i aplikacji. Pod maską wszystkim zarządza Azure Resource Manager, który oczywiście sami kontrolujemy. Dzięki niemu możemy definiować szablony infrastruktury i innych zależności dla naszych aplikacji, a potem wykorzystać je dla dowolnego środowiska; ARM umożliwia również wygodne zarządzanie zasobami aplikacji, organizowanie je w grupy zasobów by przyspieszyć wdrożenia, definiować poziomy dostępu czy nawet zwiększyć przejrzystość naszych rozliczeń.
Co ciekawe, z poziomu portalu możemy też od niedawna uruchomić Powłokę Chmurową Azure (Cloud Shell), by z poziomu linii poleceń (mamy tu na wyposażeniu powszechnie używane narzędzia CLI) kompilować nasze aplikacji i zarządzać nimi. Jest ona zintegrowana z edytorami tekstu, wspiera kilka popularnych języków programowania (m.in. Java, Python) i kontrolę źródeł git. Na poziomie użytkowym Portalu warto dodać, że potrafi dostosować się do prędkości połączenia lub naszego urządzenia, choć w tym drugim przypadku użyjemy raczej dedykowanej aplikacji mobilnej, zatem co by się nie działo ? mamy wszystko pod kontrolą będąc w ciągłym ruchu.
Podobnie działa to z drugiej strony, Azure możemy też zarządzać, jak się domyślacie przez PowerShell i napisane dla niego moduły, jednakże specjalnie dla użytkowników systemów Linux i OS X powstało narzędzie Azure CLI, której do używanej przez nas powłoki (np. bash) dodaje funkcjonalność administrowania Microsoft Azure.
Azure Active Directory
To prawdopodobnie pierwsza usługa Azure z której będziemy korzystać, choćby i zwłaszcza dlatego, że jest niejako ?w pakiecie? z Office 365, jeśli już go mamy lub rejestrujemy się na Portalu Azure. Jest to bowiem (choć nie do końca) usługa katalogowa w chmurze, a jednym z jej plusów jest to, że w zasadzie jest darmowa, choć to zależy w jakim zakresie planujemy jej używać. Nie jest to pełnoprawny kontroler domeny (tutaj powinniśmy skorzystać z wirtualnej maszyny w Azure i na niej zainstalować rolę ADDS lub skorzystać z usługi Azure Active Directory Domain Services, jeśli chcemy przyłączać do domeny w chmurze wirtualne maszyny Azure), gdyż służy ona przede wszystkim do zarządzania tożsamością i dostępem w chmurze. Integruje się jednakże z lokalną domeną poprzez agenta Azure AD Connect, w celu uproszczenia zarządzania i logowania, gdyż dzięki takiej integracji można ustawić synchronizację hash-y haseł, w wyniku czego użytkownicy przy pomocy tylko jednego hasła zalogują się do wszystkich aplikacji w chmurze zarządzanych przez nasze AAD.
Bardziej zaawansowane funkcje, takie jak Multi-Factor Authentication (MFA, wieloskładnikowe uwierzytelnianie), MDM czy prawdziwe jednokrotne logowanie (true Single Sign-On, dzięki integracji z Active Directory Federation Services) są dostępne, ale wymagają płatnych wyższych edycji. Uważam, że o ile SSO głównie upraszcza pracę użytkownika, to MFA jest bardzo istotnym elementem, który stanowi drugą warstwę ochrony przed dostępem do naszych danych.
Powinniśmy go używać wszędzie tam, gdzie to możliwe, nawet w portalach społecznościowych takich jak np. Facebook, który również daje taką możliwość. Nawet jeżeli ktoś pozna nasze hasło i spróbuje wykorzystać je do zalogowania się na nasze konto, zostaniemy powiadomieni o próbie logowania z nieautoryzowanego urządzenia, a usługa będzie żądać podania kodu, który otrzymamy np. na nasz telefon komórkowy lub skrzynkę e-mail.
IAM ? RBAC
Kolejną ważną funkcją jest Zarządzanie tożsamością i dostępem (IAM ? Identity and Access Management), która jest świadczona również przez AAD. Tu właściwie od razu przejdę do mechanizmu Kontroli Dostępu Opartej na Rolach, czyli RBAC (Role-Based Access Control), który zastąpił klasycznych administratorów subskrypcji. Mieli oni pełny dostęp. Jeśli już mówimy o bezpieczeństwie i efektywności pracy (nie tylko w chmurze), trzeba pamiętać, że pracownicy nie mogą mieć dostępu do rzeczy, za które nie odpowiadają, gdyż to zwiększa ryzyko nieuprawnionego dostępu i utraty kontroli nad naszym środowiskiem w wypadku ataku. Z drugiej strony nie powinniśmy tego dostępu zbytnio ograniczać, ponieważ może to sparaliżować przepływ pracy lub przynajmniej ograniczyć sprawność jej wykonywania.
Chcąc chronić się przed oboma scenariuszami mamy właśnie do dyspozycji RBAC, który daje możliwość bardzo precyzyjnej kontroli nad dostępem do zasobów. Same role to temat na oddzielne wypracowanie, dlatego przybliżę najważniejsze z nich oraz działania jakie wspierają. Możemy zatem wyróżnić 3 podstawowe role:
-
właściciel mający pełny dostęp do wszystkich zasobów i prawo nadawania dostępu innym;
-
moderator, który tak jak właściciel ma dostęp do wszystkich zasobów, ale nie może zarządzać dostępem do zasobów;
-
czytelnik z prawem jedynie do wyświetlania zasobów.