Zagadnienia dotyczące zabezpieczeń obciążeń o znaczeniu krytycznym na platformie Azure
Zabezpieczenia to jedna z podstawowych zasad projektowania, a także kluczowy obszar projektowania, który musi być traktowany jako pierwszy rodzaj problemu w procesie architektury o znaczeniu krytycznym.
Biorąc pod uwagę, że głównym celem projektu o znaczeniu krytycznym jest maksymalizacja niezawodności, dzięki czemu aplikacja pozostaje wydajna i dostępna, zagadnienia dotyczące zabezpieczeń i zalecenia stosowane w tym obszarze projektowania skupią się na łagodzeniu zagrożeń z pojemnością, aby wpłynąć na dostępność i utrudnić ogólną niezawodność. Na przykład skuteczne ataki typu "odmowa usługi" (DDoS) mają katastrofalny wpływ na dostępność i wydajność. W jaki sposób aplikacja ogranicza te wektory ataków, takie jak SlowLoris, wpłynie na ogólną niezawodność. Dlatego aplikacja musi być w pełni chroniona przed zagrożeniami, które mają na celu bezpośrednie lub pośrednio naruszenie niezawodności aplikacji, aby mieć charakter prawdziwie krytyczny.
Należy również pamiętać, że często występują znaczące kompromisy związane ze wzmocnionym stanem zabezpieczeń, szczególnie w odniesieniu do wydajności, elastyczności operacyjnej i w niektórych przypadkach niezawodności. Na przykład włączenie wbudowanych wirtualnych urządzeń sieciowych (WUS) dla funkcji zapory nowej generacji (NGFW), takich jak głęboka inspekcja pakietów, spowoduje wprowadzenie znacznej kary dla wydajności, dodatkowej złożoności operacyjnej i ryzyka niezawodności, jeśli skalowalność i operacje odzyskiwania nie są ściśle zgodne z operacjami aplikacji. Dlatego ważne jest, aby dodatkowe składniki zabezpieczeń i praktyki mające na celu złagodzenie kluczowych wektorów zagrożeń były również przeznaczone do obsługi celu niezawodności aplikacji, co stanowi kluczowy aspekt zaleceń i zagadnień przedstawionych w tej sekcji.
Ważne
Ten artykuł jest częścią serii obciążeń o kluczowym znaczeniu dla architektury platformy Azure. Jeśli nie znasz tej serii, zalecamy rozpoczęcie od tego, co to jest obciążenie o znaczeniu krytycznym?
Projekt open source o krytycznym znaczeniu
Implementacje referencyjne są częścią projektu open source dostępnego w witrynie GitHub. Zasoby kodu przyjmują model Zero Trust w celu struktury i kierowania podejściem do projektowania i implementacji zabezpieczeń.
Wyrównanie do modelu Zero Trust
Model Microsoft Zero Trust zapewnia proaktywne i zintegrowane podejście do stosowania zabezpieczeń we wszystkich warstwach aplikacji. Wytyczne zerowego zaufania dążą do jawnego i ciągłego weryfikowania każdej transakcji, potwierdzenia najmniejszych uprawnień, używania analizy i zaawansowanego wykrywania w celu reagowania na zagrożenia niemal w czasie rzeczywistym. Ostatecznie koncentruje się na wyeliminowaniu zaufania wewnątrz i poza obwodami aplikacji, wymuszając weryfikację dla wszystkich prób nawiązania połączenia z systemem.
Uwagi dotyczące projektowania
Podczas oceniania stanu zabezpieczeń aplikacji zacznij od tych pytań jako podstawy dla każdej kwestii.
Ciągłe testowanie zabezpieczeń w celu zweryfikowania środków zaradczych pod kątem kluczowych luk w zabezpieczeniach.
- Czy testy zabezpieczeń są wykonywane w ramach zautomatyzowanych procesów ciągłej integracji/ciągłego wdrażania?
- Jeśli nie, jak często są wykonywane konkretne testy zabezpieczeń?
- Czy wyniki testów są mierzone względem żądanego stanu zabezpieczeń i modelu zagrożeń?
Poziom zabezpieczeń we wszystkich środowiskach niższych.
- Czy wszystkie środowiska w cyklu życia programowania mają taki sam stan zabezpieczeń jak środowisko produkcyjne?
Uwierzytelnianie i ciągłość autoryzacji w przypadku awarii.
- Jeśli usługi uwierzytelniania lub autoryzacji są tymczasowo niedostępne, czy aplikacja będzie mogła nadal działać?
Automatyczna zgodność z zabezpieczeniami i korygowanie.
- Czy można wykryć zmiany w kluczowych ustawieniach zabezpieczeń?
- Czy odpowiedzi na korygowanie niezgodnych zmian są zautomatyzowane?
Skanowanie wpisów tajnych w celu wykrywania wpisów tajnych przed zatwierdzaniem kodu w celu zapobiegania wyciekom wpisów tajnych za pośrednictwem repozytoriów kodu źródłowego.
- Czy uwierzytelnianie usług jest możliwe bez posiadania poświadczeń w ramach kodu?
Zabezpieczanie łańcucha dostaw oprogramowania.
- Czy istnieje możliwość śledzenia typowych luk w zabezpieczeniach i ekspozycji (CVE) w ramach używanych zależności pakietów?
- Czy istnieje zautomatyzowany proces aktualizowania zależności pakietu?
Cykle życia kluczy ochrony danych.
- Czy klucze zarządzane przez usługę mogą być używane do ochrony integralności danych?
- Jeśli klucze zarządzane przez klienta są wymagane, jaki jest bezpieczny i niezawodny cykl życia klucza?
Narzędzia ciągłej integracji/ciągłego wdrażania powinny wymagać jednostek usługi Firmy Microsoft z wystarczającym dostępem na poziomie subskrypcji, aby ułatwić dostęp do płaszczyzny kontroli dla wdrożeń zasobów platformy Azure do wszystkich rozważanych subskrypcji środowiska.
- Jeśli zasoby aplikacji są zablokowane w sieciach prywatnych, istnieje ścieżka łączności z prywatną płaszczyzną danych, dzięki czemu narzędzia ciągłej integracji/ciągłego wdrażania mogą wykonywać wdrożenia na poziomie aplikacji i konserwację.
- Wprowadza to dodatkową złożoność i wymaga sekwencji w procesie wdrażania za pośrednictwem wymaganych prywatnych agentów kompilacji.
- Jeśli zasoby aplikacji są zablokowane w sieciach prywatnych, istnieje ścieżka łączności z prywatną płaszczyzną danych, dzięki czemu narzędzia ciągłej integracji/ciągłego wdrażania mogą wykonywać wdrożenia na poziomie aplikacji i konserwację.
Zalecenia dotyczące projektowania
Użyj usługi Azure Policy, aby wymusić konfiguracje zabezpieczeń i niezawodności dla wszystkich usług, zapewniając, że wszelkie odchylenia są korygowane lub zabronione przez płaszczyznę sterowania w czasie konfiguracji, co pomaga ograniczyć zagrożenia związane ze scenariuszami "złośliwych administratorów".
Użyj usługi Microsoft Entra Privileged Identity Management (PIM) w ramach subskrypcji produkcyjnych, aby odwołać trwały dostęp płaszczyzny kontroli do środowisk produkcyjnych. Spowoduje to znaczne zmniejszenie ryzyka związanego ze scenariuszami "złośliwych administratorów" poprzez dodatkowe "kontrole i salda".
Użyj tożsamości zarządzanych platformy Azure dla wszystkich usług, które obsługują tę funkcję, ponieważ ułatwia usunięcie poświadczeń z kodu aplikacji i usunięcie obciążenia operacyjnego zarządzania tożsamościami dla komunikacji między usługami.
Użyj kontroli dostępu opartej na rolach (RBAC) firmy Microsoft do autoryzacji płaszczyzny danych ze wszystkimi usługami obsługującymi tę funkcję.
Użyj bibliotek uwierzytelniania Platforma tożsamości Microsoft pierwszej firmy w kodzie aplikacji, aby zintegrować je z identyfikatorem Entra firmy Microsoft.
Rozważ buforowanie bezpiecznego tokenu, aby umożliwić obniżoną wydajność, ale dostępne środowisko, jeśli wybrana platforma tożsamości jest niedostępna lub jest dostępna tylko częściowo na potrzeby autoryzacji aplikacji.
- Jeśli dostawca nie może wydać nowych tokenów dostępu, ale nadal weryfikuje istniejące, aplikacja i usługi zależne mogą działać bez problemów do momentu wygaśnięcia tokenów.
- Buforowanie tokenów jest zwykle obsługiwane automatycznie przez biblioteki uwierzytelniania (takie jak MSAL).
Użyj potoków infrastruktury jako kodu (IaC) i zautomatyzowanych potoków ciągłej integracji/ciągłego wdrażania, aby napędzać aktualizacje wszystkich składników aplikacji, w tym w warunkach awarii.
- Upewnij się, że połączenia usług narzędzi ciągłej integracji/ciągłego wdrażania są chronione jako krytyczne informacje poufne i nie powinny być bezpośrednio dostępne dla żadnego zespołu usług.
- Zastosuj szczegółową kontrolę dostępu opartą na rolach do potoków ciągłego wdrażania w środowisku produkcyjnym, aby ograniczyć ryzyko "złośliwego administratora".
- Rozważ użycie ręcznych bram zatwierdzania w potokach wdrażania produkcyjnego, aby jeszcze bardziej ograniczyć ryzyko "złośliwego administratora" i zapewnić dodatkową pewność techniczną dla wszystkich zmian produkcyjnych.
- Dodatkowe bramy bezpieczeństwa mogą wystąpić na kompromis pod względem elastyczności i powinny być starannie oceniane, biorąc pod uwagę, jak elastyczność może być utrzymywana nawet przy ręcznych bramach.
Zdefiniuj odpowiedni stan zabezpieczeń dla wszystkich niższych środowisk, aby zapewnić złagodzenie kluczowych luk w zabezpieczeniach.
- Nie należy stosować tego samego stanu zabezpieczeń co produkcja, szczególnie w odniesieniu do eksfiltracji danych, chyba że wymagania prawne przewidują konieczność wykonania tej czynności, ponieważ spowoduje to znaczne naruszenie elastyczności deweloperów.
Włącz Microsoft Defender dla Chmury (wcześniej znaną jako Azure Security Center) dla wszystkich subskrypcji, które zawierają zasoby dla obciążenia o znaczeniu krytycznym.
- Użyj usługi Azure Policy, aby wymusić zgodność.
- Włącz usługę Azure Defender dla wszystkich usług, które obsługują tę funkcję.
Zastosuj metodyka DevSecOps i zaimplementuj testowanie zabezpieczeń w potokach ciągłej integracji/ciągłego wdrażania.
- Wyniki testów powinny być mierzone pod kątem zgodnego stanu zabezpieczeń w celu informowania o zatwierdzeniach wydań, jeśli są one zautomatyzowane lub ręczne.
- Stosowanie testów zabezpieczeń w ramach procesu produkcyjnego ciągłego wdrażania dla każdej wersji.
- Jeśli testowanie zabezpieczeń w każdej wersji zagraża elastyczności operacyjnej, upewnij się, że zastosowano odpowiedni cykl testowania zabezpieczeń.
Włącz skanowanie wpisów tajnych i skanowanie zależności w repozytorium kodu źródłowego.
Modelowanie zagrożeń
Modelowanie zagrożeń zapewnia oparte na ryzyku podejście do projektowania zabezpieczeń przy użyciu zidentyfikowanych potencjalnych zagrożeń w celu opracowania odpowiednich środków zaradczych zabezpieczeń. Istnieje wiele możliwych zagrożeń z różnym prawdopodobieństwem wystąpienia, a w wielu przypadkach zagrożenia mogą łączyć się w nieoczekiwane, nieprzewidywalne, a nawet chaotyczne sposoby. Ta złożoność i niepewność wynika z tego, że tradycyjne podejścia do zabezpieczeń oparte na technologii są w dużej mierze nieodpowiednie dla aplikacji chmury o znaczeniu krytycznym. Spodziewaj się, że proces modelowania zagrożeń dla aplikacji o znaczeniu krytycznym będzie złożony i nieprzyznany.
Aby ułatwić poruszanie się po tych wyzwaniach, należy zastosować podejście warstwowe ochrony w głębi systemu, aby zdefiniować i wdrożyć środki zaradcze wyrównujące dla modelowania zagrożeń, biorąc pod uwagę następujące warstwy obronne.
- Platforma Azure z podstawowymi funkcjami zabezpieczeń i mechanizmami kontroli.
- Architektura aplikacji i projekt zabezpieczeń.
- Funkcje zabezpieczeń wbudowane, włączone i wdrażalne stosowane do zabezpieczania zasobów platformy Azure.
- Kod aplikacji i logika zabezpieczeń.
- Procesy operacyjne i metodyka DevSecOps.
Uwaga
Podczas wdrażania w strefie docelowej platformy Azure należy pamiętać, że dodatkowa warstwa ograniczania zagrożeń poprzez aprowizowanie scentralizowanych funkcji zabezpieczeń jest zapewniana przez implementację strefy docelowej.
Uwagi dotyczące projektowania
FUNKCJA STRIDE zapewnia uproszczoną strukturę ryzyka umożliwiającą ocenę zagrożeń bezpieczeństwa w kluczowych wektorach zagrożeń.
- Sfałszowana tożsamość: personifikacja osób z uprawnieniami. Na przykład osoba atakująca podszywa się pod innego użytkownika przy użyciu ich —
- Tożsamość
- Uwierzytelnianie
- Modyfikowanie danych wejściowych: modyfikacja danych wejściowych wysyłanych do aplikacji lub naruszenie granic zaufania w celu zmodyfikowania kodu aplikacji. Na przykład osoba atakująca używająca iniekcji SQL do usuwania danych w tabeli bazy danych.
- Integralność danych
- Walidacja
- Blokowanie/zezwalanie na listę
- Odrzucanie akcji: możliwość odpierania już podjętych działań oraz zdolność aplikacji do zbierania dowodów i napędzania odpowiedzialności. Na przykład usunięcie danych krytycznych bez możliwości śledzenia złośliwego administratora.
- Inspekcja/rejestrowanie
- Podpisywanie
- Ujawnienie informacji: uzyskiwanie dostępu do ograniczonych informacji. Przykładem może być uzyskanie dostępu do pliku z ograniczeniami przez osobę atakującą.
- Szyfrowanie
- Eksfiltracja danych
- Ataki typu man-in-the-middle
- Odmowa usługi: zakłócenia złośliwej aplikacji w celu obniżenia wydajności środowiska użytkownika. Na przykład atak botnetu DDoS, taki jak Slowloris.
- Atak DDoS
- Botnety
- Możliwości sieci CDN i zapory aplikacji internetowej
- Podniesienie uprawnień: uzyskiwanie uprzywilejowanego dostępu do aplikacji za pomocą programów wykorzystujących autoryzację. Na przykład osoba atakująca manipuluje ciągiem adresu URL w celu uzyskania dostępu do poufnych informacji.
- Zdalne wykonywanie kodu
- Autoryzacja
- Izolacja
Zalecenia dotyczące projektowania
Przydziel budżet inżynieryjny w każdym przebiegu, aby ocenić potencjalne nowe zagrożenia i wdrożyć środki zaradcze.
Należy stosować świadome wysiłki w celu zapewnienia, że środki zaradcze zabezpieczeń są przechwytywane w ramach typowych kryteriów inżynieryjnych w celu zapewnienia spójności we wszystkich zespołach usług aplikacji.
Zacznij od usługi według modelowania zagrożeń na poziomie usługi i ujednolicenia modelu, konsolidując model wątków na poziomie aplikacji.
Ochrona przed włamaniem do sieci
Zapobieganie nieautoryzowanemu dostępowi do aplikacji o krytycznym znaczeniu i uwzględniane dane są niezbędne do utrzymania dostępności i ochrony integralności danych.
Uwagi dotyczące projektowania
Zero Trust zakłada stan naruszenia i weryfikuje każde żądanie tak, jakby pochodziło z niekontrolowanych sieci.
- Zaawansowana implementacja sieci zerowej wykorzystuje mikrosegmentację i rozproszone obwody ruchu przychodzącego/wychodzącego.
Usługi PaaS platformy Azure są zwykle dostępne za pośrednictwem publicznych punktów końcowych. Platforma Azure zapewnia możliwości zabezpieczania publicznych punktów końcowych, a nawet ich całkowitego prywatności.
- Usługa Azure Private Link/prywatne punkty końcowe zapewniają dedykowany dostęp do zasobu PaaS platformy Azure przy użyciu prywatnych adresów IP i prywatnej łączności sieciowej.
- Punkty końcowe usługi dla sieci wirtualnej zapewniają dostęp na poziomie usługi z wybranych podsieci do wybranych usług PaaS.
- Iniekcja sieci wirtualnej udostępnia dedykowane wdrożenia prywatne dla obsługiwanych usług, takich jak App Service za pośrednictwem środowiska App Service Environment.
- Ruch płaszczyzny zarządzania nadal przepływa przez publiczne adresy IP.
W przypadku obsługiwanych usług usługa Azure Private Link korzystająca z prywatnych punktów końcowych platformy Azure rozwiązuje ryzyko eksfiltracji danych skojarzone z punktami końcowymi usługi, takie jak złośliwy administrator zapisu danych do zasobu zewnętrznego.
W przypadku ograniczania dostępu sieciowego do usług PaaS platformy Azure przy użyciu prywatnych punktów końcowych lub punktów końcowych usługi wymagany będzie bezpieczny kanał sieciowy, aby potoki wdrażania uzyskiwały dostęp zarówno do płaszczyzny sterowania platformy Azure, jak i płaszczyzny danych zasobów platformy Azure w celu wdrożenia aplikacji i zarządzania nią.
- Prywatni agenci kompilacji hostowani samodzielnie wdrożeni w sieci prywatnej, ponieważ zasób platformy Azure może służyć jako serwer proxy do wykonywania funkcji ciągłej integracji/ciągłego wdrażania za pośrednictwem połączenia prywatnego. Dla agentów kompilacji należy użyć oddzielnej sieci wirtualnej.
- Wymagana jest łączność z prywatnymi agentami kompilacji z narzędzi ciągłej integracji/ciągłego wdrażania.
- Alternatywną metodą jest zmodyfikowanie reguł zapory dla zasobu na bieżąco w potoku, aby zezwolić na połączenie z publicznego adresu IP agenta usługi Azure DevOps, a zapora zostanie usunięta po zakończeniu zadania.
- Jednak takie podejście dotyczy tylko podzestawu usług platformy Azure. Na przykład nie jest to możliwe w przypadku prywatnych klastrów usługi AKS.
- Do wykonywania zadań programistycznych i administracyjnych w polach przesiadkowych usługi aplikacji można użyć.
- Prywatni agenci kompilacji hostowani samodzielnie wdrożeni w sieci prywatnej, ponieważ zasób platformy Azure może służyć jako serwer proxy do wykonywania funkcji ciągłej integracji/ciągłego wdrażania za pośrednictwem połączenia prywatnego. Dla agentów kompilacji należy użyć oddzielnej sieci wirtualnej.
Ukończenie zadań administracyjnych i konserwacji jest kolejnym scenariuszem wymagającym łączności z płaszczyzną danych zasobów platformy Azure.
Połączenia usług z odpowiadającą jednostką usługi Microsoft Entra mogą być używane w usłudze Azure DevOps do stosowania kontroli dostępu opartej na rolach za pośrednictwem identyfikatora Entra firmy Microsoft.
Tagi usług można stosować do sieciowych grup zabezpieczeń w celu ułatwienia łączności z usługami PaaS platformy Azure.
Grupy zabezpieczeń aplikacji nie obejmują wielu sieci wirtualnych.
Przechwytywanie pakietów w usłudze Azure Network Watcher jest ograniczone do maksymalnego okresu pięciu godzin.
Zalecenia dotyczące projektowania
Ogranicz dostęp do sieci publicznej do absolutnego minimum wymaganego przez aplikację do realizacji celu biznesowego w celu zmniejszenia obszaru ataków zewnętrznych.
- Użyj usługi Azure Private Link , aby ustanowić prywatne punkty końcowe dla zasobów platformy Azure, które wymagają bezpiecznej integracji sieci.
- Użyj hostowanych prywatnych agentów kompilacji na potrzeby narzędzi ciągłej integracji/ciągłego wdrażania, aby wdrożyć i skonfigurować zasoby platformy Azure chronione przez usługę Azure Private Link.
- Agenci hostowani przez firmę Microsoft nie będą mogli bezpośrednio łączyć się ze zintegrowanymi zasobami sieciowymi.
W przypadku pracy z prywatnymi agentami kompilacji nigdy nie otwieraj portu RDP lub SSH bezpośrednio do Internetu.
- Usługa Azure Bastion umożliwia bezpieczny dostęp do maszyn wirtualnych platformy Azure i wykonywanie zadań administracyjnych w usłudze Azure PaaS za pośrednictwem Internetu.
Użyj planu ochrony przed atakami DDoS w warstwie Standardowa, aby zabezpieczyć wszystkie publiczne adresy IP w aplikacji.
Usługa Azure Front Door z zasadami zapory aplikacji internetowej umożliwia dostarczanie i ochronę globalnych aplikacji HTTP/S obejmujących wiele regionów świadczenia usługi Azure.
- Użyj walidacji identyfikatora nagłówka, aby zablokować punkty końcowe aplikacji publicznej, aby akceptowały tylko ruch pochodzący z wystąpienia usługi Azure Front Door.
Jeśli dodatkowe wymagania dotyczące zabezpieczeń sieci wbudowanej, takie jak głęboka inspekcja pakietów lub inspekcja protokołu TLS, należy zastosować usługę Azure Firewall Premium lub wirtualne urządzenie sieciowe (WUS), upewnij się, że jest ona skonfigurowana pod kątem maksymalnej wysokiej dostępności i nadmiarowości.
Jeśli istnieją wymagania dotyczące przechwytywania pakietów, użyj pakietów usługi Network Watcher do przechwytywania pomimo ograniczonego okna przechwytywania.
Użyj sieciowych grup zabezpieczeń i grup zabezpieczeń aplikacji do mikrosegmentowania ruchu aplikacji.
- Unikaj używania urządzenia zabezpieczeń do filtrowania przepływów ruchu wewnątrz aplikacji.
- Rozważ użycie usługi Azure Policy, aby wymusić określone reguły sieciowej grupy zabezpieczeń są zawsze skojarzone z podsieciami aplikacji.
Włącz dzienniki przepływu sieciowej grupy zabezpieczeń i przekaż je do analizy ruchu, aby uzyskać wgląd w przepływy ruchu wewnętrznego i zewnętrznego.
Użyj usługi Azure Private Link/prywatnych punktów końcowych, jeśli są dostępne, aby zabezpieczyć dostęp do usług PaaS platformy Azure w projekcie aplikacji. Aby uzyskać informacje na temat usług platformy Azure, które obsługują usługę Private Link, zobacz Dostępność usługi Azure Private Link.
Jeśli prywatny punkt końcowy nie jest dostępny, a ryzyko eksfiltracji danych jest akceptowalne, użyj punktów końcowych usługi sieci wirtualnej, aby zabezpieczyć dostęp do usług PaaS platformy Azure z poziomu sieci wirtualnej.
- Nie włączaj domyślnie punktów końcowych usługi sieci wirtualnej we wszystkich podsieciach, ponieważ spowoduje to wprowadzenie znaczących kanałów eksfiltracji danych.
W przypadku scenariuszy aplikacji hybrydowych uzyskaj dostęp do usług PaaS platformy Azure ze środowiska lokalnego za pośrednictwem usługi ExpressRoute z prywatną komunikacją równorzędną.
Uwaga
Podczas wdrażania w strefie docelowej platformy Azure należy pamiętać, że łączność sieciowa z lokalnymi centrami danych jest zapewniana przez implementację strefy docelowej. Jedną z metod jest użycie usługi ExpressRoute skonfigurowanej z prywatną komunikacją równorzędną.
Ochrona integralności danych
Szyfrowanie jest ważnym krokiem w kierunku zapewnienia integralności danych i jest ostatecznie jednym z najważniejszych funkcji zabezpieczeń, które można zastosować w celu ograniczenia szerokiej gamy zagrożeń. W związku z tym ta sekcja zawiera kluczowe zagadnienia i zalecenia związane z szyfrowaniem i zarządzaniem kluczami w celu ochrony danych bez naruszania niezawodności aplikacji.
Uwagi dotyczące projektowania
Usługa Azure Key Vault ma limity transakcji dla kluczy i wpisów tajnych z ograniczeniem przepustowości zastosowanym w magazynie w określonym okresie.
Usługa Azure Key Vault zapewnia granicę zabezpieczeń, ponieważ uprawnienia dostępu do kluczy, wpisów tajnych i certyfikatów są stosowane na poziomie magazynu.
- Przypisania zasad dostępu usługi Key Vault przyznają uprawnienia oddzielnie kluczom, wpisom tajnym lub certyfikatom.
- Szczegółowe uprawnienia na poziomie obiektu do określonego klucza, wpisu tajnego lub certyfikatu są teraz możliwe.
- Przypisania zasad dostępu usługi Key Vault przyznają uprawnienia oddzielnie kluczom, wpisom tajnym lub certyfikatom.
Po zmianie przypisania roli istnieje opóźnienie do 10 minut (600 sekund) dla roli, która ma zostać zastosowana.
- Istnieje limit 2000 przypisań ról platformy Azure na subskrypcję.
Podstawowe moduły zabezpieczeń sprzętu (HSM) usługi Azure Key Vault mają weryfikację standardu FIPS 140.
- Dedykowany zarządzany moduł HSM usługi Azure Key Vault jest dostępny w scenariuszach wymagających zgodności ze standardem FIPS 140–2 poziom 3.
Usługa Azure Key Vault zapewnia wysoką dostępność i nadmiarowość, aby pomóc w utrzymaniu dostępności i zapobieganiu utracie danych.
Przejście w tryb failover w regionie może potrwać kilka minut, aby usługa Key Vault mogła przejść w tryb failover.
- Podczas pracy w trybie failover usługa Key Vault będzie w trybie tylko do odczytu, więc nie będzie możliwe zmienianie właściwości magazynu kluczy, takich jak konfiguracje zapory i ustawienia.
Jeśli link prywatny jest używany do nawiązywania połączenia z usługą Azure Key Vault, ponowne nawiązanie połączenia podczas regionalnego przejścia w tryb failover może potrwać do 20 minut.
Kopia zapasowa tworzy migawkę wpisu tajnego, klucza lub certyfikatu jako zaszyfrowanego obiektu blob, którego nie można odszyfrować poza platformą Azure. Aby uzyskać użyteczne dane z obiektu blob, należy je przywrócić do usługi Key Vault w ramach tej samej subskrypcji platformy Azure i lokalizacji geograficznej platformy Azure.
- Wpisy tajne mogą być odnawiane podczas tworzenia kopii zapasowej, co powoduje niezgodność.
Dzięki kluczom zarządzanym przez usługę platforma Azure będzie wykonywać funkcje zarządzania kluczami, takie jak rotacja, co zmniejsza zakres operacji aplikacji.
Mechanizmy kontroli regulacyjnej mogą określać użycie kluczy zarządzanych przez klienta na potrzeby funkcji szyfrowania usług.
Gdy ruch jest przesyłany między centrami danych platformy Azure, szyfrowanie warstwy łącza danych MACsec jest używane na podstawowym sprzęcie sieciowym w celu zabezpieczenia danych przesyłanych poza granicami fizycznymi, które nie są kontrolowane przez firmę Microsoft lub w imieniu firmy Microsoft.
Zalecenia dotyczące projektowania
Używaj kluczy zarządzanych przez usługę do ochrony danych, jeśli to możliwe, usuwając konieczność zarządzania kluczami szyfrowania i obsługi zadań operacyjnych, takich jak rotacja kluczy.
- Używaj kluczy zarządzanych przez klienta tylko wtedy, gdy istnieje wyraźne wymaganie prawne.
Użyj usługi Azure Key Vault jako bezpiecznego repozytorium dla wszystkich wpisów tajnych, certyfikatów i kluczy, jeśli potrzebne są dodatkowe mechanizmy szyfrowania lub klucze zarządzane przez klienta.
- Aprowizuj usługę Azure Key Vault przy użyciu zasad usuwania nietrwałego i przeczyszczania, aby umożliwić ochronę przechowywania usuniętych obiektów.
- Użyj jednostki SKU usługi Azure Key Vault opartej na module HSM dla środowisk produkcyjnych aplikacji.
Wdróż oddzielne wystąpienie usługi Azure Key Vault w ramach każdego regionalnego sygnatury wdrożenia, zapewniając izolację błędów i korzyści z wydajności poprzez lokalizację, a także nawigowanie po limitach skalowania narzuconych przez pojedyncze wystąpienie usługi Key Vault.
- Użyj dedykowanego wystąpienia usługi Azure Key Vault dla zasobów globalnych aplikacji.
Postępuj zgodnie z modelem najniższych uprawnień, ograniczając autoryzację do trwałego usuwania wpisów tajnych, kluczy i certyfikatów do wyspecjalizowanych niestandardowych ról firmy Microsoft Entra.
Upewnij się, że kopie zapasowe kluczy szyfrowania i certyfikatów przechowywanych w usłudze Key Vault są tworzone, dzięki czemu kopia w trybie offline w mało prawdopodobnym zdarzeniu usługi Key Vault stanie się niedostępna.
Użyj certyfikatów usługi Key Vault do zarządzania zakupami certyfikatów i podpisywaniem.
Ustanów zautomatyzowany proces rotacji kluczy i certyfikatów.
- Automatyzacja procesu zarządzania certyfikatami i odnawiania za pomocą publicznych urzędów certyfikacji w celu ułatwienia administrowania.
- Ustaw alerty i powiadomienia, aby uzupełnić automatyczne odnawianie certyfikatów.
- Automatyzacja procesu zarządzania certyfikatami i odnawiania za pomocą publicznych urzędów certyfikacji w celu ułatwienia administrowania.
Monitorowanie użycia klucza, certyfikatu i wpisu tajnego.
- Zdefiniuj alerty dotyczące nieoczekiwanego użycia w usłudze Azure Monitor.
Utrzymywanie ładu dzięki zasadom
Konwencje zabezpieczeń są ostatecznie skuteczne tylko wtedy, gdy są spójne i holistyczne wymuszane we wszystkich usługach i zespołach aplikacji. Usługa Azure Policy zapewnia strukturę wymuszania punktów odniesienia zabezpieczeń i niezawodności, zapewniając ciągłą zgodność z typowymi kryteriami inżynieryjnymi dla aplikacji o znaczeniu krytycznym. W szczególności usługa Azure Policy stanowi kluczową część płaszczyzny sterowania usługi Azure Resource Manager (ARM), uzupełniając kontrolę RBAC przez ograniczenie akcji, które mogą wykonywać autoryzowani użytkownicy, i może służyć do wymuszania ważnych konwencji zabezpieczeń i niezawodności w ramach używanych usług platformy.
W tej sekcji zapoznasz się zatem z kluczowymi zagadnieniami i zaleceniami dotyczącymi korzystania z ładu opartego na usłudze Azure Policy dla aplikacji o znaczeniu krytycznym, zapewniając ciągłe wymuszanie konwencji zabezpieczeń i niezawodności.
Uwagi dotyczące projektowania
- Usługa Azure Policy udostępnia mechanizm zapewniający zgodność, wymuszając konwencje zabezpieczeń i niezawodności, takie jak użycie prywatnych punktów końcowych lub użycie Strefy dostępności.
Uwaga
Podczas wdrażania w strefie docelowej platformy Azure należy pamiętać, że wymuszanie scentralizowanych przypisań zasad punktu odniesienia prawdopodobnie zostanie zastosowane w implementacji dla grup zarządzania i subskrypcji strefy docelowej.
Usługa Azure Policy może służyć do kierowania zautomatyzowanymi działaniami zarządzania, takimi jak aprowizowanie i konfiguracja.
- Rejestracja dostawcy zasobów.
- Walidacja i zatwierdzanie poszczególnych konfiguracji zasobów platformy Azure.
Zakres przypisania usługi Azure Policy określa pokrycie, a lokalizacja definicji usługi Azure Policy informuje o możliwości ponownego użycia zasad niestandardowych.
Usługa Azure Policy ma kilka limitów, takich jak liczba definicji w dowolnym określonym zakresie.
Wykonanie zasad Deploy If Not Exist (DINE) może potrwać kilka minut.
Usługa Azure Policy udostępnia krytyczne dane wejściowe na potrzeby raportowania zgodności i inspekcji zabezpieczeń.
Zalecenia dotyczące projektowania
Mapuj wymagania prawne i zgodności na definicje usługi Azure Policy.
- Jeśli na przykład istnieją wymagania dotyczące rezydencji danych, należy zastosować zasady w celu ograniczenia dostępnych regionów wdrażania.
Zdefiniuj typowe kryteria inżynieryjne służące do przechwytywania bezpiecznych i niezawodnych definicji konfiguracji dla wszystkich używanych usług platformy Azure, zapewniając, że te kryteria są mapowane na przypisania usługi Azure Policy w celu wymuszania zgodności.
- Na przykład zastosuj usługę Azure Policy, aby wymusić użycie Strefy dostępności dla wszystkich odpowiednich usług, zapewniając niezawodne konfiguracje wdrożenia wewnątrz regionu.
Implementacja referencyjna Mission Critical zawiera szeroką gamę zasad skoncentrowanych na zabezpieczeniach i niezawodności w celu zdefiniowania i wymuszania przykładowych typowych kryteriów inżynieryjnych.
- Monitorowanie dryfu konfiguracji usługi względem typowych kryteriów inżynieryjnych przy użyciu usługi Azure Policy.
W przypadku scenariuszy o krytycznym znaczeniu z wieloma subskrypcjami produkcyjnymi w ramach dedykowanej grupy zarządzania określ priorytety przypisań w zakresie grupy zarządzania.
Używaj wbudowanych zasad, jeśli to możliwe, aby zminimalizować nakłady operacyjne związane z utrzymywaniem niestandardowych definicji zasad.
Jeśli są wymagane definicje zasad niestandardowych, upewnij się, że definicje są wdrażane w odpowiednim zakresie grupy zarządzania, aby umożliwić ponowne użycie w ramach obejmujących subskrypcji środowiska, aby umożliwić ponowne użycie zasad w środowiskach produkcyjnych i niższych.
- Podczas dopasowywania planu działania aplikacji do planów działania platformy Azure skorzystaj z dostępnych zasobów firmy Microsoft, aby sprawdzić, czy krytyczne definicje niestandardowe mogą być włączone jako wbudowane definicje.
Uwaga
Podczas wdrażania w strefie docelowej platformy Azure rozważ wdrożenie niestandardowych definicji usługi Azure Policy w zakresie pośredniej głównej grupy zarządzania firmy w celu umożliwienia ponownego użycia we wszystkich aplikacjach w szerszej infrastrukturze platformy Azure. W środowisku strefy docelowej niektóre scentralizowane zasady zabezpieczeń będą domyślnie stosowane w wyższych zakresach grupy zarządzania w celu wymuszania zgodności zabezpieczeń w całej infrastrukturze platformy Azure. Na przykład zasady platformy Azure powinny być stosowane do automatycznego wdrażania konfiguracji oprogramowania za pomocą rozszerzeń maszyn wirtualnych i wymuszania zgodnej konfiguracji podstawowej maszyny wirtualnej.
- Użyj usługi Azure Policy, aby wymusić spójny schemat tagowania w aplikacji.
- Zidentyfikuj wymagane tagi platformy Azure i użyj trybu zasad dołączania, aby wymusić użycie.
Jeśli aplikacja jest subskrybowana do pomocy technicznej firmy Microsoft o krytycznym znaczeniu, upewnij się, że zastosowany schemat tagowania zapewnia zrozumiały kontekst, aby wzbogacić środowisko pomocy technicznej o głębokie zrozumienie aplikacji.
- Eksportuj dzienniki aktywności firmy Microsoft Entra do globalnego obszaru roboczego usługi Log Analytics używanego przez aplikację.
- Upewnij się, że dzienniki aktywności platformy Azure są archiwizowane w ramach globalnego konta magazynu wraz z danymi operacyjnymi na potrzeby długoterminowego przechowywania.
W strefie docelowej platformy Azure dzienniki aktywności firmy Microsoft Entra zostaną również pozyskane do scentralizowanego obszaru roboczego usługi Log Analytics platformy. Należy go ocenić w tym przypadku, jeśli identyfikator Entra firmy Microsoft jest nadal wymagany w globalnym obszarze roboczym usługi Log Analytics.
- Integrowanie zarządzania informacjami i zdarzeniami zabezpieczeń za pomocą Microsoft Defender dla Chmury (wcześniej znanej jako Azure Security Center).
Zagadnienia dotyczące usługi IaaS podczas korzystania z maszyn wirtualnych
W scenariuszach, w których wymagane jest użycie maszyn wirtualnych IaaS, należy wziąć pod uwagę pewne szczegóły.
Uwagi dotyczące projektowania
- Obrazy nie są aktualizowane automatycznie po wdrożeniu.
- Aktualizacje nie są instalowane automatycznie do uruchamiania maszyn wirtualnych.
- Obrazy i poszczególne maszyny wirtualne zwykle nie są utwardzane.
Zalecenia dotyczące projektowania
- Nie zezwalaj na bezpośredni dostęp za pośrednictwem publicznego Internetu do maszyn wirtualnych, zapewniając dostęp do protokołów SSH, RDP lub innych. Zawsze używaj usługi Azure Bastion i serwerów przesiadkowych z ograniczonym dostępem do małej grupy użytkowników.
- Ogranicz bezpośrednią łączność z Internetem przy użyciu sieciowych grup zabezpieczeń, zapory platformy Azure lub bram aplikacji (poziom 7), aby filtrować i ograniczać ruch wychodzący.
- W przypadku aplikacji wielowarstwowych należy rozważyć użycie różnych podsieci i użyć sieciowych grup zabezpieczeń w celu ograniczenia dostępu między nimi.
- Określanie priorytetów użycia uwierzytelniania za pomocą klucza publicznego, jeśli jest to możliwe. Przechowywanie wpisów tajnych w bezpiecznym miejscu, na przykład w usłudze Azure Key Vault.
- Ochrona maszyn wirtualnych przy użyciu uwierzytelniania i kontroli dostępu.
- Zastosuj te same rozwiązania zabezpieczeń, jak opisano w scenariuszach aplikacji o znaczeniu krytycznym.
Postępuj zgodnie z powyższym opisem i zastosuj praktyki zabezpieczeń dla scenariuszy aplikacji o znaczeniu krytycznym, a także najlepsze rozwiązania dotyczące zabezpieczeń obciążeń IaaS na platformie Azure.
Następny krok
Zapoznaj się z najlepszymi rozwiązaniami dotyczącymi procedur operacyjnych dla scenariuszy aplikacji o znaczeniu krytycznym.