Sdílet prostřednictvím


DevSecOps pro infrastrukturu jako kód (IaC)

Microsoft Sentinel
Azure Monitor
GitHubu

Nápady na řešení

Tento článek popisuje myšlenku řešení. Váš cloudový architekt může pomocí těchto pokynů vizualizovat hlavní komponenty pro typickou implementaci této architektury. Tento článek slouží jako výchozí bod k návrhu dobře navrženého řešení, které odpovídá konkrétním požadavkům vaší úlohy.

Tento nápad řešení znázorňuje kanál DevSecOps, který používá GitHub pro infrastrukturu jako kód (IaC). Popisuje také, jak řídit pracovní postup pro efektivitu provozu, zabezpečení a optimalizaci nákladů.

Terraform je ochranná známka společnosti Hashicorp. Použití této značky nevyžaduje žádné doporučení.

Architektura

Diagram znázorňující architekturu DevSecOps pro IaC

Stáhněte si soubor aplikace Visio s touto architekturou.

Tok dat

Následující tok dat odpovídá předchozímu diagramu:

  1. Pomocí testování řízeného vývoje můžete zkontrolovat změny kódu pro definice infrastruktury, jako jsou šablony IaC, do úložišť GitHubu. Současně vyvíjíte testy jednotek, integrační testy a zásady jako kód (PaC), abyste mohli otestovat kvalitu IaC.

  2. Žádosti o přijetí změn aktivují automatizované testování jednotek prostřednictvím GitHub Actions.

  3. Nakonfigurujte proces pracovního postupu GitHub Actions tak, aby otestovali IaC pomocí místně nasazených stavů infrastruktury a plánů.

  4. Nakonfigurujte GitHub Actions tak, aby kontrolovali problémy s kvalitou kódu a zabezpečením. Vytvořte vlastní vytvořené dotazy GitHub CodeQL, které analyzují šablony IaC a detekují potenciální ohrožení zabezpečení. Pokud se zjistí ohrožení zabezpečení, GitHub odesílá upozornění organizaci nebo vlastníkům úložišť a správcům úložišť.

  5. Nástroj IaC zřídí a upraví prostředky pro každé prostředí přizpůsobením velikosti, počtu instancí a dalších vlastností. U zřízených prostředků můžete spouštět automatizované integrační testy pro IaC.

  6. Pokud je nutná ruční aktualizace infrastruktury, je určený přístup správce zvýšen, aby provedl úpravy. Po úpravě se odebere přístup se zvýšenými oprávněními. Měli byste také protokolovat problém GitHubu pro odsouhlasení IaC. Kroky a přístupy k odsouhlasení závisí na konkrétních nástrojích IaC.

  7. SecOps nepřetržitě monitoruje a chrání před bezpečnostními hrozbami a ohroženími zabezpečení. Azure Policy vynucuje zásady správného řízení v cloudu.

  8. Když se zjistí anomálie, zaprotokoluje se problém GitHubu automaticky, aby se vyřešil.

Komponenty

  • GitHub je platforma pro hostování kódu pro správu verzí a spolupráci. V této architektuře ukládá šablony IaC a slouží jako centrální úložiště pro pracovní postupy vývoje, testování a zásad správného řízení.

  • GitHub Actions je nástroj pro automatizaci kontinuální integrace a průběžného nasazování (CI/CD), který umožňuje pracovním postupům sestavovat, testovat a nasazovat kód přímo z úložišť GitHub. V této architektuře GitHub Actions automatizuje testování jednotek, kontrolu zabezpečení a zřizování infrastruktury pro kanály IaC.

  • GitHub Advanced Security je sada funkcí zabezpečení, které zahrnují statickou analýzu a detekci ohrožení zabezpečení pro kód uložený na GitHubu. V této architektuře vylepšuje zabezpečení IaC tím, že kontroluje šablony a vyvolává výstrahy týkající se chybných konfigurací nebo rizik.

  • CodeQL je sémantický modul pro analýzu kódu, který umožňuje vlastním dotazům zjišťovat ohrožení zabezpečení a chybné konfigurace v kódu. V této architektuře CodeQL kontroluje artefakty úložiště, aby bylo možné identifikovat potenciální problémy se zabezpečením před nasazením.

  • Terraform je opensourcový nástroj pro automatizaci infrastruktury vyvinutý nástrojem HashiCorp, který umožňuje deklarativní zřizování napříč cloudovými prostředími. V této architektuře Terraform zřizuje a upravuje prostředky Azure na základě definic IaC a podporuje pracovní postupy vývoje řízené testy.

  • Microsoft Defender for Cloud je platforma pro správu zabezpečení, která poskytuje ochranu před hrozbami napříč hybridními cloudovými úlohami. V této architektuře nepřetržitě monitoruje nasazenou infrastrukturu kvůli ohrožením zabezpečení.

  • Microsoft Sentinel je řešení pro automatizované odpovědi (SOAR) nativní pro cloud a správu událostí (SIEM) a orchestrace zabezpečení, které k detekci hrozeb používá AI a analýzy. V této architektuře Microsoft Sentinel monitoruje aktivitu infrastruktury a vyvolává výstrahy nebo problémy GitHubu při zjištění anomálií.

  • Azure Policy je služba zásad správného řízení, která vynucuje pravidla a dodržování předpisů napříč prostředky Azure. V této architektuře Azure Policy ověřuje nasazení IaC proti standardům organizace a úloh a blokuje konfigurace nesplňující požadavky. Pokud se například váš projekt chystá nasadit virtuální počítač, který má nerozpoznanou skladovou položku, Azure Policy vás upozorní a zastaví nasazení.

  • Azure Monitor je platforma telemetrie a pozorovatelnosti, která shromažďuje metriky výkonu a protokoly aktivit z prostředků Azure. V této architektuře Azure Monitor detekuje nepravidelné podmínky v infrastruktuře a aktivuje výstrahy, aby bylo možné spustit třídění a nápravu.

