DevSecOps ve službě Azure Kubernetes Service (AKS)

DevSecOps, označovaný také jako Secure DevOps, je postup integrace zabezpečení v každé fázi životního cyklu vývoje softwaru (SDLC) v rámci pracovního postupu DevOps. DevSecOps v AKS používá tento přístup ke kontejnerizovaným aplikacím běžícím na Azure Kubernetes Service a vkládání automatizovaných ovládacích prvků zabezpečení přímo do kanálů CI/CD a operací clusteru. Zabudujte zabezpečení do postupů DevOps pro:

  • Zabezpečte aplikace a systémy, zajistěte přehled o bezpečnostních hrozbách a zamezili ohrožením zabezpečení v nasazených prostředích.
  • Zvyšte povědomí o zabezpečení mezi vývojovými a provozními týmy.
  • Začlenit automatizované procesy zabezpečení do životního cyklu vývoje softwaru (SDLC).
  • Snižte náklady na nápravu vyhledáním problémů se zabezpečením v rané fázi vývoje a návrhu.

Klíčové poznatky

  • Shift-left security: Integrujte bezpečnostní kontroly již v raných fázích vývoje pomocí pluginů IDE, pre-commit hooků a standardů bezpečného kódování, aby bylo možné odhalit zranitelnosti dříve, než se kód dostane do produkce.
  • Automatizovaná kontrola: Pomocí testování zabezpečení statických aplikací (SAST), analýzy složení softwaru (SCA) a kontroly tajných kódů v kanálech CI můžete zjišťovat ohrožení zabezpečení kódu, nezabezpečené závislosti a automaticky vystavené přihlašovací údaje.
  • Vynucování zásad: K auditování konfigurací Azure Container Registry použijte Azure Policy. Pro vynucování zásad přijímání v AKS použijte doplněk Azure Policy pro AKS, který rozšiřuje Gatekeeper.
  • Průběžné monitorování: Implementujte ochranu před internetovými útoky za běhu pomocí Microsoft Defender pro kontejnery, centralizované protokolování s Azure Monitor a integraci SIEM s Microsoft Sentinel.
  • Zabezpečení dodavatelského řetězce: Generování SBOM, podepisování imagí kontejnerů a nasazování pouze z důvěryhodných registrů za účelem zachování integrity artefaktů.

Když použijete DevSecOps na službu Azure Kubernetes Service (AKS), každá role organizace má specifické aspekty zabezpečení:

  • Vývojáři vytvářejí zabezpečené aplikace, které běží v AKS.
  • Cloudoví inženýři vytvářejí zabezpečenou infrastrukturu AKS.
  • Provozní týmy můžou řídit clustery nebo monitorovat problémy se zabezpečením.

Tento článek organizuje pokyny podle fáze životního cyklu DevOps a poskytuje doporučení pro kontrolní mechanismy zabezpečení a osvědčené postupy. Zabývá se běžnými procesy a nástroji pro kanály kontinuální integrace a průběžného doručování (CI/CD) se zaměřením na integrované nástroje.

Tok procesu

Diagram architektury, který ukazuje, jak implementovat postupy DevSecOps v prostředí AKS

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

Note

