Upravit

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 na řešení ilustruje kanál DevSecOps pomocí GitHubu pro IaC a 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

  1. Při vývoji řízeném testem můžete v úložištích GitHubu kontrolovat změny kódu pro definice infrastruktury, jako jsou šablony IaC. Současně vyvíjíte testy jednotek, integrační testy a PaC, abyste mohli otestovat kvalitu IaC.
  2. Žádosti o přijetí změn aktivují automatizované testování jednotek prostřednictvím GitHub Actions.
  3. Proces pracovního postupu GitHub Actions nakonfigurujete tak, aby otestování IaC s místně nasazenými stavy a plány infrastruktury.
  4. GitHub Actions nakonfigurujete tak, aby kontrolovali problémy s kvalitou kódu a zabezpečením. Pak použijete nástroje pro kontrolu zabezpečení založené na KóduQL GitHubu ke kontrole ohrožení zabezpečení v IaC. 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í, velikost přizpůsobení, počet instancí a další vlastnosti. 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 a k odsouhlasení IaC by se měl do GitHubu přihlásit problém. Kroky a možnost 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, měl by být problém automaticky vyvolán na GitHubu kvůli opravám.

Komponenty

  • GitHub je platforma pro hostování kódu pro správu verzí a spolupráci. Úložiště správy zdrojového kódu GitHubu obsahuje všechny soubory projektu a jejich historii revizí. Vývojáři můžou spolupracovat na přispívání, diskuzi a správě kódu v úložišti.
  • GitHub Actions poskytuje sadu pracovních postupů sestavení a verzí, které pokrývají kontinuální integraci (CI), automatizované testování a nasazení kontejnerů.
  • GitHub Advanced Security poskytuje funkce pro zabezpečení IaC. Vyžaduje další licenci.
  • CodeQL poskytuje nástroje pro kontrolu zabezpečení, které běží na statickém kódu pro detekci chybných konfigurací infrastruktury.
  • Terraform je partnerový produkt vyvinutý společností HashiCorp, který umožňuje automatizaci infrastruktury v Azure a dalších prostředích.
  • Microsoft Defender for Cloud poskytuje jednotnou správu zabezpečení a pokročilou ochranu před hrozbami napříč hybridními cloudovými úlohami.
  • Microsoft Sentinel je řešení AUTOMATIZOVANÉ reakce (SOAR) nativní pro cloud a orchestrace zabezpečení( SIEM). Využívá pokročilé analýzy AI a zabezpečení, které vám pomůžou detekovat hrozby v celém podniku a reagovat na ně.
  • Azure Policy pomáhá týmům zajišťovat správu a prevenci potíží s IT prostřednictvím definic zásad, které mohou vynucovat pravidla pro cloudové prostředky. Pokud se například váš projekt chystá nasadit virtuální počítač s nerozpoznanou skladovou jednotkou, Azure Policy vás na problém upozorní a zastaví nasazení.
  • Azure Monitor shromažďuje a analyzuje telemetrii aplikací, jako jsou metriky výkonu a protokoly aktivit. Když tato služba identifikuje nepravidelné podmínky, upozorní aplikace a pracovníky.

Podrobnosti scénáře

DevSecOps pro infrastrukturu jako kód (IaC) je koncepčně podobný DevSecOps pro kód aplikace v AKS. K řízení a automatizaci kontinuální integrace a průběžného doručování (CI/CD) 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. Stavy konfigurace místní infrastruktury, jako jsou stavy Terraformu, a plány můžete použít k vývoji vývoje řízeného testy (TDD) pro IaC. 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.

Zásady jako kód (PaC) jsou také důležitou metodou pro 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é konfigurace infrastruktury, která otevírá body pro útok po nasazení. Pomocí KóduQL GitHubu můžete integrovat nástroje pro analýzu statického kódu pro infrastrukturu, jako je Synk nebo Aquasecurity tfsec, a kontrolovat tak problémy se zabezpečením v kódu infrastruktury. Tento proces se podobá testování zabezpečení statických aplikací (SAST).

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í. V případě, že potřebujete ruční konfigurace, zvyšte úroveň přístupu určeného správce a po změně odeberte přístup se zvýšenými oprávněními. Službu Azure Monitor byste měli nakonfigurovat tak, aby vyvolala problém na GitHubu, aby vývojáři tyto změny odsouhlasili. Pokud je to ale možné, měli byste se vyhnout 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 nástroje pro ochranu před hrozbami a informace o zabezpečení a správu událostí (SIEM). Tyto nástroje automaticky upozorňují na správce zabezpečení a vyvolají problém v GitHubu, aby vás upozornily.

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é

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autoři:

Další kroky