Podrobnosti scénáře

DevSecOps pro IaC se koncepčně podobá DevSecOps pro kód aplikace ve službě Azure Kubernetes Service (AKS). K řízení a automatizaci průběžné integrace a průběžného doručování pro IaC ale potřebujete jinou sadu kanálů a nástrojů.

Při zavádění IaC je důležité při vývoji kódu vytvářet automatizační testy. Tyto testy snižují složitost testování IaC při škálování úloh. Můžete použít stavy konfigurace místní infrastruktury, jako jsou stavy Terraformu a plány pro vývoj řízený testy. Tyto stavy konfigurace emulují skutečné nasazení. Integrační testy pro IaC můžete spouštět ve skutečných nasazeních infrastruktury pomocí rozhraní REST API služby Azure Resource Graph.

PaC je další důležitou metodou poskytování infrastruktury, která vyhovuje předpisům a firemním zásadám správného řízení. Do kanálů můžete přidat pracovní postupy PaC, které automatizují zásady správného řízení v cloudu.

Zabezpečení infrastruktury v rané fázi vývoje snižuje rizika chybně nakonfigurované infrastruktury, která zveřejňuje body pro útok po nasazení. Nástroje pro analýzu statického kódu, jako je Synk nebo Aqua Security tfsec, můžete integrovat pomocí kódu CodeQL GitHubu a vyhledat ohrožení zabezpečení v kódu infrastruktury. Tento proces se podobá testování zabezpečení statických aplikací.

Při nasazení a provozu infrastruktury může být obtížné vyřešit odchylky konfigurace cloudu, zejména v produkčních prostředích.

Nastavte vyhrazené instanční objekty pro nasazení nebo úpravu cloudové infrastruktury pro produkční prostředí. Pak odeberte všechny ostatní přístupy, které umožňují ruční konfiguraci prostředí. Pokud potřebujete ruční konfigurace, zvyšte přístup určeného správce a po provedení změny odeberte zvýšený přístup. Azure Monitor byste měli nakonfigurovat tak, aby vyvolal problém GitHubu, aby vývojáři mohli změny odsouhlasit. Pokud je to možné, vyhněte se ruční konfiguraci.

Je důležité nepřetržitě monitorovat cloudové prostředí pro hrozby a ohrožení zabezpečení, aby se zabránilo incidentům zabezpečení. K detekci neobvyklého provozu můžete použít ochranu před hrozbami a nástroje SIEM. Tyto nástroje automaticky upozorňují správce zabezpečení a vyvolávají problém na GitHubu.

Potenciální případy použití

Jste součástí centrálního týmu vývojářů IaC, kteří používají multicloudovou strategii pro fiktivní společnost Contoso. Chcete nasadit cloudovou infrastrukturu do nové cílové zóny Azure pomocí DevSecOps pro IaC, abyste zajistili zabezpečení a kvalitu nasazení. Chcete také sledovat a auditovat všechny úpravy infrastruktury.

Přispěvatelé

Microsoft udržuje tento článek. Tento článek napsali následující přispěvatelé.

Hlavní autoři:

  • Vito Chin | Vedoucí architekt cloudových řešení
  • Yee Shian Lee | Vedoucí architekt cloudových řešení

Pokud chcete zobrazit nepublikované profily LinkedIn, přihlaste se na LinkedIn.

Další kroky