Tento článek odkazuje na AKS a GitHub, ale tato doporučení můžete použít pro jakoukoli platformu orchestrace kontejnerů nebo CI/CD. Podrobnosti implementace se mohou lišit, ale většina konceptů a postupů pro každou fázi stále platí.

  1. Microsoft Entra ID je nakonfigurovaný jako zprostředkovatel identity pro GitHub. Konfigurace vícefaktorového ověřování (MFA) pro zajištění dodatečného zabezpečení ověřování

  2. Vývojáři používají Visual Studio Code nebo Visual Studio s povolenými rozšířeními zabezpečení k proaktivní analýze kódu z hlediska ohrožení zabezpečení.

  3. Vývojáři potvrdí kód aplikace do firemního vlastněného a řízeného úložiště GitHub Enterprise.

  4. GitHub Enterprise integruje automatickou kontrolu zabezpečení a závislostí prostřednictvím GitHub Advanced Security.

  5. Žádosti o přijetí změn aktivují sestavení kontinuální integrace (CI) a automatizované testování prostřednictvím GitHub Actions.

  6. Pracovní postup sestavení CI prostřednictvím GitHub Actions vygeneruje image kontejneru Dockeru a uloží ji ve službě Azure Container Registry.

  7. Jako součást pracovního postupu průběžného doručování (CD) v GitHub Actions můžete přidat ruční schválení pro nasazení do konkrétních prostředí, jako je produkční prostředí.

  8. GitHub Actions umožňují CD do AKS. Pomocí GitHub Advanced Security můžete zjišťovat tajné kódy, přihlašovací údaje a další citlivé informace ve zdroji a konfiguračních souborech vaší aplikace.

  9. Microsoft Defender skenuje zranitelnosti zabezpečení v registru kontejnerů, clusteru AKS a Azure Key Vaultu.

    1. Microsoft Defender for Containers kontroluje image kontejneru kvůli známým ohrožením zabezpečení, když je GitHub Actions nahraje do služby Container Registry.

    2. Defender for Containers může také kontrolovat prostředí AKS a poskytovat ochranu před hrozbami za běhu pro clustery AKS.

    3. Microsoft Defender for Key Vault detekuje neobvyklé a podezřelé pokusy o přístup k účtům trezoru klíčů.

  10. Azure Policy můžete použít pro Container Registry a AKS a vynutit dodržování zásad. Azure Policy zahrnuje integrované zásady zabezpečení pro Container Registry i AKS.

  11. Key Vault bezpečně vloží tajné kódy a přihlašovací údaje do aplikace za běhu, aniž by je zpřístupňuje vývojářům.

  12. Modul zásad sítě AKS je nakonfigurovaný tak, aby pomohl zabezpečit provoz mezi pody aplikací pomocí zásad sítě Kubernetes. Jako modul zásad sítě doporučujeme Azure CNI Powered by Cilium . Poskytuje rozšířené vynucování založené na protokolu eBPF (Berkeley Packet Filter), zásady vrstvy 7 a plně kvalifikované filtrování názvu domény (FQDN).

  13. Průběžné monitorování clusteru AKS můžete nastavit pomocí služby Azure Monitor ke shromažďování metrik Prometheus, protokolů kontejnerů a událostí Kubernetes. Pro vizualizaci a Log Analytics pro upozorňování na základě dotazů použijte řídicí panely Grafana spravované v Azure.

    1. Azure Monitor shromažďuje metriky výkonu prostřednictvím Managed Prometheus a protokoly aplikací a clusterů prostřednictvím shromažďování protokolů kontejnerů.

    2. Pracovní prostor služby Log Analytics ukládá diagnostické protokoly a protokoly aplikací pro spouštění dotazů na protokoly.

  14. Použijte Microsoft Sentinel jako centralizovanou správu informací o zabezpečení a správě událostí (SIEM) ke korelaci telemetrie AKS se signály z programu Microsoft Defender for Cloud, Microsoft Entra ID a síťových prostředků. Microsoft Sentinel poskytuje detekci, vyšetřování a automatizovanou reakci na bezpečnostní incidenty v celém prostředí AKS.

  15. Opensourcové nástroje, jako je Zed Attack Proxy (ZAP), můžou provádět penetrační testování webových aplikací a služeb.

  16. Defender for DevOps, služba dostupná v Defenderu for Cloud, umožňuje týmům zabezpečení DevOps spravovat zabezpečení DevOps napříč vícepipeline prostředími, včetně GitHubu a Azure DevOps.

Přehled a zodpovědnosti členů týmu

Zvažte správu složitosti DevSecOps v nasazeních řešení založených na Kubernetes tím, že rozdělíte zodpovědnosti mezi týmy. Tato část popisuje role a zodpovědnosti vývojářů, operátory aplikací, jako jsou technici spolehlivosti lokality, operátoři clusteru a týmy zabezpečení.

Developers

Vývojáři napíšou kód aplikace a potvrdí ho do určeného úložiště. Vytvoří a spustí skripty pro automatizované testování, aby zajistil, že jejich kód funguje podle očekávání a integruje se se zbytkem aplikace. Vývojáři také definují a skriptují vytváření image kontejnerů jako součást automatizačního kanálu.

Operátory aplikací (technici pro spolehlivost lokality)

Vytváření aplikací pomocí kontejnerů a Kubernetes může zjednodušit vývoj, nasazení a škálovatelnost aplikací. Tyto přístupy k vývoji ale také vytvářejí stále více distribuovaná prostředí, která komplikují správu.

