Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pomysły dotyczące rozwiązań
W tym artykule opisano pomysł rozwiązania. Architekt chmury może użyć tych wskazówek, aby ułatwić wizualizowanie głównych składników dla typowej implementacji tej architektury. Skorzystaj z tego artykułu jako punktu wyjścia, aby zaprojektować dobrze zaprojektowane rozwiązanie zgodne z konkretnymi wymaganiami obciążenia.
Ta koncepcja rozwiązania ilustruje potok DevSecOps, który wykorzystuje GitHub do zarządzania infrastrukturą jako kodem (IaC). Traktując definicje infrastruktury jako jedyne źródło prawdy, obciążenia robocze mogą automatyzować walidację, skanowanie bezpieczeństwa, nadzór i zapewnianie zgodności w całym cyklu życia wdrożenia.
Ustandaryzowane wzorce wdrażania, programowanie wspomagane przez sztuczną inteligencję, skanowanie zabezpieczeń kodu i konfiguracji, zarządzanie ładem opartym na zasadach i zarządzanie cyklem życia pomaga zwiększyć bezpieczeństwo, zwiększyć wydajność operacyjną, zmniejszyć dryf konfiguracji i zapewnić niezawodne środowiska w chmurze.
Architektura
Pobierz plik programu Visio z tą architekturą.
Przepływ danych
Poniższy przepływ danych odpowiada powyższemu diagramowi:
Deweloperzy używają wspomaganego przez sztuczną inteligencję, opartego na testach programowania, aby tworzyć i obsługiwać kod infrastruktury, moduły wielokrotnego użytku, testy i przepływy pracy wdrażania. Tworzą testy jednostkowe, testy integracyjne oraz kontrole policy as code (PaC) równolegle z definicjami infrastruktury.
Deweloperzy zapisują kod IaC, testy i mechanizmy kontrolne w repozytoriach GitHub, aby zweryfikować jakość, bezpieczeństwo i zgodność przed przesłaniem pull requestów.
Pull requesty uruchamiają zautomatyzowane testy w GitHub Actions. Ten przepływ pracy generuje i weryfikuje podglądy wdrożenia przed wdrożeniem.
GitHub Advanced Security zapewnia kontrole zabezpieczeń na poziomie repozytorium. Kontrole obejmują skanowanie kodu lub przegląd zależności w odpowiednich przypadkach oraz włączanie skanowania wpisów tajnych i ochrony wypychanych w repozytorium w celu wykrywania ujawnionych wpisów tajnych.
Skonfigurowana akcja zabezpieczeń metodyki DevOps skanuje definicje infrastruktury pod kątem błędów konfiguracji i raportów dotyczących zabezpieczeń metodyki DevOps w Microsoft Defender dla Chmury. Defender dla Chmury koreluje te ustalenia ze szczegółowymi informacjami o stanie zabezpieczeń w chmurze, aby ułatwić ustalanie priorytetów korygowania przed wdrożeniem.
Potok wdrażania aprowizuje lub aktualizuje zasoby platformy Azure z wykorzystaniem artefaktów IaC wielokrotnego użytku z zatwierdzonych definicji infrastruktury, takich jak Azure Verified Modules (AVM). Stosy wdrożeń platformy Azure pomagają utrzymać spójność między wdrożonymi zasobami a definicjami przechowywanymi w systemie kontroli wersji, a ustawienia odmowy dla wdrożenia pomagają ograniczyć dryf konfiguracji przez blokowanie zmian wprowadzanych poza wdrożeniem. Zatwierdzone zmiany ręczne są udokumentowane i uzgadniane za pośrednictwem kontroli źródła w celu zachowania usługi Git jako autorytatywnego źródła prawdy.
Metodyka DevSecOps stale monitoruje zagrożenia i luki w zabezpieczeniach oraz broni się przed nimi. Usługa Azure Policy wymusza ład w chmurze.
Skonfigurowana automatyzacja tworzy zgłoszenie w serwisie GitHub, gdy usługi monitorowania lub zabezpieczeń wykryją anomalię. Na przykład Defender dla Chmury może zidentyfikować publicznie uwidoczniony zasób, który narusza wymagania dotyczące zabezpieczeń. Grupa akcji Azure Monitor lub reguła automatyzacji Microsoft Sentinel może wywołać przepływ pracy usługi Azure Logic Apps, który tworzy zgłoszenie w serwisie GitHub w celu przejrzenia i naprawy problemu.
Składniki
GitHub to platforma hostingu kodu do kontroli wersji i współpracy. W tej architekturze GitHub przechowuje szablony IaC w centralnych repozytoriach do tworzenia oprogramowania, testowania, procesów nadzoru oraz tworzenia oprogramowania wspomaganego przez SI z pomocą GitHub Copilot.
GitHub Actions to narzędzie automatyzacji ciągłej integracji i ciągłego wdrażania (CI/CD), które umożliwia przepływom pracy kompilowanie, testowanie i wdrażanie kodu bezpośrednio z repozytoriów GitHub. W tej architekturze funkcja GitHub Actions automatyzuje testowanie jednostkowe, skanowanie zabezpieczeń i aprowizowanie infrastruktury dla potoków IaC.
GitHub Advanced Security zapewnia funkcje zabezpieczeń na poziomie repozytorium, w tym skanowanie wpisów tajnych i wykrywanie luk w zabezpieczeniach zależności. W tej architekturze usługa GitHub Advanced Security pomaga identyfikować ujawnione poświadczenia, wrażliwe zależności typu open source i inne zagrożenia bezpieczeństwa repozytorium przed scaleniem i wdrożeniem kodu.
Zabezpieczenia metodyki DevOps w Defender dla Chmury centralizuje wyniki zabezpieczeń metodyki DevOps i koreluje je z kontekstem chmury. W tej architekturze skonfigurowana akcja GitHub rozwiązania zabezpieczające firmy Microsoft DevOps skanuje artefakty IaC pod kątem nieprawidłowych konfiguracji i zgłasza wyniki do usługi Defender dla Chmury w celu ustalenia priorytetów i korygowania problemów.
Moduły Azure Verified Modules (AVM) to gotowe moduły IaC utrzymywane przez firmę Microsoft. W tej architekturze obciążenia używają usługi AVM do wdrażania modułów zasobów i wzorców wielokrotnego użytku, które są zgodne ze wskazówkami dotyczącymi platformy Azure Well-Architected Framework.
Stosy wdrożeniowe platformy Azure umożliwiają obciążeniom zarządzanie wdrożonymi zasobami jako pojedynczymi jednostkami zarządzanymi w ramach cyklu życia. Stosy wdrożeniowe platformy Azure pomagają utrzymać spójność między wdrożonymi zasobami a definicjami infrastruktury przechowywanymi w kontroli wersji, wspierają zarządzanie cyklem życia oraz ograniczają dryf konfiguracji dzięki stosowaniu mechanizmów nadzoru i ustawień odmowy dostępu.
Defender dla Chmury to platforma do zarządzania zabezpieczeniami, która zapewnia ochronę przed zagrożeniami w ramach obciążeń chmury hybrydowej. W tej architekturze stale monitoruje wdrożona infrastruktura pod kątem luk w zabezpieczeniach i zagrożeń oraz uzupełnia wyniki zabezpieczeń metodyki DevOps za pomocą szczegółowych informacji o zabezpieczeniach środowiska uruchomieniowego.
Microsoft Sentinel to natywne dla chmury rozwiązanie do zarządzania informacjami i zdarzeniami zabezpieczeń (SIEM) oraz automatyczne reagowanie na orkiestrację zabezpieczeń (SOAR), które używa sztucznej inteligencji i analizy do wykrywania zagrożeń i reagowania na nie. W tej architekturze Microsoft Sentinel monitoruje aktywność infrastruktury i zgłasza alerty lub GitHub Problemy podczas wykrywania anomalii.
Azure Policy ocenia zasoby Azure pod kątem standardów organizacyjnych i obciążeń. W zależności od przypisanego efektu zasad Azure Policy może przeprowadzać inspekcję, modyfikowanie, korygowanie lub odrzucanie niezgodnych konfiguracji. Na przykład definicja zasady z efektem
denymoże blokować wdrożenie maszyny wirtualnej, której SKU nie jest dozwolone.Azure Monitor to platforma telemetrii i możliwości obserwowania, która zbiera metryki wydajności i dzienniki aktywności z zasobów platformy Azure. W tej architekturze usługa Azure Monitor wykrywa nieprawidłowości w infrastrukturze i uruchamia alerty, dzięki czemu można rozpocząć wstępną analizę incydentu i usuwanie problemów.
Szczegóły scenariusza
Podczas wdrażania IaC utwórz testy automatyczne podczas opracowywania kodu. Generowanie planów wdrażania i stanów konfiguracji infrastruktury w celu emulowania rzeczywistych wdrożeń. Programowanie oparte na testach zmniejsza złożoność testowania IaC podczas skalowania obciążeń.
Uruchamianie testów integracji dla wdrożonych zasobów Azure przy użyciu Azure SDKs i interfejsów API, Azure Resource Graph, narzędzi sprawdzania poprawności specyficznych dla obciążenia lub zautomatyzowanych struktur testowych. Te testy pomagają zweryfikować konfigurację zasobów, łączność, mechanizmy kontroli zabezpieczeń i gotowość operacyjną.
PaC to kolejna ważna metoda dostarczania infrastruktury zgodnej z przepisami i ładem korporacyjnym. Przepływy pracy PaC można dodać do potoków, aby zautomatyzować zarządzanie chmurą.
Zabezpieczanie infrastruktury na wczesnym etapie cyklu projektowania zmniejsza ryzyko problemów z zabezpieczeniami i zgodnością po wdrożeniu. Zintegruj GitHub Advanced Security oraz zabezpieczenia DevOps w usłudze Defender dla Chmury z przepływami pracy DevSecOps, aby identyfikować luki w zabezpieczeniach, problemy z jakością kodu, naruszenia zasad, ujawnianie wpisów tajnych oraz zagrożenia związane z konfiguracją w kodzie IaC. Takie podejście jest podobne do statycznego testowania zabezpieczeń aplikacji (SAST) dla kodu aplikacji.
Dryf konfiguracji może być trudny do rozwiązania, gdy infrastruktura jest wdrażana i operacyjna, szczególnie w środowiskach produkcyjnych. Użyj GitHub Actions z OpenID Connect (OIDC) i federacją tożsamości obciążeń Microsoft Entra, aby wdrażać zasoby platformy Azure i zarządzać nimi bez przechowywania poświadczeń. Ogranicz uprawnienia do wdrażania za pomocą przypisań kontroli dostępu opartej na rolach platformy Azure (Azure RBAC) zgodnych z zasadą najmniejszych uprawnień oraz mechanizmów ochrony środowiska. Aby wprowadzić wyjątkowe zmiany ręczne, użyj uprzywilejowanego dostępu just-in-time, zarejestruj zmianę i automatycznie utwórz zgłoszenie w serwisie GitHub, aby uzgodnić stan infrastruktury z jej definicją za pomocą systemu kontroli wersji. Unikaj ręcznej konfiguracji, jeśli to możliwe, i traktuj usługę Git jako autorytatywne źródło stanu infrastruktury.
Aby zapobiec dryfowi u źródła, użyj stosów wdrożenia platformy Azure, gdy grupa zasobów platformy Azure zdefiniowanych w szablonie ma wspólny cykl życia. Uwzględnij ograniczenia stosu wdrożenia i zastosuj odpowiednie ustawienia odmowy, aby ograniczyć zmiany płaszczyzny sterowania poza pasmem. Zachowaj wersję definicji IaC w kontroli źródła.
Aby zapobiec zdarzeniom zabezpieczeń, stale monitoruj środowisko chmury pod kątem zagrożeń i luk w zabezpieczeniach. Użyj narzędzi Defender dla Chmury, Microsoft Sentinel, Azure Monitor i innych narzędzi do ochrony przed zagrożeniami oraz narzędzi SIEM do wykrywania nietypowych działań. Te narzędzia mogą automatycznie ostrzegać administratorów zabezpieczeń i zgłaszać GitHub Problemy dotyczące badania i korygowania.
Potencjalne przypadki użycia
Centralne zespoły inżynierii platformowej mogą udostępniać zespołom aplikacyjnym, danych i AI wielokrotnego użytku przepływy pracy GitHub Actions, mechanizmy kontroli PaC oraz stosy wdrożeniowe Azure jako zatwierdzone wzorcowe ścieżki. GitHub Copilot ułatwia deweloperom tworzenie definicji infrastruktury, testów i przepływów pracy wdrażania. Skonfigurowana akcja rozwiązania zabezpieczające firmy Microsoft DevOps weryfikuje zabezpieczenia i konfigurację infrastruktury przed wdrożeniem i raportowaniem wyników zabezpieczeń metodyki DevOps w Defender dla Chmury. Organizacja może przyspieszyć dostarczanie infrastruktury przy zachowaniu ładu, spójności i standardów zabezpieczeń.
Usługi finansowe, opieka zdrowotna, sektor publiczny lub regulowane przedsiębiorstwa mogą używać metodyki DevSecOps dla IaC do automatyzowania wdrażania infrastruktury, wymuszania zasad, walidacji zabezpieczeń i raportowania zgodności. Azure Policy, Defender dla Chmury, Microsoft Sentinel i stosy wdrożeniowe platformy Azure pomagają utrzymać możliwość audytowania zmian infrastruktury, ograniczyć dryf konfiguracji i wspierać zgodność w całym cyklu życia infrastruktury. GitHub jest głównym źródłem prawdy w zakresie wszystkich zmian w infrastrukturze oraz mechanizmów nadzoru.
Współautorzy
Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.
Główni autorzy
- Vito Chin | Starszy architekt chmurowych rozwiązań
- Yee Shian Lee | Starszy architekt rozwiązań w chmurze
Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
- Rozważ użycie języka lub szablonu IaC. Bicep lub Terraform na platformie Azure to opcje.
- Skonfiguruj rozwiązania zabezpieczające firmy Microsoft DevOps, aby skanować połączone repozytorium GitHub.