Infrastruktura w Azure
Azure, które zespół prowadzi beze mnie.
Landing zone (strefa docelowa) jako kod w Państwa repozytorium: grupy zarządzania, sieć hub-spoke, tożsamość z PIM i polityki bazowe, a zmiany na produkcji idą przez pipeline. Budowa trwa od 4 do 8 tygodni, a dokumentację piszę tak, żeby środowisko dało się prowadzić po moim odejściu.
- Poziom 1: [org_prefix] (root)
- Poziom 2: Platform
- Poziom 3: Identity
- Poziom 3: Management
- Poziom 3: Connectivity
- Poziom 2: Landing Zones
- Poziom 3: Corp (internal)
- Poziom 3: Online (internet-facing)
- Poziom 2: Sandbox
- Poziom 2: Decommissioned
Polityki przypisane w głównej grupie zarządzania
- Dozwolone lokalizacje (tylko regiony w UE)
- Wymagany tag na zasobach
- Konta storage bez publicznego dostępu do blobów
- CIS Microsoft Azure Foundations Benchmark
Co zostaje u Państwa
Wdrożona i udokumentowana landing zone
Grupy zarządzania (management groups), subskrypcje, sieć w topologii hub-spoke, tożsamość. Poziom Essential obejmuje startową landing zone: grupę główną i dziewięć grup z szablonu oraz od 3 do 5 subskrypcji. Pełne środowisko ma zwykle od 5 do 15 subskrypcji. Rozmiar ustalam w rozpoznaniu, a każdą decyzję, której odwrócenie byłoby kosztowne, zapisuję w ADR (zapis decyzji architektonicznej).
Terraform w Państwa organizacji GitHub, z CI/CD
Biblioteka modułów trafia do Państwa organizacji GitHub, a stan do konta storage, razem z przepływami plan i apply. Piszę instrukcję współtworzenia, żeby zespół rozbudowywał kod beze mnie.
Tożsamość z uprawnieniami nadawanymi na czas
Podstawa Microsoft Entra ID z PIM dla każdej roli uprzywilejowanej. PIM wymaga licencji Microsoft Entra ID P2 albo Microsoft Entra ID Governance dla każdej osoby z rolą przyznawaną na czas i każdej osoby zatwierdzającej; Microsoft 365 E3 i Business Premium same jej nie zawierają. Konta awaryjne (break-glass) są poza PIM, a obejmuje je przetestowana procedura. Przepływy CI/CD uwierzytelniają się przez workload identity federation zamiast przez sekrety.
Polityki bazowe, które dają dowody
CIS Azure Foundations przypisane do inicjatyw Azure Policy, reguły tagowania i regionów z efektem deny oraz Defender for Cloud raportujący do macierzy mapowania kontrolek, z której może korzystać Państwa audytor.
Runbooki i Exit Kit
Dziesięć procedur krok po kroku (runbooków), pisanych równolegle z budową. Exit Kit dodaje procedurę przekazania stanu, odebranie mojego dostępu i listę wszystkiego, co niedokończone. Dokumenty zestawu są na razie po angielsku; po polsku jest zakres prac.
Co zawiera zestaw dostawy
Zestaw jest pokazany tak, jak go dostarczam. Jego dokumenty (ADR, runbooki, Exit Kit, macierz mapowania kontrolek) i nazwy plików są na razie po angielsku. Zakres prac, który obie strony podpisują, przygotowuję po polsku. Każdy runbook wysyłam na życzenie przed zakupem.
00-bootstrap
Zdalny stan Terraform i procedura startowa GitHub OIDC (SOP) oraz kwestionariusz rozpoznania z pierwszego tygodnia.
- SOP-bootstrap.md
- DISCOVERY-questionnaire.md
01-architecture-decision-records
Każda decyzja trudna do odwrócenia zapisana na piśmie, od układu grup zarządzania.
- ADR-0001-management-group-topology.md
- ADR-TEMPLATE.md
02-terraform
Biblioteka modułów i przepływy CI/CD, przechodzące walidację Terraform bez błędów. Trafiają do Państwa organizacji GitHub, a stan do konta storage.
- main.tf
- backend.tf
- providers.tf
- variables.tf
- modules/management-groups/
- modules/networking-hub/
- modules/networking-spoke/
- modules/policy/
- modules/subscription-vending/
- .github/workflows/terraform-plan.yml
- .github/workflows/terraform-apply.yml
03-runbooks
Dziesięć procedur krok po kroku (runbooków) dla zadań na platformie, które się powtarzają.
- RUNBOOK-01-subscription-vending.md
- RUNBOOK-02-break-glass-access.md
- RUNBOOK-03-add-a-spoke.md
- RUNBOOK-04-brownfield-onboarding.md
- RUNBOOK-05-pim-privileged-access.md
- RUNBOOK-06-policy-exception.md
- RUNBOOK-07-rotate-secret-keyvault.md
- RUNBOOK-08-compliance-drop.md
- RUNBOOK-09-dr-drill.md
- RUNBOOK-10-decommission-subscription.md
04-exit-kit
Exit Kit: mapa tego, co zostaje u Państwa (tenant, subskrypcje, repozytorium, stan i dostępy), oraz procedura przekazania stanu Terraform.
- EXIT-KIT-azure-landing-zone.md
- terraform-state-handoff.md
05-compliance
Kontrolki przypisane do DORA, NIS2 i RODO, z pipeline jako źródłem dowodów.
- control-mapping-matrix.md
06-cis-azure-foundations
Lista kontrolna bazowej konfiguracji CIS Azure Foundations i inicjatywa polityk, która ją sprawdza w trybie Audit.
- baseline-checklist.md
- policy-initiative.md
07-scope-sheet.md
Angielski wzór zakresu poziomów Essential i Operate. Obie strony podpisują zakres prac po polsku, przygotowany na jego podstawie, a nie ten plik.
08-operate-pack
Szablon miesięcznego przeglądu platformy: dryf konfiguracji, wyniki Azure Policy, koszty w podziale na właścicieli, przegląd dostępu.
- monthly-platform-review-template.md
Jak przebiega praca
Przebieg ilustracyjny. Zestaw dostawy przypisuje polityki najpierw w trybie Audit i przełącza je na Deny, gdy środowisko nie zgłasza już naruszeń polityk (RUNBOOK-04), a zestaw CIS działa tylko w trybie Audit.
Otwarty pull request: dodanie sieci spoke dla analityki
Polecenie terraform plan uruchamia się w CI i trafia jako komentarz do pull requestu: 12 do dodania, 2 do zmiany, 0 do usunięcia. Recenzent czyta rzeczywisty diff środowiska zamiast zrzutu ekranu z portalu.
Recenzja planu przed scaleniem
Region i tag przypisania kosztów są poprawne, ale publiczny adres IP w podsieci danych łamie regułę z ADR, a zestaw CIS oznacza go w trybie Audit. Recenzent odrzuca zmianę w pull requeście, zanim cokolwiek trafi do produkcji.
Private endpoint zastępuje publiczny adres IP
Plan uruchamia się ponownie po każdym pushu, więc recenzent widzi poprawkę w tym samym pull requeście. Plan pokazuje teraz 13 do dodania, razem z private endpointem.
Zatwierdzone scalenie wdraża zmianę
Wskazany recenzent zatwierdza, a pipeline uwierzytelnia się przez workload identity federation. Produkcji nie zmienia się z portalu: nikt nie ma stałej roli z prawem zapisu, PIM nadaje ją na czas, a ręczna zmiana jest dryfem, który wraca do kodu (RUNBOOK-08).
Skan dryfu konfiguracji porównuje stan z rzeczywistością
Zaplanowany skan stanu względem rzeczywistości zamyka pętlę. Zmiana zrobiona ręcznie gdziekolwiek w środowisku pojawia się przy następnym skanie jako ustalenie z dołączonym pull requestem.
Poziomy współpracy
Każdy poziom obejmuje cały przebieg: najpierw rozpoznanie i ADR, potem budowa z pilotażowym obciążeniem, na końcu Operate albo udokumentowane przekazanie. Zakres prac po polsku obie strony podpisują, zanim zacznę rozpoznanie: ustala poziom, cenę i terminy. Jeśli rozpoznanie pokaże inny rozmiar środowiska, zmieniamy zakres prac na piśmie.
Essential
Startowa landing zone, zbudowana i przekazana.
Operate
Landing zone plus miesięczny przegląd, który porównuje ją z projektem.
Azure Virtual Desktop (AVD)
Pule hostów (host pools) dobrane do rzeczywistej liczby jednoczesnych użytkowników, profile FSLogix, które przetrwają wymianę hostów, i plan autoskalowania dostrojony do Państwa szczytu logowań. Całość działa na opisanej wyżej landing zone i dodaje izolację sesji, pipeline obrazów i model kosztów. Zasoby obliczeniowe Azure rozlicza Państwa subskrypcja, według Państwa umowy z Microsoft albo z Państwa dostawcą.
Co trafia do Państwa repozytorium
Działające pule hostów i opisany cykl życia obrazów
Pule hostów z Windows 11 multi-session, budowane z wersjonowanych obrazów wzorcowych (golden images). Hosty odtwarzam z obrazu. Jedynym sposobem zmiany hosta jest wdrożenie nowego obrazu w ścieżce AVD, a poprzednia wersja obrazu zawsze zostaje.
Autoskalowanie ze zmierzoną krzywą kosztów
Plan skalowania dopasowuję do Państwa szczytu logowań, a miesięczny przegląd podaje koszt w euro na jednoczesnego użytkownika za godzinę oraz odsetek uruchomionych, ale bezczynnych hostów, z celem poniżej 15%.
Runbooki i dowody w Państwa repozytorium
Procedury operacyjne, lista kontrolna zabezpieczeń bazowych i macierz mapowania kontrolek do DORA i NIS2, zapisane w repozytorium obok kodu Terraform. To mapowanie dla Państwa recenzenta, a nie certyfikat, który posiadam.
Model pojemności i kosztów
Prognoza oparta na liczbie jednoczesnych użytkowników z danych z rozpoznania, odświeżana miesięcznym raportem, żeby mogli Państwo porównać rachunek z prognozą.
Poziomy współpracy AVD
Zakres prac dla każdego poziomu obie strony podpisują, zanim zacznę pracę, więc wszystko, co poziom obejmuje, jest zapisane.
Pilotaż AVD
Projekt i dwutygodniowy pilotaż z prawdziwymi użytkownikami.
Wdrożenie AVD
Środowisko produkcyjne: podłączone, udokumentowane i przekazane.
Operate AVD
Miesięczny przegląd kosztów, obrazów i skalowania, który prowadzę sam, bo sam to zbudowałem.
Czego zakres nie obejmuje
Landing zone
Wyłączenia podaję wprost, żeby realizacja przebiegała sprawnie. Jeśli potrzebują Państwo czegoś z tej listy, powiem, która usługa albo który partner się tym zajmie.
- Migracja aplikacji do Azure (osobny zakres dla każdego obciążenia).
- Modernizacja lokalnego Active Directory (przypadek po przypadku).
- Niestandardowa automatyzacja wdrożeń oprogramowania niezależnych dostawców, ISV (osobny zakres).
- Optymalizacja kosztów poza podstawową konfiguracją landing zone. Najpierw Państwa eksport czyta bezpłatna analiza kosztów Azure.
- Nie sprzedaję subskrypcji ani zużycia Azure. Subskrypcja i rachunek za zużycie zostają po Państwa stronie: u Państwa dostawcy albo bezpośrednio u Microsoft. Nie sprzedaję licencji Microsoft firmom z Polski. Kupują je Państwo u swojego dostawcy.
- Nie prowadzę SOC ani MDR, nie pełnię dyżuru i nie obsługuję trwającego włamania.
Azure Virtual Desktop
Poza zakresem AVD.
- Szkolenia użytkowników końcowych
- Tworzenie własnych aplikacji uruchamianych w sesji
- Zakup licencji Citrix
Do sprawdzenia przed rozmową
Bezpłatna analiza kosztów Azure czyta eksport z Cost Management w przeglądarce, bez wysyłania plików. Przy każdej liczbie widać, z której kolumny albo z jakiego API pochodzi, a to, czego odczyt nie zobaczył, jest oznaczone jako nieodczytane, a nie jako zero.
Karta dostawcy do pobrania, dokumenty umowy po polsku i rozliczenia dla księgowości, w jednym miejscu.
Ile to kosztuje
Cenę podaję na piśmie przed rozpoczęciem prac, po 30-minutowej rozmowie.
- Dzień pracy
- od 600 € bez VAT
- Podstawa rozliczenia
- Stała cena za poziom współpracy, ustalona w zakresie prac, który obie strony podpisują, zanim zacznę rozpoznanie.
- Azure Virtual Desktop
- Pilotaż AVD i Wdrożenie AVD mają po jednej stałej cenie, ustalonej w zakresie prac. Operate AVD to ten sam miesięczny pakiet godzin co Operate w Azure: 10 godz. w miesiącu.
- Zużycie Azure
- Zużycie Azure rozlicza Państwa subskrypcja, według Państwa umowy z Microsoft albo z Państwa dostawcą. Nie ma go na mojej fakturze.
- Waluta
- Euro, ceny bez VAT. Kwoty w złotych są orientacyjne, po kursie średnim NBP z podanego dnia; faktura jest w euro.
- VAT
- Firmy z UE spoza Malty, których numer VAT potwierdza system VIES, otrzymują fakturę z odwrotnym obciążeniem.
- Faktura
- Fakturę w euro wystawia Michal Jatczak, przedsiębiorca zarejestrowany na Malcie, działający pod nazwą handlową ITSailor.
- Poziom usług
- Bez SLA i bez dyżuru. Terminy zapisuję w zakresie prac.
- Warunki
Szczegóły, jeśli ich Państwo potrzebują
Co zawiera każdy poziom Azure
Essential
- Tygodnie 1 i 2: rozpoznanie, mapowanie wymagań regulacyjnych, podpisany zestaw ADR
- Tygodnie od 3 do 6: landing zone i biblioteka Terraform wdrożone, przez nie przechodzi pilotażowe obciążenie
- Topologia startowa: grupa główna i dziewięć grup z szablonu, od 3 do 5 subskrypcji
- Podstawa Entra ID i PIM (PIM wymaga Entra ID P2 albo Entra ID Governance), polityki CIS i tagowania
- 10 runbooków platformy i 30-dniowe okno na pytania po przekazaniu
Uporządkowane środowisko Azure, które prowadzi Państwa zespół, z decyzjami projektowymi zapisanymi na piśmie.
Operate
- Wszystko z poziomu Essential
- Skany dryfu konfiguracji w harmonogramie uzgodnionym przy ustalaniu zakresu; ustalenia trafiają jako pull requesty
- Miesięczny przegląd platformy: dryf konfiguracji, wyniki Azure Policy, koszty w podziale na właścicieli
- Kwartalny przegląd Azure Policy i RBAC z dostrojeniem Defender for Cloud
- Miesięcznie: 10 godz. na zmiany, przeglądy i pytania o to, co wdrożyłem albo przejrzałem. Niewykorzystane godziny nie przechodzą na kolejny miesiąc. Bez obiecanego czasu reakcji. Faktura co miesiąc z góry. Bez okresu minimalnego, 30-dniowy okres wypowiedzenia dla obu stron.
Środowisko pozostaje takie, jak zaprojektowano. Państwa audytor może prześledzić każdą zmianę wdrożoną przez pipeline do zatwierdzonego pull requestu, a zmiana spoza pipeline wraca jako ustalenie z pull requestem.
Azure Virtual Desktop: zakres i zawartość poziomów
- Topologia pul hostów i model pojemności
- Pipeline obrazów (Packer albo Azure VM Image Builder oraz Azure Compute Gallery)
- Wdrożenie profili FSLogix i kontenerów Office
- Autoskalowanie ze zmierzoną krzywą kosztów
- Dostarczanie aplikacji: App Attach (pakiety MSIX albo Appx), FSLogix App Masking albo instalacja na obrazie, według inwentarza
Pilotaż AVD
- Kwestionariusz rozpoznania i model pojemności
- Zestaw ADR: topologia, region, FSLogix, strategia obrazów
- Przegląd luk względem zabezpieczeń bazowych
- Pilotażowa pula hostów, przez dwa tygodnie, z udziałem od 5 do 10 prawdziwych użytkowników
- Zapis decyzji o wdrożeniu (go albo no-go), ze zmierzonymi czasami logowania i kosztami
Wiedzą Państwo, jak AVD zachowuje się z Państwa użytkownikami i aplikacjami, zanim się zobowiążą.
Wdrożenie AVD
- Biblioteka Terraform wdrożona w Państwa organizacji GitHub
- Pule hostów, premium storage dla FSLogix, plan skalowania zgodnie z ADR
- Pipeline obrazów z Azure Compute Gallery i pierwszym obrazem wzorcowym
- Dostarczanie aplikacji (App Attach albo na obrazie, według inwentarza)
- Wszystkie dziesięć runbooków, zweryfikowane zabezpieczenia bazowe, Exit Kit w zestawie
Produkcyjne środowisko AVD, które Państwa zespół obsłuży z samych runbooków.
Operate AVD
- Miesięczny raport kosztów wobec liczby jednoczesnych użytkowników, z jedną proponowaną zmianą
- Miesięczne aktualizacje obrazów z walidacją w grupie pilotażowej
- Dostrajanie planu skalowania, gdy zmieniają się wzorce pracy
- Kwartalna ponowna kontrola zabezpieczeń bazowych i odświeżenie macierzy kontrolek
- Pytania w ramach miesięcznych godzin, bez obiecanego czasu reakcji
- Miesięcznie: 10 godz. na zmiany, przeglądy i pytania o to, co wdrożyłem albo przejrzałem. Niewykorzystane godziny nie przechodzą na kolejny miesiąc. Bez obiecanego czasu reakcji. Faktura co miesiąc z góry. Bez okresu minimalnego, 30-dniowy okres wypowiedzenia dla obu stron.
Logowanie pozostaje szybkie, a koszt mieści się w sprawdzonym modelu.
Czy obsługuje Pan Bicep, Pulumi, CDK albo Terraform?
Terraform jest domyślny i jedyny, w którym dostarczam zestaw. Bicep, CDK albo Pulumi są możliwe tam, gdzie Państwa zespół już w nich pracuje, w osobnym zakresie.
W jakim języku są dokumenty?
Dokumenty zestawu (w tym runbooki i Exit Kit) oraz nazwy plików są na razie po angielsku. Po polsku jest zakres prac, który obie strony podpisują. Warunki umowy, Terms of Service, są po angielsku.
Czy potrzebujemy pełnego wdrożenia CAF (Cloud Adoption Framework), czy możemy zacząć od mniejszego?
Proszę zacząć od mniejszego. Poziom Essential obejmuje startową landing zone: grupę główną i dziewięć grup z szablonu oraz od 3 do 5 subskrypcji. Pełne środowisko ma zwykle od 5 do 15 subskrypcji. Istniejące subskrypcje zostają tam, gdzie są, aż do zaplanowanej fali, która je przeniesie.
Czy nasz zespół nadal może korzystać z portalu Azure?
Do czytania, pulpitów i diagnostyki: tak. Produkcji nie zmienia się z portalu: nikt nie ma stałej roli z prawem zapisu, PIM nadaje ją na czas, a ręczna zmiana jest dryfem, który wraca do kodu (RUNBOOK-08). Na prawdziwe awarie jest udokumentowana ścieżka break-glass. Subskrypcje sandbox zostają otwarte na eksperymenty, więc zabezpieczenia chronią produkcję, nie spowalniając niczyjej nauki.
Kto zatwierdza zmiany: Pan czy my?
Państwa pracownicy. Recenzenci repozytorium i osoby zatwierdzające w PIM są od pierwszego dnia wskazanymi rolami po Państwa stronie, a ja zgłaszam pull requesty jak wszyscy. Na poziomie Operate też recenzuję, a prawo zatwierdzenia zostaje u Państwa pracowników.
Ile kosztuje sama landing zone po uruchomieniu?
Warstwa zarządzania (grupy zarządzania, polityki, RBAC) nic nie kosztuje. Koszt bieżący generują sieć hub (Azure Firewall i bramy), retencja logów oraz płatny plan Defender for Cloud, który włącza zestaw, bo Defender for Cloud pokazuje standard CIS tylko przy płatnym planie. Rozmiar i cenę każdej z tych pozycji ustalam w fazie projektu, zanim cokolwiek zostanie wdrożone. Jeśli SKU Azure Firewall jest dla Państwa środowiska za duże, projekt to wskaże.
Mamy już zasoby w Azure. Czy to oferta tylko dla środowisk od zera?
Normą jest środowisko już istniejące (brownfield). Istniejące subskrypcje inwentaryzuję w rozpoznaniu, importuję do stanu Terraform albo przenoszę w zaplanowanych falach, a nic nie jest przenoszone, zanim właściciel zasobu pozna termin okna serwisowego.
Co się stanie z kodem Terraform, jeśli się rozstaniemy?
Zostaje u Państwa: od pierwszego commita kod jest w Państwa organizacji GitHub, a stan na Państwa koncie storage. Opłacone rezultaty, w tym ten kod, mogą Państwo bezterminowo używać i zmieniać w swojej organizacji oraz przekazać innemu dostawcy (Terms of Service, sekcja 6). Exit Kit dodaje procedurę przekazania stanu, odebranie mojego dostępu i listę wszystkiego, co niedokończone. Dotyczy to każdego poziomu.
AVD czy Windows 365?
To różne problemy. Windows 365: prosty, rozliczany za użytkownika, mało elastyczny. AVD: gęstszy i tańszy w dużej skali, ale wymaga więcej pracy operacyjnej.
Dlaczego rachunek za AVD bywa tak nieprzewidywalny?
Prawie zawsze z jednego z dwóch powodów: hosty dobrano do liczby pracowników zamiast do zmierzonej liczby jednoczesnych użytkowników albo autoskalowania nigdy nie włączono, bo nikt nie ufał mu przy aktywnych sesjach. Poprawiam oba: model pojemności dobiera rozmiar do szczytu jednoczesnych użytkowników, a plan skalowania wyłącza hosty dopiero wtedy, gdy nie ma na nich aktywnych sesji.
Czy licencje Microsoft 365 E3, Microsoft 365 E5 albo Business Premium już obejmują AVD?
Dla praw dostępu do Windows 11 Enterprise multi-session: tak, te licencje je zawierają (potwierdzam to w rozpoznaniu, według aktualnych warunków Microsoft). Dodatkowo płacą Państwo za zasoby obliczeniowe i storage Azure, a tę część trzymają w ryzach model pojemności i autoskalowanie.
Czy zewnętrzni współpracownicy mogą korzystać z AVD z prywatnych urządzeń?
To jeden z głównych powodów, dla których warto uruchomić AVD. Zewnętrzni współpracownicy dostają dostęp przez przeglądarkę wyłącznie do opublikowanych aplikacji: bez instalacji klienta, bez przekierowania dysków i schowka, z dostępem, który domyślnie wygasa w dniu zakończenia projektu. Proces nadawania dostępu zewnętrznym współpracownikom jest częścią runbooków wdrożenia AVD. Każdy współpracownik potrzebuje licencji uprawniającej do AVD (na przykład Microsoft 365 E3 albo Business Premium), przypisanej do jego konta w Państwa tenancie; licencja z jego własnej firmy zwykle tu nie wystarcza.
Powiązane strony
Wykrywanie i reagowanie w Microsoft 365
Microsoft Sentinel (SIEM), który korzysta z obszaru roboczego Log Analytics tworzonego w tej landing zone.
Tożsamość i dostęp uprzywilejowany
Conditional Access i konta uprzywilejowane po stronie Microsoft 365, w tym samym tenancie Microsoft Entra ID, na którym stoi ta landing zone.
Proszę spisać układ subskrypcji, zanim powstanie kolejna grupa zasobów.
Brief to kilka pól i kilka zdań o tym, co trzeba uporządkować w Azure, bez danych z Państwa subskrypcji. Rozmowa o zakresie trwa 30 minut, a zakres prac po polsku dostają Państwo na piśmie, zanim zacznę pracę w Państwa środowisku.
Exit Kit z przekazaniem stanu, na każdym poziomie.