Inženýři pro spolehlivost webů vytvářejí řešení, která automatizují, jak týmy dohlížejí na velké softwarové systémy. Slouží jako most mezi týmy pro vývoj a operátory clusteru. Pomáhají vytvářet a monitorovat cíle na úrovni služeb (SLO) a rozpočty chyb. Technici pro spolehlivost webu také pomáhají spravovat nasazení aplikací a psát soubory manifestu Kubernetes (YAML).

Operátory clusteru

Operátoři clusteru konfigurují a spravují infrastrukturu clusteru. Často používají osvědčené postupy a architektury infrastruktury jako kód (IaC), jako je GitOps , ke zřizování a údržbě clusterů. K monitorování celkového stavu clusteru používají monitorovací nástroje, jako je spravovaná služba Azure Monitoru pro Prometheus a Azure Managed Grafana. Zodpovídají za opravy, upgrady clusteru, oprávnění a řízení přístupu na základě role (RBAC) v clusteru. V týmech DevSecOps spolupracují operátoři clusteru s bezpečnostními týmy, aby vytvořili standardy zabezpečení a zajistili, že clustery splňují tyto požadavky.

Bezpečnostní tým

Bezpečnostní tým vyvíjí a vynucuje standardy zabezpečení. Některé týmy můžou vytvářet a vybírat definice Azure Policy, které vynucujete napříč předplatnými a skupinami prostředků obsahujícími clustery. Bezpečnostní týmy monitorují problémy se zabezpečením a pracují s ostatními týmy na stanovení priorit zabezpečení v průběhu procesu DevSecOps.

Fáze životního cyklu DevSecOps

Každá fáze SDLC implementuje kontrolní mechanismy zabezpečení. Tyto kontrolní mechanismy zabezpečení jsou centrální pro postupy DevSecOps a posunu doleva.

Diagram znázorňující nepřetržitý životní cyklus DevOps, který integruje zabezpečení ve všech fázích

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

Fáze plánování

Fáze plánu má obvykle nejmenší objem automatizace, ale má důležité bezpečnostní důsledky, které ovlivňují pozdější fáze životního cyklu DevOps. Tato fáze zahrnuje spolupráci mezi bezpečnostními, vývojovými a provozními týmy. Pokud chcete zajistit, abyste v této fázi zohledňovali nebo zmírňovali požadavky na zabezpečení a problémy se zabezpečením, zahrňte do této fáze zainteresované strany v oblasti zabezpečení.

Osvědčený postup: Návrh zabezpečené aplikační platformy

Pokud chcete vytvořit zabezpečenou úlohu hostované službou AKS, musíte do systému začlenit zabezpečení v každé vrstvě počínaje samotnou platformou. Platforma může zahrnovat komponenty interní pro cluster, jako jsou agenti zabezpečení modulu runtime a agenti zásad a komponenty externí pro AKS, jako jsou síťové brány firewall a registry kontejnerů.

Osvědčený postup: Sestavení modelování hrozeb do procesu

Modelování hrozeb je obvykle ruční aktivita, která zahrnuje bezpečnostní a vývojové týmy. Před vývojem kódu nebo provedením změn můžete v systému modelovat a najít hrozby, které řeší ohrožení zabezpečení. Týmy provádějí modelování hrozeb v reakci na významné změny softwaru, změny architektury řešení nebo incidenty zabezpečení.

Doporučujeme model hrozeb STRIDE. Tato metodologie začíná diagramem toku dat a kategorizuje hrozby pomocí metody STRIDE mnemonic: Falšování identity, Manipulace, Repudiation, Info Disclosure, Denial of Service a Zvýšení oprávnění. Týmy tyto kategorie používají k identifikaci, zmírnění a ověřování rizik. Nástroj pro modelování pomáhá notovat a vizualizovat systémové komponenty, toky dat a hranice zabezpečení.

Vytváření modelování hrozeb do SDLC zvyšuje režii na procesy a vyžaduje údržbu aktualizovaných modelů hrozeb. Řeší ale zabezpečení v rané fázi vývoje, což snižuje náklady na řešení zjištěných problémů později.

Osvědčený postup: Použití architektury Azure Well-Architected

  • Použijte osvědčené postupy zabezpečení , které poskytují pokyny pro správu identit, zabezpečení aplikací, ochranu infrastruktury, zabezpečení dat a DevOps, protože se vztahují na prostředí nativní pro cloud.

  • Využijte osvědčené postupy efektivity provozu , které se týkají DevSecOps a monitorování produkčních prostředí.

