AWS Landing Zone -
usprawnij tworzenie i zarządzanie zasobami w koncie AWS,
zachowując wysoki poziom bezpieczeństwa
AWS Landing Zone to jedna z wielu usług służących do zarządzania zasobami w chmurze. Powstała w celu wykorzystania potencjału chmurowego oraz łatwiejszej konfiguracji kont w organizacji.
Dzięki swojej funkcjonalności pozwala na sprawniejsze skonfigurowanie środowiska, z zachowaniem Dobrych Praktyk AWS, bez konieczności głębokiej analizy poszczególnych usług i ułatwia podejmowanie skomplikowanych decyzji projektowych. W praktyce usługa obejmuje gotowe konta AWS, z uwzględnieniem minimalnej podstawy bezpieczeństwa (IAM) i pozwala na tworzenie nowych kont z zadaną konfiguracją. Usługa znalazła zastosowanie przy projektowaniu usług, gdzie struktura organizacyjna jest wielopoziomowa.
UWAGA! na końcu wpisu znajdziesz link do infografiki.
AWS Landing Zone to:
- bezpieczne środowisko skonfigurowane w oparciu o Dobre Praktyki AWS
- punkt wyjściowy do rozpoczęcia migracji danych/aplikacji klienta
- środowisko, które z biegiem czasu można rozbudować i dostosować do zmieniających się potrzeb technologicznych.
Jest to rozwiązanie zapewniające kompletną podstawę do rozpoczęcia pracy z architekturą chmury; tworzeniem wielu kont, zarządzaniem tożsamością i dostępami, bezpieczeństwem danych czy projektowaniem sieci.
Niewątpliwymi atutami przemawiającymi za zastosowaniem usługi są:
- prostota we wdrożeniu
- automatyzacja całego procesu deploymentu
- możliwość łatwej konfiguracji do potrzeb użytkownika
- bezpieczeństwo
Powyższe zalety sprawiają, że warto przyjrzeć się bliżej jej komponentom. W dalszej części wpisu omówimy: kwestie bezpieczeństwa, AWS Organizations oraz notyfikacje.
Bezpieczeństwo
Oferowana przez Landing Zone “Security baseline” to idealna baza, którą w szybki i łatwy sposób można skonfigurować, i dostosować do potrzeb klienta. W jej skład wchodzą takie usługi AWS jak:
- AWS CloudTrail,
- AWS Config,
- AWS Config Rules,
- AWS Identity and Access Management (Zarządzanie tożsamością i dostępem AWS),
- Cross-Account Access (dostęp dla wielu kont)
- Amazon Virtual Private Cloud (VPC).
Ich ustawienia zostały tak dobrane, aby podczas wdrażania nowego szablonu na koncie, usługa automatycznie skonfigurowała konto, z wcześniej wspomnianymi zabezpieczeniami.
AWS Organizations
AWS Organizations to usługa umożliwiająca klientom tworzenie wielu kont AWS z możliwością wspólnego zarządzania nimi w sposób jednolity i automatyczny. Dodatkowo stwarza możliwość grupowania ich w jednostki organizacyjne (OU), a to z kolei pozwala na administrowanie nimi jako pojedynczymi układami. Każde z tych kont jest skonfigurowane z zachowaniem minimalnej podstawy bezpieczeństwa, zgodnej z Dobrymi Praktykami AWS. AWS Landing Zone automatycznie tworzy 3 oddzielne konta AWS: SharedServices, Logging i Security.
- Konto SharedServices jest odniesieniem do współdzielonych elementów infrastruktury np. usług katalogowych.
- Konto Logging zawiera centralny bucket S3 – to tu trafią wszystkie logi z AWS CloudTrail i AWS Config.
- Z kolei z poziomu konta Security można utworzyć role pomiędzy kontami administratora i audytorów, tak samo jak dla wszystkich zarządzanych kont w usłudze AWS Landing Zone.
Poniższy schemat doskonale obrazuje zależności pomiędzy poszczególnymi kontami.
Schemat tworzenia kont w usłudze AWS Landing Zone.
Źródło: AWS Landing Zone
Notyfikacje
AWS Landing Zone konfiguruje alarmy i zdarzenia dla AWS CloudWatch, który z kolei wysyła notyfikacje o awariach logowania do konsoli, błędach uwierzytelniania API oraz zmianach w obrębie konta. Wspomniane zmiany mogą dotyczyć grup zabezpieczeń, połączeń peeringowych czy modyfikacji w stanach instancji EC2. Rozwiązanie konfiguruje Topic’ki w usłudze AWS SNS na każdym z kont w Organizacji. Lambda zasubskrybowana automatycznie, przekazuje wszystkie powiadomienia do wspólnej kolejki Amazon SNS w koncie AWS Organizations. Funkcjonalność ma na celu umożliwienie lokalnym administratorom subskrypcję i otrzymywanie wybranych powiadomień na koncie.
Schemat działania notyfikacji w usłudze AWS Landing Zone.
Źródło: AWS Landing Zone
Dodatkowe komponenty
Do innych, równie istotnych elementów usługi AWS Landing Zone zaliczamy:
- Account Vending Machine (AVM), która jest dostarczana jako produkt AWS umożliwiający klientom tworzenie nowych kont w jednostkach organizacyjnych (OU).
- User Access (dostęp użytkownika), zapewnienie najniższego poziomu uprawnień – indywidualnego dostępu do konta jest podstawowym elementem zarządzania kontami AWS.
Budowanie Landing Zone
Pierwszym krokiem powinno być zapoznanie się z templatkami AWS CloudFormation.
W tym zakresie AWS przygotował dwa szablony, z których pierwszy służy do tworzenia grup użytkowników IAM i ról, a drugi do wdrażania wszystkich powiązanych komponentów rozwiązania Landing Zone.
Całość rozwiązania została pokazana na schemacie poniżej:
Schemat implementacji CloudFotmation w usłudze AWS Landing Zone.
Źródło: AWS Landing Zone, AWS Implementation Guide, Lalit Grover, Marzec 2018.
UWAGA! To rozwiązanie jest przeznaczone dla klientów AWS, którzy nie mieli skonfigurowanych i wdrożonych kont w AWS.
Aby rozpocząć proces tworzenia Landing Zone, należy utworzyć konto AWS z adresem mailowym, który wcześniej nie był wykorzystywany. Następnie należy usłudze AWS Organizations zwiększyć liczbę kont do 10.
Właściwe wdrożenie przebiega w 3 krokach:
- utworzenie zasobów IAM,
- utworzenie i konfiguracja pozostałych zasobów,
- aktualizacji parametrów scentralizowanego logowania.
Cała procedura opiera się o stacki AWS CloudFormation i jest w pełni zautomatyzowana.
Oto poszczególne kroki podczas wdrożenia/deploymentu:
Utworzenie zasobów IAM
- Należy zalogować się do konsoli AWS oraz wybrać usługę AWS CloudFormation, a następnie szablon aws-landing-zone-iam-assets. Można go również pobrać do własnej implementacji.
- Szablon domyślnie jest uruchamiany w rejonie wschodnim USA (N. Virginia) – należy zmienić swój region docelowy na pasku regionów.
- Na stronie ze Szczegółami należy wpisać nazwę Stacku.
- Parametry należy zweryfikować i wprowadzić ewentualne zmiany.
- Następnie należy kliknąć Dalej/Next.
- W Opcjach również należy kliknąć Dalej/Next.
- Na stronie z podsumowaniem warto dokładnie sprawdzić wprowadzone ustawienia. Należy pamiętać o zaznaczeniu pola potwierdzającego. Szablon tworzy zasoby zarządzania tożsamością i dostępem (IAM).
- Następnie należy kliknąć Utwórz, aby zdeployować Stack.
Cały proces powinien trwać nie dłużej niż 5 min. Po czym powinien pojawić się komunikat CREATE_COMPLETE.
Utworzenie i konfiguracja pozostałych zasobów
UWAGA! zanim zostaną podjęte dalsze kroki, należy upewnić się, że szablon zasobów IAM został uruchomiony. W tym kroku tworzony jest Landing Zone.
- Należy zalogować się do konsoli AWS oraz wybrać usługę AWS CloudFormation, a następnie szablon aws-landing-initiation. Można go również pobrać do własnej implementacji.
- Szablon domyślnie jest uruchamiany w rejonie wschodnim USA (N. Virginia) – należy zmienić swój region docelowy na pasku regionów.
UWAGA! Szablon aws-landing-initiation jest dostępny w konkretnych regionach, należy sprawdzić jego dostępność w danym regionie. Szablon jest również dostępny w Europie. - Na stronie ze Szczegółami należy wpisać nazwę Stacku.
- Parametry należy zweryfikować i wprowadzić ewentualne zmiany – parametry mają ustawienia domyślne.
- Następnie należy kliknąć Dalej/Next.
- W Opcjach również należy kliknąć Dalej/Next.
- Na stronie z podsumowaniem warto dokładnie sprawdzić wprowadzone ustawienia. Należy pamiętać o zaznaczeniu pola potwierdzającego zgodę na utworzenie zasobów IAM, gdyż szablon tworzy zasoby zarządzania tożsamością i dostępem (IAM).
- Następnie należy kliknąć Utwórz, aby zdeployować Stack.
Cały proces powinien trwać nie dłużej niż 5 min. Po czym powinien pojawić się komunikat CREATE_COMPLETE. Status można zweryfikować w konsoli AWS CloudFormation.
Aktualizacja parametrów scentralizowanego logowania
Po wdrożeniu i zdeployowaniu szablonów AWS CloudFormation, należy ręcznie zaktualizować parametry Elasticsearch Endpoint i Master Account Role
- Należy skonfigurować konto tak, aby swobodnie przełączać je pomiędzy Podstawowym a kontem SharedServices
- Identyfikator konta SharedServices można znaleźć na karcie Outputs w inicjowanym szablonie
- Użyj AWSCloudFormationStackSetExecutionRole dla roli
- W konsoli AWS Management Console należy przejść do konsoli CloudFormation a następnie Stack’u
- Należy wybrać główny szablon StackSet z „(SO0009) – AWS Centralized Logging Solution” w opisie
- Należy wybrać zakładkę Output i skopiować wartości dla kluczy DomainEndpoint i MasterRole
- Przełączyć się na Konto Główne (tzn. z nazwą użytkownika)
- Przejść do konsoli CloudFormation, a następnie do StackSet
- Należy wybrać szablon spoke
- Zaktualizować wartości parametrów Elasticsearch Endpoint i Master Account Role z poprzednio skopiowanymi wartościami w kroku 4
- Aby zaktualizować, należy wybrać Zarządzanie stackiem i wybierz Edytuj stack
- Należy wybrać Dalej/Next a następnie opcję bieżącego szablonu
- Następnie wybrać Dalej/Next i zaktualizować dwa parametry
- Wybrać Dalej/Next
- Na stronie z podsumowaniem warto dokładnie sprawdzić wprowadzone ustawienia. Należy pamiętać o zaznaczeniu pola potwierdzającego, szablon tworzy zasoby zarządzania tożsamością i dostępem (IAM).
- Następnie należy kliknąć Utwórz, aby zdeployować Stack.
Cały proces powinien trwać nie dłużej niż 5 min. Po czym powinien pojawić się komunikat CREATE_COMPLETE. Status można zweryfikować w konsoli AWS CloudFormation.
Podsumowując AWS Landing Zone jest usługą, która pozwala na szybkie i bezproblemowe stworzenie siatki organizacyjnej kont w środowisku AWS. Dzięki skonfigurowanym ustawieniom domyślnym, jakie zostały dołączone do szablonów AWS CloudFormation, pewnym jest, iż dane użytkownika są prawidłowo zabezpieczone od początku procesu.
Tutaj możesz pobrać inforgafikę o AWS Landing Zone.