Wykorzystanie rozbudowanych usług IT w połączeniu z zastosowaniem chmury publicznej wymaga od organizacji definiowania oraz przestrzegania określonych zasad, wzorców, najlepszych praktyk. Wdrożenie polityk wymuszających na administratorach przestrzeganie w/w reguł wiąże się z wykorzystaniem dodatkowych narzędzi. Microsoft Azure, poprzez Cloud Adoption Framework (CAF), dostarcza nam wielu rozwiązań oraz zaleceń, aby w jak najlepszy sposób realizować proces adopcji chmury.
– Czy mógłbyś mi powiedzieć, w którą stronę mam pójść? – spytała Alicja.
– Zależy to od tego, dokąd chcesz dojść – powiedział kot.
– Nie wiem, dokąd chcę iść – powiedziała Alicja.
– Więc tym bardziej nie ma znaczenia, w którą stronę pójdziesz – powiedział kot.
Dzięki platformie Microsoft Azure od samego początku możemy tworzyć środowiska zgodne z najlepszymi praktykami, nie czekając na pojawienie się wyzwań czy problemów. Oczywiście mowa tu o rozwiązaniach Azure Governance.
W tym artykule skupię się na dwóch usługach Azure Policy i Azure Blueprints.
Azure Governance – wykorzystanie
Ogólnie rzecz biorąc, usługi Azure Governance są zaprojektowane tak, aby pomóc klientom:
- Egzekwować wewnętrzne standardy.
- Stosować spójne zabezpieczenia i zarządzanie.
- Szybciej konfigurować środowiska.
- Spełnić wymagania zgodności z przepisami.
- Szybciej wydawać zgodny kod.
- Kontrolować koszty.
- Zorganizować zasoby tak, aby pasowały do organizacji.

Czym jest Azure Policy?
Azure Policy jest usługą, która pozwala na tworzenie polityk, przypisywanie ich do zasobów oraz otrzymywanie alertów lub podejmowanie działań w przypadku niezgodności z nimi. Pozwala na definiowanie zarówno pojedynczych polityk, jak i grup powiązanych polityk, zwanych inicjatywami (initiatives).
Polityki to zestawy reguł, które określają, co można, a czego nie można tworzyć w pojedynczej grupie zasobów lub w całej subskrypcji. Mogą być wykorzystane do wymuszenia, by użytkownicy mogli tworzyć i pracować z zatwierdzonymi zasobami – np. bez tworzenia nadmiernie rozbudowanych maszyn, które generują duże koszty na rachunku za chmurę. Microsoft Azure działa poprzez ocenę planowanych zasobów pod kątem zasad określonych w przypisanych politykach.
Obiektami Azure Policy są:
- definicja polityki (Policy definitione),
- inicjatywy (Initiative definitione),
- przypisania (Assignments) inicjatywy lub polityki.
Ryc. 2 Przykłady definicji polityk w Azure Portal – screen
Definicja polityki
Obejmuje warunki, w jakich zasady są wymuszane. Zawiera także zdefiniowany efekt, który występuje w przypadku spełnienia warunków. Możemy w tym celu wykorzystać kilka gotowych zasad, które są dostępne w Microsoft Azure, np. określnie w jakim rozmiarze SKU mogą być tworzone konta magazynu (Storage Account).
Inicjatywa
Jest zbiorem definicji polityk, które mają za zadanie osiągnięcie jednego celu. Upraszczają działanie poprzez grupowanie zestawu polityk dotyczących tego samego elementu. Przykładem może być zestaw polityk odnoszących się do rozliczeń (billing).
Przypisania
To powiązanie definicji polityki lub inicjatywy, do określonego zasobu, grup zasobów, subskrypcji lub grup zarządzania. Przykładem może być polityka ograniczająca listę lokalizacji, w których użytkownicy mogą rozmieszczać zasoby, która jest stosowana tylko do grupy zasobów zespołu finansowego, a nie do grupy zasobów zespołu Dev.
Więcej informacji znajdziecie w szczegółowej dokumentacji Microsoftu.
Czym jest Azure Blueprints?
Azure Blueprints jest to pakiet lub kontener do tworzenia specyficznych dla danego obszaru zestawów standardów, wzorców, niezbędnych usług oraz wymagań związanych z wdrażaniem rozwiązań
w chmurze Microsoft Azure. Zawiera również konfiguracje związane bezpieczeństwem
i projektowaniem, które mogą być ponownie wykorzystane w celu zachowania spójności i zgodności w ramach całego środowiska.
Azure Blueprints pozwala również na szybkie tworzenie nowych środowisk, wdrażanie zintegrowanych komponentów oraz przyspieszanie czasu rozwoju i dostarczania usług dla klientów.

Azure Blueprint składa się z artefaktów:
- Grup zasobów (Resource Groups),
- Szablonów Azure Resource Manager (ARM template),
- Przypisań polityk (Policy Assignment),
- Przypisań ról (Role Assignment).
Po utworzeniu Azure Blueprint, należy go opublikować, bowiem do tego czasu jest on w formie szkicu (draft). Podczas publikacji nadajemy mu wersję, dzięki czemu można weryfikować historyczny zakres wdrażanych regulacji.