Fáze vývoje

Posun doleva je klíčovou sadou myšlení DevSecOps. Tento proces začíná před tím, než commitnete kód do úložiště a nasadíte jej prostřednictvím pipeline. Pokud chcete řešit problémy se zabezpečením dříve v životním cyklu vývoje, využijte osvědčené postupy zabezpečeného kódování a použijte nástroje a moduly plug-in integrovaného vývojového prostředí (IDE) pro analýzu kódu během vývojové fáze.

Osvědčený postup: Vynucení standardů zabezpečeného kódování

  • Použijte zavedené osvědčené postupy a kontrolní seznamy pro bezpečné kódování, které vám pomůžou chránit kód před běžnými ohroženími zabezpečení, jako je injektáž a nezabezpečený návrh. Základ OWASP (Open Worldwide Application Security Project) publikuje standardní doporučení zabezpečeného kódování, která byste měli přijmout při psaní kódu. Tyto pokyny jsou zvlášť důležité při vývoji veřejných webových aplikací nebo služeb.

  • Projděte si postupy zabezpečeného kódování pro konkrétní moduly runtime programovacího jazyka, jako je Java a .NET.

  • Vynucujte standardy protokolování, abyste ochránili citlivé informace před únikem do aplikačních protokolů. Nejoblíbenější rozhraní protokolování, jako jsou Apache Log4j a Apache log4net, poskytují filtry a moduly plug-in pro maskování citlivých informací, jako jsou čísla účtů nebo osobní údaje.

Osvědčený postup: Použití nástrojů IDE a modulů plug-in k automatizaci kontrol zabezpečení

Nejoblíbenější integrované vývojové prostředí (IDE), jako jsou Visual Studio, VS Code, IntelliJ IDEA a Eclipse, podporují rozšíření, která můžete použít k získání okamžité zpětné vazby a doporučení pro potenciální problémy se zabezpečením, které při psaní kódu aplikace představíte.

  • SonarQube pro integrované vývojové prostředí je modul plug-in IDE pro nejoblíbenější jazyky a vývojová prostředí. SonarQube pro integrované vývojové prostředí poskytuje zpětnou vazbu a automaticky kontroluje kód běžných chyb programování a potenciálních problémů se zabezpečením.

  • Další bezplatné a komerční pluginy se zaměřují na položky specifické pro zabezpečení, jako je OWASP top 10 běžných zranitelností. Modul plug-in Snyk také zkontroluje zdroj vaší aplikace a externí závislosti a upozorní vás, pokud najde ohrožení zabezpečení.

  • Modul plug-in Static Analysis Results Interchange Format (SARIF) pro Visual Studio a VS Code umožňuje snadno zobrazit ohrožení zabezpečení z oblíbených nástrojů SAST (Static Application Security Testing) a interpretovat výsledky nezpracovaných výstupních souborů JSON.

Osvědčený postup: Vytvoření ovládacích prvků v úložištích zdrojového kódu

  • Vytvořte metodologii větvení pro konzistenci v rámci vašeho podniku. Metodologie, jako je tok vydaných verzí a tok GitHubu , mají strukturované pokyny, jak používat větve pro podporu týmu a paralelního vývoje. Tyto metodologie můžou týmům pomoct vytvořit standardy a kontroly pro potvrzení kódu a sloučit je do pracovního postupu CI/CD.

    Některé větve, například hlavní, jsou dlouhotrvající větve, které zachovávají integritu zdrojového kódu vaší aplikace. Před potvrzením nebo sloučením změn stanovte zásady sloučení pro tyto větve. Například můžete:

    • Zabraňte ostatním vývojářům commitovat kód přímo do hlavní větve.

    • Vytvořte proces kolegiální kontroly a vyžadovat minimální počet schválení před sloučením změn do hlavní větve. Nakonfigurujte a vynucujte tyto ovládací prvky pomocí GitHubu. V případě bezpečně uzavřených prostředí použijte GitHub k určení skupin autorizovaných schvalovatelů, pokud je to nutné.

  • Pomocí háků precommit můžete zkontrolovat citlivé informace ve zdrojovém kódu aplikace a blokovat potvrzení při zjišťování problémů se zabezpečením.

    • Použijte vestavěné předcommit háky GitHubu. Snadno je nakonfigurujte pro konkrétní projekty. Například některé předem připravené háky vyhledávají tajné kódy, privátní klíče a přihlašovací údaje a blokují potvrzení, pokud tyto problémy najdou.
  • Vytvořte ŘPZR (Řízení přístupu založené na rolích) v systému správy verzí.

    • Vytvořte dobře definované role pomocí principu nejnižšího oprávnění. Potrubí CI/CD funguje jako váš dodavatelský řetězec pro produkční nasazení.

    • Použijte zavedené role uživatelů nebo skupin v rámci vaší organizace. Pokud chcete seskupit jednotlivce podle jejich konkrétní role a funkce v pracovních postupech CI/CD, vytvořte role, jako jsou Správce, Vývojář, Správce zabezpečení a Operátor.

  • Povolte auditování vašich pracovních postupů a přidejte transparentnost a sledovatelnost konfigurace a dalších změn v kanálech CI/CD.

Osvědčený postup: Zabezpečení imagí kontejnerů

  • Používejte odlehčené image, které mají minimální nároky na operační systém, abyste snížili celkový prostor pro útoky. Zvažte minimální obrázky, jako jsou Alpine nebo distroless, které obsahují pouze vaši aplikaci a její běhové prostředí.

  • Při sestavování kontejnerů používejte pouze důvěryhodné základní image. Načtěte tyto základní image z privátního registru, ve kterém často hledáte zranitelnosti.

  • Pomocí vývojářských nástrojů můžete vyhodnotit ohrožení zabezpečení obrázků místně. Trivy je opensourcový nástroj, který analyzuje ohrožení zabezpečení v imagích kontejnerů.

  • Zabraňte přístupu uživatele root nebo změně kontextu pro obraz. Ve výchozím nastavení se kontejnery spouštějí jako root.

    Pro kontejnery, které potřebují lepší zabezpečení, zvažte použití profilu AppArmor nebo seccomp v rámci clusteru Kubernetes, abyste mohli dále vynutit zabezpečení pro spuštěné kontejnery.

Fáze sestavení

Během fáze sestavení pracují vývojáři se specialisty na spolehlivost webů a týmy zabezpečení a integrují automatizované kontroly zdroje aplikací v rámci kanálů sestavení CI. Týmy konfigurují kanály tak, aby umožňovaly postupy zabezpečení pomocí nástrojů a rozšíření platformy CI/CD. Mezi tyto postupy patří SAST, analýza složení softwaru (SCA) a prohledávání tajných kódů.

Osvědčený postup: Provedením SAST vyhledejte potenciální ohrožení zabezpečení ve zdrojovém kódu aplikace.

  • Použijte GitHub možnosti rozšířené kontroly zabezpečení pro kontrolu kódu a CodeQL.

    • Kontrola kódu je funkce, která analyzuje kód v úložišti GitHub a zjišťuje chyby zabezpečení a chyby kódování. Zobrazuje problémy v cloudu GitHub Enterprise.

    • Pokud kontrola kódu najde v kódu potenciální ohrožení zabezpečení nebo chybu, GitHub v úložišti zobrazí upozornění.

    • Pravidla větve můžete nakonfigurovat pro požadované kontroly stavu. Před sloučením nového kódu můžete například vyžadovat, aby větve funkcí byly aktuální se základní větví. Tento požadavek zajistí, že větev otestujete pomocí nejnovějšího kódu.

    • Povolte Copilot Autofix pro přijímání návrhů oprav generovaných umělou inteligencí pro výstrahy kontroly kódu. Copilot Autofix navrhuje nápravu přímo v žádostech o přijetí změn, což vývojářům pomáhá rychle vyřešit zjištění zabezpečení.

  • K analýze objektů nasazení Kubernetes použijte nástroje, jako je kube-score . Tento nástroj provede statickou analýzu kódu definic objektů Kubernetes. Vypíše seznam doporučení, která zajistí větší zabezpečení a odolnost vaší aplikace.

Osvědčený postup: Použijte detekci tajemství k odhalení omylem potvrzených tajemství.

  • Když povolíte kontrolu tajných kódů pro úložiště, GitHub prohledá kód vzorů, které odpovídají tajným kódům, které používá mnoho poskytovatelů služeb.

  • GitHub pravidelně spouští úplnou kontrolu historie gitu stávajícího obsahu v úložištích a odesílá oznámení o upozorněních.

    • V případě Azure DevOps používá Defender pro Cloud kontrolu tajných kódů k detekci přihlašovacích údajů, tajných kódů, certifikátů a dalšího citlivého obsahu ve zdrojovém kódu a výstupu sestavení.

    • Kontrolu tajných kódů můžete spustit jako součást rozšíření zabezpečení od Microsoftu DevOps pro Azure DevOps.