Wykorzystanie Azure Blueprints w organizacjach
Azure Blueprints jest bardzo przydatny dla organizacji, które korzystają z modelu Infrastructure-as-Code, ponieważ uwzględnia procesy CI/CD.
Aby korzystać z Azure Blueprints, musisz mieć przyznane uprawnienia za pośrednictwem kontroli dostępu na podstawie ról (RBAC) platformy Azure:
- Aby odczytać lub wyświetlić projekt w portalu Azure, konto użytkownika musi mieć dostęp odczytu do zakresu, w którym znajduje się definicja projektu.
- Aby utworzyć Azure Blueprints, konto użytkownika musi mieć następujące uprawnienia:
- Microsoft.Blueprint/blueprints/write – tworzenie definicji.
- Microsoft.Blueprint/blueprints/artifacts/write – tworzenie artefaktów.
- Microsoft.Blueprint/blueprints/versions/write – publikowanie.
- Aby usunąć Azure Blueprints, konto użytkownika musi posiadać następujące uprawnienia:
- Microsoft.Blueprint/blueprints/delete.
- Microsoft.Blueprint/blueprints/artifacts/delete.
- Microsoft.Blueprint/blueprints/versions/delete.
- Aby przypisać lub usunąć przypisanie Azure Blueprints, konto użytkownika musi mieć następujące uprawnienia:
- Blueprint/blueprintAssignments/write – przypisanie.
- Blueprint/blueprintAssignments/delete – usuwanie.
Po więcej informacji odsyłam Was do szczegółowej dokumentacji.
Wdrażanie Azure Blueprints
Istnieje kilka metod tworzenia Azure Blueprints. W zależności od preferencji lub umiejętności, możemy tworzyć Azure Blueprints, używając Azure PowerShell, Azure CLI, REST API, ARM Template czy Azure Portal.
Wykorzystanie portalu Azure do tworzenia blueprintów
Tworzenie Azure Blueprints składa się z trzech prostych kroków:
- Utwórz szkic Azure Blueprints
- Dodaj Artefakty (Szablony ARM, Polityki, Grupy Zasobów i Role) w hierarchię, aby zdefiniować swoje środowisko.
- Po dodaniu Szablonu ARM do projektu, będzie możliwość zdefiniowania parametrów: albo podczas budowania projektu Azure Blueprints albo możemy pozwolić na zdefiniowanie parametrów podczas przypisywania projektu blueprint.
- Opublikuj Azure Blueprints
Po tym jak blueprint jest utworzony, opublikuj go, nadając mu numer wersji i opis. Teraz blueprint jest gotowy do przypisania.
- Przypisz swój Azure Blueprints
Przypisz opublikowany blueprint do subskrypcji lub grup zarządzania. Po przypisaniu środowisko zostanie utworzone, zasoby wdrożone, a polityki zastosowane.
W momencie przypisywania można wybrać opcję blokady, aby chronić swój projekt. Przypisanie blokady pozwala chronić artefakty, które zdefiniowałeś jako „tylko do odczytu” lub uniemożliwia ich usunięcie, nawet przez właścicieli subskrypcji.
Ustawienia przypisania blokady
- Nie blokuj (Don’t Lock)
Przypisanie nie jest zablokowane. Użytkownicy, grupy i właściciele usługi z odpowiednimi uprawnieniami mogą modyfikować i usuwać wdrożone zasoby.
- Nie usuwaj (Do Not Delete)
Przypisanie jest zablokowane. Wdrożone zasoby nie mogą być usuwane – nawet przez właścicieli subskrypcji. Pamiętaj, że nie wszystkie typy zasobów obsługują blokowanie oraz ze względu na buforowanie, egzekwowanie blokad może potrwać do 30 minut.
- Tylko do odczytu (Read Only)
Przypisanie jest zablokowane. Rozmieszczone zasoby nie mogą być modyfikowane ani usuwane – nawet przez właścicieli subskrypcji. Pamiętaj, że nie wszystkie typy zasobów obsługują blokowanie oraz, ze względu na buforowanie, egzekwowanie blokad może potrwać do 30 minut.
Wersjonowanie Azure Blueprints
Co zrobić, gdy będziemy potrzebować wprowadzić zmiany w utworzonym i przypisanym Azure Blueprint? Proces ten jest bardzo podobny do początkowego tworzenia projektu.
- Utwórz nowy szkic
Wybierz istniejący projekt, który chcesz zmodyfikować i edytuj go, aby wprowadzić niezbędne zmiany.
- Opublikuj Azure Blueprint
Publikuj zmiany z nowym opisem i numerem wersji.
- Przypisz Azure Blueprint
Przypisz nowo opublikowany projekt do subskrypcji lub grup zarządzania.
Podsumowanie
Artykuł przedstawia ogólny zarys tego czym jest Azure Policy i Azure Blueprints. Jeśli ktoś, nie jest zaznajomiony z narzędziami takimi jak Ansible czy Terraform, Azure Blueprints będzie dobrym startem do budowania infrastruktury jako kodu. Zaś Azure Policy pomoże utrzymać porządek i zasady w tworzeniu zasobów i ich monitorowania.
***
Jeśli ciekawi Cię zastosowanie Azure LogicApp oraz FunctionApp w testach E2E, przeczytaj ten artykuł.
Zostaw komentarz