Osvědčený postup: Použití nástrojů SCA ke sledování opensourcových komponent v základu kódu a zjišťování ohrožení zabezpečení v závislostech

  • Kontrola závislostí vám umožní zachytit nezabezpečené závislosti, než je zavedete do svého prostředí. Poskytuje také informace o licenci, závislých a věku závislostí. Zobrazuje změny závislostí prostřednictvím bohatého rozdílu na kartě Soubory změněné v žádosti o přijetí změn.

  • Dependabot provede kontrolu, která detekuje nezabezpečené závislosti a odesílá upozornění Dependabota při přidání nového poradce do databáze poradce GitHubu nebo při změně grafu závislostí úložiště.

Osvědčený postup: Vygenerování SBOM pro image kontejneru

  • SBOM (Software Bill of Materials) poskytuje kompletní inventář komponent, knihoven a závislostí, které tvoří image kontejnerů. Pomocí nástrojů generování SBOM, jako je microsoft sbom-tool nebo Syft během sestavování CI k vytvoření manifestu SPDX nebo CykloneDX.

  • Připojte SBOM k imagím kontejnerů uloženým ve službě Container Registry , abyste umožnili kontrolu ohrožení zabezpečení a sledování dodržování předpisů licencí v rámci dodavatelského řetězce.

Osvědčený postup: Kontrola šablon IaC za účelem zjištění chybných konfigurací před nasazením

Osvědčený postup: Kontrola imagí úloh v registrech kontejnerů za účelem identifikace známých ohrožení zabezpečení

  • Defender for Containers prohledá kontejnery ve službě Container Registry a Amazon Elastic Container Registry (ECR) a upozorní vás na známá ohrožení zabezpečení ve vašich imagích.

  • Azure Policy můžete povolit pro posouzení zranitelnosti imagí uložených v Container Registry a poskytnout podrobné informace o každém zjištění.

Osvědčený postup: Automatizované vytváření nových obrazů při aktualizacích základních obrazů.

  • Úlohy Container Registry dynamicky zjišťují základní závislosti image při sestavování image kontejneru. Když zjistí aktualizaci základní image aplikace, můžete nakonfigurovat úlohu sestavení pro automatické opětovné sestavení imagí aplikace, které odkazují na tuto základní image.

Osvědčený postup: Použijte Container Registry, Key Vault a notaci k digitálnímu podepisování obrazů kontejnerů a nakonfigurujte cluster AKS tak, aby povoloval pouze ověřené obrazy.

  • Key Vault ukládá podpisové klíče, které používá nástroj pro zápis . Modul plug-in služby Key Vault (azure-kv) přistupuje k těmto klíčům za účelem podepisování a ověřování imagí kontejnerů a dalších artefaktů. Tyto podpisy můžete připojit k imagím služby Container Registry pomocí příkazů Azure CLI.

  • Podepsané kontejnery zajišťují, že nasazení pocházejí z důvěryhodného zdroje a že artefakty po vytvoření nejsou manipulovány. Podepsaný artefakt zajišťuje integritu a pravost předtím, než uživatel přetáhne artefakt do libovolného prostředí, což pomáhá vyhnout se útokům.

    • Ratify ověřuje metadata zabezpečení artefaktů a vynucuje zásady přijetí před nasazením do clusterů Kubernetes. AKS Image Integrity používá Ratify jako vestavěný ověřovač k ověření podpisů image a attestací SBOM před vstupem podů do clustru.

Fáze nasazení

Během fáze nasazení spolupracují vývojáři, operátoři aplikací a týmy operátorů clusteru, aby vytvořili správné bezpečnostní mechanismy pro kanály CD. Tyto ovládací prvky pomáhají nasadit kód do produkčního prostředí zabezpečeným a automatizovaným způsobem.

Osvědčený postup: Řízení přístupu a pracovního postupu procesu nasazení

  • Důležité větve můžete chránit nastavením pravidel ochrany větví. Tato pravidla definují, jestli mohou spolupracovníci odstranit nebo vynutit přepis do větve. Také nastavují požadavky pro poslání do větve, například splnění kontrol stavu nebo lineární historii potvrzení.

  • K nasazení použijte prostředí k nastavení pravidel ochrany a tajemství.

  • Pomocí funkce schválení a bran můžete řídit tok práce nasazovacího kanálu. Před nasazením do produkčního prostředí můžete například vyžadovat ruční schválení od bezpečnostního nebo provozního týmu.

Osvědčený postup: Zabezpečené přihlašovací údaje pro nasazení

  • OpenID Connect (OIDC) umožňuje pracovním postupům GitHub Action přistupovat k prostředkům v Azure bez nutnosti ukládat přihlašovací údaje Azure jako dlouhodobé tajné kódy GitHubu.

  • Pomocí přístupu založeného na pull modelu pro CI/CD s GitOps můžete přenést bezpečnostní přihlašovací údaje do clusteru Kubernetes. Tento přístup snižuje úroveň zabezpečení a rizika odebráním přihlašovacích údajů z externích nástrojů CI. Můžete také omezit povolená příchozí připojení a omezit přístup na úrovni správce ke clusterům Kubernetes.

Osvědčený postup: Spuštěním DAST vyhledejte ohrožení zabezpečení ve spuštěné aplikaci.

  • Pomocí GitHub Actions v pracovních postupech nasazení můžete spouštět dynamické testy testování zabezpečení aplikací (DAST).

  • Pomocí nástrojů s otevřeným zdrojovým kódem, jako je ZAP, můžete provádět penetrační testování pro běžné zranitelnosti webových aplikací.

Osvědčený postup: Nasazení imagí kontejnerů pouze z důvěryhodných registrů

  • Pomocí defenderu pro kontejnery povolte doplněk Azure Policy pro Kubernetes.

  • Nakonfigurujte Azure Policy pro Kubernetes tak, aby omezovala nasazení imagí kontejneru na důvěryhodné registry.

Fáze provozu

Během této fáze proveďte úlohy monitorování operací a monitorování zabezpečení, které proaktivně monitorují, analyzují a upozorňují na potenciální incidenty zabezpečení. Pomocí produkčních pozorovatelných nástrojů, jako je Azure Monitor a Microsoft Sentinel, můžete monitorovat a zajistit dodržování podnikových standardů zabezpečení.

Osvědčený postup: Použití defenderu for Cloud k automatické kontrole a monitorování produkčních konfigurací

  • Spusťte průběžné prohledávání, abyste zjistili posun ve stavu ohrožení zabezpečení vaší aplikace a implementovali proces opravy a nahrazení ohrožených imagí.

  • Implementujte automatizované monitorování konfigurace pro operační systémy.

    • Pomocí doporučení kontejnerů v Defenderu pro cloud (v části Výpočty a aplikace) můžete provádět základní kontroly clusterů AKS. Defender for Cloud zobrazuje všechny problémy s konfigurací nebo ohrožení zabezpečení na řídicím panelu.

    • Použijte Defender for Cloud a postupujte podle doporučení k ochraně sítě, abyste zajistili síťové prostředky clusteru AKS.

  • Proveďte posouzení ohrožení zabezpečení pro image uložené ve službě Container Registry.

    • Implementujte nepřetržité skenování běžících image ve službě Container Registry povolením Defender for Containers.

Osvědčený postup: Udržování clusterů Kubernetes v aktualizovaném stavu

  • Kubernetes často vydává nové verze. Udržujte strategii správy životního cyklu, která zajistí, že vaše clustery budou podporované a aktuální. AKS poskytuje nástroje pro správu upgradů clusteru. Pomocí funkcí plánované údržby AKS můžete řídit, kdy dojde k údržbovým oknům a upgradům.

  • Provádějte upgrade pracovních uzlů AKS často. Azure vydává týdenní aktualizace operačního systému a modulu runtime. Tyto aktualizace můžete použít automaticky prostřednictvím bezobslužného režimu nebo ručně prostřednictvím Azure CLI pro větší kontrolu.

Osvědčený postup: Zabezpečení a řízení clusterů AKS pomocí služby Azure Policy

  • Po instalaci doplňku Azure Policy pro AKS můžete u clusteru použít jednotlivé definice zásad nebo skupiny definic zásad, označované jako iniciativy nebo sady zásad.

  • Použijte předdefinované zásady Azure pro běžné scénáře, jako je zabránění spuštění privilegovaných kontejnerů nebo omezení externích IP adres na seznam povolených adres. Můžete také vytvořit vlastní zásady pro konkrétní případy použití.

  • Použijte definice zásad pro váš cluster a ověřte, že Azure Policy tato přiřazení vynucuje.

  • Pomocí Gatekeeperu nakonfigurujte kontroler přístupu, který umožňuje nebo zakazuje nasazení na základě zadaných pravidel. Azure Policy rozšiřuje Gatekeeper.

  • Zabezpečte provoz mezi pody úloh pomocí zásad sítě v AKS.

    • Jako modul zásad sítě používejte Azure CNI Powered by Cilium . Cilium používá datovou rovinu založenou na eBPF a podporuje Kubernetes-native zásady, zásady vrstvy 7 a filtrování FQDN.

Osvědčený postup: Použití služby Azure Monitor pro průběžné monitorování a upozorňování

  • Pomocí služby Azure Monitor můžete shromažďovat protokoly a metriky z AKS. Shromážděte metriky Prometheus prostřednictvím spravované služby Azure Monitor pro Prometheus, dotazujte protokoly kontejnerů a platforem v Log Analytics a vizualizujte stav clusteru prostřednictvím řídicích panelů Azure Managed Grafana.

    • Azure Monitor rozšiřuje průběžné monitorování na nasazovací kanály. Pomocí dat monitorování můžete schvalovat nebo vracet zpět vydané verze. Azure Monitor také zpracovává protokoly zabezpečení a výstrahy o podezřelé aktivitě.

    • Připojte instance AKS ke službě Azure Monitor a nakonfigurujte nastavení diagnostiky pro váš cluster.

      Další informace najdete v tématu Standardní hodnoty zabezpečení Azure pro AKS.

Osvědčený postup: Použití defenderu pro cloud pro aktivní monitorování hrozeb

  • Defender for Cloud poskytuje aktivní monitorování hrozeb pro AKS na úrovni uzlu (hrozby virtuálních počítačů) a úloh clusteru.

  • Pomocí Defenderu pro DevOps můžete získat komplexní přehled o všech kanálech CI/CD. Poskytuje týmu zabezpečení a operátorům centralizovaný řídicí panel. Výhodou je zejména tato centralizovaná viditelnost, když používáte platformy s několika kanály, jako jsou Azure DevOps a GitHub nebo spouštění kanálů napříč veřejnými cloudy.

  • Defender for Key Vault detekuje neobvyklé a podezřelé pokusy o přístup k účtům trezoru klíčů a může odesílat výstrahy správcům na základě konfigurace.

  • Defender for Containers může upozorňovat na ohrožení zabezpečení nalezená v imagích kontejnerů uložených ve službě Container Registry.

Osvědčený postup: Povolení centralizovaného monitorování protokolů a použití produktů SIEM k monitorování bezpečnostních hrozeb v reálném čase

  • Připojte diagnostické protokoly AKS ke službě Microsoft Sentinel pro centralizované monitorování zabezpečení na základě vzorů a pravidel. Microsoft Sentinel umožňuje tento přístup prostřednictvím datových konektorů.

Osvědčený postup: Povolení protokolování auditu pro monitorování aktivit v produkčních clusterech

  • Protokoly aktivit slouží k monitorování akcí u prostředků AKS k zobrazení všech aktivit a jejich stavu. Určete, kdo provedl jaké operace s prostředky.

  • Povolte protokolování dotazů DNS (Domain Name System) použitím zdokumentované konfigurace ve vlastní konfigurační mapě CoreDNS.

  • Monitoruje pokusy o přístup k deaktivovaným přihlašovacím údajům.

    Integrace ověřování uživatelů pro AKS s Microsoft Entra ID Vytvořte nastavení diagnostiky pro Microsoft Entra ID a odešlete protokoly auditu a přihlašování do pracovního prostoru služby Log Analytics. V pracovním prostoru služby Log Analytics nakonfigurujte výstrahy pro události zabezpečení, jako jsou pokusy o přihlášení z deaktivovaných účtů.

Osvědčený postup: Povolení diagnostiky prostředků Azure

  • Povolte diagnostiku Azure pro všechny prostředky vaší pracovní zátěže, abyste měli přístup k protokolům platformy poskytujícím podrobné diagnostické a auditní informace. Tyto protokoly můžete ingestovat do Log Analytics nebo řešení SIEM, jako je Microsoft Sentinel pro monitorování zabezpečení a upozorňování.

Přispěvatelé

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

Hlavní autor:

Další přispěvatelé:

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

Další kroky