Upravit

Sdílet prostřednictvím


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

Azure Boards
Azure DevOps
Azure Monitor
Azure Pipelines
Azure Policy

DevSecOps, označovaný také jako Secure DevOps, vychází z praxe DevOps začleněním zabezpečení v různých fázích tradičního životního cyklu DevOps. Mezi výhody vytváření zabezpečení v postupech DevOps patří:

  • Zajištění lepšího zabezpečení vašich aplikací a systémů díky zajištění přehledu o bezpečnostních hrozbách a zabránění ohrožení zabezpečení v nasazeních prostředí
  • Zvýšení povědomí o zabezpečení s vývojovými a provozními týmy
  • Začlenění automatizovaných procesů zabezpečení do životního cyklu vývoje softwaru
  • Snížení nákladů na nápravu vyhledáním problémů se zabezpečením v rané fázi vývoje a návrhu

Při použití DevSecOps pro Službu Azure Kubernetes Service (AKS) můžou mít různé organizační role různé aspekty implementace zabezpečení. Mezi příklady těchto různých rolí organizace patří:

  • Vývojáři vytvářející zabezpečené aplikace spuštěné v AKS
  • Cloudoví inženýři vytvářejí zabezpečenou infrastrukturu AKS
  • Různé provozní týmy, které můžou řídit clustery nebo monitorovat problémy se zabezpečením

Tento článek je rozdělený do různých fází životního cyklu DevOps s důležitými informacemi a doporučeními pro vkládání kontrolních mechanismů zabezpečení a osvědčených postupů zabezpečení. Tato příručka obsahuje běžné procesy a nástroje pro začlenění do kanálů kontinuální integrace a průběžného doručování (CI/CD), které umožňují snadno použitelné integrované nástroje, pokud jsou k dispozici.

Jako předpoklad tohoto článku doporučujeme zkontrolovat sestavení a nasazení aplikací v AKS pomocí DevOps a GitOps.

Tok procesu

Diagram architektury znázorňuje tok od vývojáře k koncovému uživateli a kde je možné používat DevSecOps v AKS.

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

Poznámka:

Tento článek odkazuje na AKS a GitHub, ale tato doporučení platí pro všechny platformy orchestrace kontejnerů nebo CI/CD. I když se podrobnosti implementace mohou lišit, většina konceptů a postupů uvedených v jednotlivých fázích je stále relevantní a použitelná.

  1. ID Microsoft Entra je nakonfigurované jako zprostředkovatele identity pro GitHub. Nakonfigurujte vícefaktorové ověřování (MFA), abyste zajistili dodatečné 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 služby 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, která je uložená 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 zavést ruční schvalování pro nasazení do konkrétních prostředí, jako je produkční prostředí.
  8. GitHub Actions umožňuje 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 slouží ke kontrole ohrožení zabezpečení ve službě Azure Container Registry, clusteru AKS a azure Key Vaultu.
    1. Microsoft Defender for Containers prohledá image kontejneru kvůli známým ohrožením zabezpečení při nahrání do služby Container Registry.
    2. Můžete také použít Defender for Containers k provádění kontrol prostředí AKS a poskytuje ochranu před hrozbami za běhu pro clustery AKS.
    3. Microsoft Defender for Key Vault detekuje škodlivé a neobvyklé podezřelé pokusy o přístup k účtům trezoru klíčů.
  10. Azure Policy se dá použít u služby Container Registry a Azure Kubernetes Service (AKS) pro dodržování zásad a vynucování. Běžné zásady zabezpečení pro Container Registry a AKS jsou integrované pro rychlé povolení.
  11. Azure Key Vault slouží k bezpečnému vkládání tajných kódů a přihlašovacích údajů do aplikace za běhu a oddělení citlivých informací od vývojářů.
  12. Modul zásad sítě AKS je nakonfigurovaný tak, aby pomohl zabezpečit provoz mezi pody aplikací pomocí zásad sítě Kubernetes.
  13. Průběžné monitorování clusteru AKS je možné nastavit pomocí azure Monitoru a přehledů kontejnerů k ingestování metrik výkonu a analýze protokolů aplikací a zabezpečení.
    1. Container Insights načítají metriky výkonu a protokoly aplikací a clusterů.
    2. Diagnostické protokoly a protokoly aplikací se natahují do pracovního prostoru služby Azure Log Analytics za účelem spouštění dotazů na protokoly.
  14. Microsoft Sentinel, což je řešení pro správu událostí a informací o zabezpečení (SIEM), je možné použít k ingestování a další analýze protokolů clusteru AKS pro všechny bezpečnostní hrozby na základě definovaných vzorů a pravidel.
  15. Opensourcové nástroje, jako je Zed Attack Proxy (ZAP), se dají použít k testování průniku webových aplikací a služeb.
  16. Defender for DevOps, služba dostupná v Defenderu pro cloud, umožňuje týmům zabezpečení spravovat zabezpečení DevOps napříč prostředími s více kanály, 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 jako oddělení obav. Který tým v podnikovém prostředí by se měl zabývat jednotlivými aspekty nasazení? Jaké nástroje a procesy by tým měl použít k dosažení nejlepších cílů? V této části si projdeme běžné role vývojářů, operátorů aplikací (techniků spolehlivosti webů), operátorů clusterů a týmů zabezpečení.

Vývojáři

Vývojáři zodpovídají za psaní kódu aplikace. Zodpovídá také za potvrzení kódu do určeného úložiště. Jednou z důležitých zodpovědností vývojářů je také vytváření a spouštění skriptů pro automatizované testování, které zajistí, že jejich kód funguje podle očekávání a bezproblémově se integruje se zbytkem aplikace. Také definují a skriptují sestavení imagí kontejnerů jako součást kanálu automatizace.

Operátory aplikací (technici pro spolehlivost lokality)

Vytváření aplikací v cloudu pomocí kontejnerů a Kubernetes může zjednodušit vývoj aplikací, nasazení a škálovatelnost. 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í pro automatizaci dohledu nad rozsáhlými softwarovými systémy. Slouží jako most mezi týmy operátorů vývoje a clusteru a pomáhají vytvářet a monitorovat cíle na úrovni služeb a rozpočty chyb. Tímto způsobem pomáhají spravovat nasazení aplikací a často zapisují soubory manifestu Kubernetes (YAML).

Operátory clusteru

Operátoři clusteru zodpovídají za konfiguraci a správu infrastruktury 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í různé monitorovací nástroje, jako je Azure Monitor Container Insights a Prometheus nebo Grafana. Zodpovídají za opravy, upgrady clusteru, oprávnění a řízení přístupu na základě role v clusteru. V týmech DevSecOps zajišťují, aby clustery splňovaly požadavky na zabezpečení týmu a aby tyto standardy vytvořily s týmem zabezpečení.

Bezpečnostní tým

Bezpečnostní tým zodpovídá za vývoj standardů zabezpečení a jejich vynucování. Některé týmy můžou být zodpovědné za vytvoření a výběr služby Azure Policy, která se vynucuje v předplatných a skupinách prostředků, ve kterém jsou clustery. Monitorují problémy se zabezpečením a společně s ostatními týmy zajišťují, aby zabezpečení bylo přeneseno do popředí každého kroku procesu DevSecOps.

Fáze životního cyklu DevSecOps

Kontrolní mechanismy zabezpečení se implementují v každé fázi životního cyklu vývoje softwaru (SDLC). Tato implementace je klíčovou součástí strategie DevSecOps a přístupu posunu doleva.

Diagram architektury znázorňuje tok od vývojáře k koncovému uživateli a kde je možné používat DevSecOps v AKS.

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é výrazně 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. Zahrnutí zúčastněných stran zabezpečení v této fázi návrhu a plánování zajišťuje, že požadavky na zabezpečení a problémy se zabezpečením se odpovídajícím způsobem zohledňují nebo zmírňují.

Osvědčený postup – Návrh bezpečnější aplikační platformy

Vytvoření bezpečnější platformy hostované v AKS je důležitým krokem, který pomáhá zajistit, aby se zabezpečení zabudovalo do systému v každé vrstvě, počínaje samotnou platformou. Platforma může zahrnovat komponenty interní pro cluster (například agenty zabezpečení modulu runtime a agenty zásad) a komponenty, které jsou externí pro AKS (například brány firewall sítě a registry kontejnerů). Další informace najdete v tématu Akcelerátor cílové zóny AKS, který zahrnuje důležité oblasti návrhu, jako je zabezpečení, identita a síťová topologie.

Osvědčený postup – Sestavení modelování hrozeb do vašeho procesu

  • Modelování hrozeb je obvykle ruční aktivita, která zahrnuje bezpečnostní a vývojové týmy. Používá se k modelování a hledání hrozeb v systému, aby bylo možné ohrožení zabezpečení řešit před jakýmkoli vývojem kódu nebo změnami systému. Modelování hrozeb může nastat v různých časech, které aktivují události, jako je významná změna softwaru, změna architektury řešení nebo incidenty zabezpečení.
  • Doporučujeme použít model hrozeb STRIDE. Tato metodologie začíná diagramem toku dat a využívá kategorie hrozeb STRIDE mnemonic (Spoofing, Manipering, Info Disclosure, Repudiation, Denial of Service a Elevation of Privilege) k tomu, aby týmy mohly identifikovat, zmírnit a ověřit rizika. Obsahuje také nástroj pro modelování, který popisuje a vizualizuje systémové komponenty, toky dat a hranice zabezpečení. Vytváření modelování hrozeb do procesů SDLC zavádí nové procesy a více práce na udržování aktualizovaných modelů hrozeb. Pomáhá ale zajistit, aby zabezpečení bylo v rané fázi, což pomáhá snížit potenciální náklady na řešení problémů se zabezpečením zjištěných v pozdějších fázích SDLC.

Osvědčený postup – Použití architektury Azure Well Architect (WAF)

  • Použijte osvědčené postupy z hlediska zabezpečení WAF, které poskytují pokyny pro správu identit, zabezpečení aplikací, ochranu infrastruktury, zabezpečení dat a DevOps, protože se vztahují na nativní cloudová prostředí.
  • Použijte provozní osvědčené postupy WAF, které platí pro DevSecOps a monitorování produkčních prostředí.

Fáze vývoje

Posun doleva je klíčovým tenantem myšlení DevSecOps. Tento proces začíná před tím, než se kód dokonce potvrdí do úložiště a nasadí se prostřednictvím kanálu. Přijetí osvědčených postupů zabezpečeného kódování a použití nástrojů IDE a modulů plug-in pro analýzu kódu během vývojové fáze může pomoct vyřešit problémy se zabezpečením dříve v životním cyklu vývoje, když se snadněji opraví.

Osvědčený postup – Vynucování zabezpečených standardů kódování

  • Pomocí zavedených osvědčených postupů pro kódování a kontrolních seznamů můžete 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 publikuje standardní standardní doporučení pro zabezpečené 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.
  • Kromě obecných osvědčenýchpostupůch
  • Můžete vynutit standardy protokolování, které chrání citlivé informace před únikem do aplikačních protokolů. Nejoblíbenější rozhraní protokolování, jako jsou log4j a 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, Visual Studio 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é jste mohli zavést při psaní kódu aplikace.

  • SonarLint je modul plug-in IDE dostupný pro nejoblíbenější jazyky a vývojová prostředí. SonarLint poskytuje cennou zpětnou vazbu a automaticky kontroluje kód za běžné chyby programování a potenciální problémy se zabezpečením.
  • Další bezplatné a komerční moduly plug-in se zaměřují na položky specifické pro zabezpečení, jako je OWASP top 10 běžných ohrožení zabezpečení. Modul plug-in Synk například také zkontroluje zdroj vaší aplikace a závislosti třetích stran a upozorní vás, pokud se najde nějaká ohrožení zabezpečení.
  • Modul plug-in Static Analysis Results Interchange Format (SARIF) pro Visual Studio a Visual Studio Code umožňuje snadno zobrazit ohrožení zabezpečení z oblíbených nástrojů SAST (Static Application Security Testing) intuitivním a snadno čitelným způsobem a interpretovat výsledky z 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í, aby bylo možné v rámci podniku konzistentně používat větvení. Metodologie, jako je tok vydaných verzí a tok GitHubu, mají strukturované pokyny k tomu, jak by se větve měly používat k podpoře 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. Tyto větve by měly mít vytvořené zásady sloučení před sloučením nebo potvrzením změn. Mezi osvědčené postupy patří:
    • Zabraňte ostatním vývojářům v potvrzení kódu přímo do hlavní větve.
    • Vytvořte proces kontroly partnerského vztahu a před sloučením změn do hlavní větve potřebujete minimální počet schválení. Tyto ovládací prvky můžete snadno nakonfigurovat a vynutit pomocí GitHubu. GitHub také umožňuje určit skupiny autorizovaných schvalovatelů v případě potřeby pro vrátná prostředí.
  • Pomocí háků před potvrzením můžete zkontrolovat citlivé informace ve zdrojovém kódu aplikace a zabránit tomu, aby se potvrzení stalo, pokud se najde problém se zabezpečením.
    • Použijte předdefinované háky před potvrzením GitHubu, které je možné snadno nakonfigurovat pro konkrétní projekt. Existují například předdefinované háky pro vyhledávání tajných kódů, privátních klíčů a přihlašovacích údajů a zabránění potvrzení, pokud se najde některý z těchto problémů.
  • Vytvořte řízení přístupu na základě role v rámci systému správy verzí.
    • Vytvořte dobře definované role pomocí principu nejnižších oprávnění. Kanál CI/CD je váš dodavatelský řetězec pro produkční nasazení.
    • Použijte zavedené role uživatelů nebo skupin v rámci vaší organizace. Role jako Správa, Vývojář, Správce zabezpečení a Operátor musí být vytvořeny pro seskupení jednotlivců na základě jejich konkrétní role a funkce týkající se pracovních postupů CI/CD.
  • Povolte auditování pracovních postupů, aby byla zajištěna transparentnost a sledovatelnost konfigurace a dalších změn v souvislosti s kanály CI/CD.

Osvědčený postup – zabezpečení imagí kontejnerů

  • Používejte odlehčené image s minimálním využitím operačního systému, abyste snížili celkový prostor pro útok na povrch. Zvažte minimální obrázky, jako jsou Alpine nebo dokonce bez distribuce obrázků, které obsahují jenom vaši aplikaci a přidružený modul runtime. Mariner, opensourcová distribuce Linuxu Od Microsoftu, je zjednodušená posílená distribuce navržená pro AKS k hostování kontejnerizovaných úloh.
  • Při sestavování kontejnerů používejte pouze důvěryhodné základní image. Tyto základní image by se měly načíst z privátního registru, který se často kontroluje z ohrožení zabezpečení.
  • Pomocí vývojářských nástrojů můžete vyhodnotit ohrožení zabezpečení obrázků místně.
    • Trivy je příkladem opensourcového nástroje, který můžete použít k analýze ohrožení zabezpečení v imagích kontejnerů.
  • Znemožnit přístup uživatele kořenového uživatele nebo kontext obrázku. Ve výchozím nastavení se kontejnery spouštějí jako kořen.
    • U kontejnerů, které potřebují lepší zabezpečení, zvažte použití profilu AppArmor v rámci clusteru Kubernetes, abyste mohli dále vynutit zabezpečení pro spuštěné kontejnery.

Fáze sestavení

Během fáze sestavování pracují vývojáři se specialisty na spolehlivost webu a týmy zabezpečení a integrují automatizované kontroly zdroje aplikací v rámci kanálů sestavení CI. Kanály jsou nakonfigurované tak, aby umožňovaly postupy zabezpečení, jako je SAST, SCA a kontrola tajných kódů pomocí nástrojů a rozšíření platformy CI/CD.

Osvědčený postup – Provedení analýzy statického kódu (SAST) za účelem zjištění potenciálních ohrožení zabezpečení ve zdrojovém kódu aplikace

  • Ke skenování kódu a codeQL použijte možnosti kontroly pokročilého zabezpečení GitHubu.
    • Kontrola kódu je funkce, kterou používáte k analýze kódu v úložišti GitHubu za účelem zjištění ohrožení zabezpečení a chyb kódování. Všechny problémy zjištěné analýzou se zobrazují v cloudu GitHub Enterprise.
    • Pokud kontrola kódu najde v kódu potenciální ohrožení zabezpečení nebo chybu, GitHub zobrazí v úložišti upozornění.
    • Můžete také nakonfigurovat pravidla větve pro požadované kontroly stavu, například pro vynucení, že větev funkce je aktuální se základní větví před sloučením nového kódu. Tento postup zajistí, že vaše větev bude vždy testována s nejnovějším kódem.
  • K analýze objektů nasazení Kubernetes použijte nástroje, jako je kube-score .
    • kube-score je nástroj, který provádí statickou analýzu kódu definic objektů Kubernetes.
    • Výstup je seznam doporučení, která můžete vylepšit, aby byla vaše aplikace bezpečnější a odolnější.

Osvědčený postup – Proveďte kontrolu tajných kódů, abyste zabránili podvodnému použití tajných kódů, které byly omylem potvrzeny do úložiště.

  • Pokud je pro úložiště povolená kontrola tajných kódů, GitHub prohledá kód vzorů, které odpovídají tajným kódům používaným mnoha poskytovateli služeb.
  • GitHub také 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ů je možné spustit jako součást rozšíření Microsoft Security DevOps pro Azure DevOps.

Osvědčený postup – Použití nástrojů pro analýzu složení softwaru (SCA) ke sledování opensourcových komponent v základu kódu a zjišťování všech ohrožení zabezpečení v závislostech

  • Kontrola závislostí umožňuje zachytit nezabezpečené závislosti, než je zavedete do svého prostředí, a poskytuje informace o licencích, závislých a věku závislostí. Poskytuje snadno pochopitelnou vizualizaci změn závislostí s bohatým rozdílem 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 – Povolení kontrol zabezpečení šablon infrastruktury jako kódu (IaC) za účelem minimalizace chybných konfigurací cloudu při dosažení produkčních prostředí

  • Proaktivně monitorujte konfigurace cloudových prostředků v průběhu životního cyklu vývoje.
  • Microsoft Defender for DevOps podporuje úložiště GitHub i Azure DevOps.

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 AWS Elastic Container Registry (ECR) a upozorní vás, jestli jsou ve vašich imagích známá ohrožení zabezpečení.
  • Azure Policy může povolit posouzení ohrožení zabezpečení u všech imagí uložených ve službě Container Registry a poskytnout podrobné informace o každém hledání.

Osvědčený postup – automatické sestavování nových imagí při aktualizaci základní image

  • Úlohy služby Azure Container Registry dynamicky zjišťuje závislosti základní image při sestavování image kontejneru. V důsledku toho může zjistit, kdy se základní image aplikace aktualizuje. Díky jedné předkonfigurované úloze sestavení můžou úlohy container Registry automaticky znovu sestavit každou image aplikace, která odkazuje na základní image.

Osvědčený postup – Použití služby Container Registry, Služby Azure Key Vault a zápisu k digitálnímu podepisování imagí kontejnerů a konfiguraci clusteru AKS tak, aby povoloval jenom ověřené image

  • Azure Key Vault ukládá podpisový klíč, který je možné použít zápisem s notačním modulem plug-in Key Vault (azure-kv) k podepisování a ověřování imagí kontejnerů a dalších artefaktů. Container Registry umožňuje připojit tyto podpisy pomocí příkazů Azure CLI.
  • Podepsané kontejnery umožňují uživatelům zajistit, aby nasazení byla sestavena z důvěryhodné entity, a ověřit, že od jejího vytvoření nedošlo k manipulaci s artefaktem. 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.
    • Kubernetes umožňuje clusterům Kubernetes před nasazením ověřit metadata zabezpečení artefaktů a povolit pro nasazení pouze ty, které splňují zásady přístupu, které vytvoříte.

Fáze nasazení

Během fáze nasazení spolupracují vývojáři, operátoři aplikací a týmy operátorů clusteru na vytvoření správných kontrolních mechanismů zabezpečení pro kanály průběžného nasazování (CD) a nasazují kód do produkčního prostředí bezpečnějším a automatizovaným způsobem.

Osvědčený postup – řízení přístupu a pracovního postupu kanálu nasazení

  • Důležité větve můžete chránit nastavením pravidel ochrany větví. Tato pravidla definují, jestli můžou spolupracovníci odstranit nebo vynutit vložení do větve. Také nastavují požadavky pro všechny nasdílení změn do větve, například předávání kontrol stavu nebo historii lineárního potvrzení.
  • Pomocí prostředí pro nasazení můžete nakonfigurovat prostředí s pravidly ochrany a tajnými kódy.
  • Pomocí funkce Schválení a Gates můžete řídit pracovní postup kanálu nasazení. 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 Připojení (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í prostředí pro nasazení můžete nakonfigurovat prostředí s pravidly ochrany a tajnými kódy.
    • Přístup založený na vyžádání obsahu k CI/CD pomocí GitOps umožňuje posunout přihlašovací údaje zabezpečení do clusteru Kubernetes, což snižuje úroveň zabezpečení a rizika odebráním přihlašovacích údajů z ukládání do 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í dynamických testů zabezpečení aplikací (DAST) za účelem zjištění 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í opensourcových nástrojů, jako je zap, můžete provádět penetrační testování běžných ohrožení zabezpečení 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.
  • Povolte Azure Policy, aby se image kontejnerů mohly nasazovat jenom z důvěryhodných registrů.

Fáze provozu

Během této fáze se úlohy monitorování operací a monitorování zabezpečení provádějí s cílem aktivně monitorovat, analyzovat a upozorňovat na potenciální incidenty zabezpečení. Produkční pozorovatelné nástroje, jako je Azure Monitor a Microsoft Sentinel, se používají k monitorování a zajištění dodržování podnikových standardů zabezpečení.

Osvědčený postup – Použití Microsoft Defenderu pro cloud k povolení automatizované kontroly a monitorování vašich 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í pro kontejnery v programu Microsoft Defender for Cloud (v části Výpočty a aplikace ) můžete provádět základní kontroly clusterů AKS. Když se najdou problémy s konfigurací nebo ohrožení zabezpečení, dostanete oznámení na řídicím panelu Microsoft Defenderu pro cloud.
    • Použijte Microsoft Defender pro cloud a postupujte podle doporučení k ochraně sítě, abyste mohli zabezpečit síťové prostředky používané clustery AKS.
  • Proveďte posouzení ohrožení zabezpečení pro image uložené ve službě Container Registry.
    • Implementujte průběžné prohledávání spuštěných imagí ve službě Container Registry povolením defenderu pro kontejnery.

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

  • Verze Kubernetes se vydávají často. Je důležité mít zavedenou strategii správy životního cyklu, abyste měli jistotu, že nepřepadáte a nebudete mít podporu. AKS je spravovaná nabídka, která poskytuje nástroje a flexibilitu při správě tohoto procesu upgradu. Pomocí funkcí plánované údržby platformy AKS můžete mít větší kontrolu nad časovými obdobími údržby a upgrady.
  • Pracovní uzly AKS by se měly upgradovat častěji. Poskytujeme týdenní aktualizace operačního systému a modulu runtime, které je možné použít automaticky prostřednictvím bezobslužného režimu nebo prostřednictvím Azure CLI pro větší kontrolu a komplexní aktualizace.

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 pro váš cluster použít jednotlivé definice zásad nebo skupiny definic zásad označovaných jako iniciativy (označované také jako sady zásad).
  • Použijte předdefinované zásady Azure pro běžné scénáře, jako je prevence spouštění privilegovaných kontejnerů nebo schvalování povolených externích IP adres. Můžete také vytvořit vlastní zásady pro konkrétní případy použití.
  • Použijte definice zásad na váš cluster a ověřte, že se tato přiřazení vynucují.
  • 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.
    • Nainstalujte modul zásad sítě a vytvořte síťové zásady Kubernetes, které řídí tok provozu mezi pody v AKS. Zásady sítě se dají použít pro uzly a pody založené na Linuxu nebo Windows v AKS.

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. Získáte přehled o dostupnosti a výkonu vaší aplikace a infrastruktury. Poskytuje také přístup ke signálům pro monitorování stavu vašeho řešení a včasné zjišťování neobvyklé aktivity.
    • Průběžné monitorování se službou Azure Monitor rozšiřuje na kanály vydaných verzí na základě dat monitorování nebo vrácení zpět. Azure Monitor také ingestuje protokoly zabezpečení a může upozorňovat na podezřelou aktivitu.
    • Připojte instance AKS ke službě Azure Monitor a nakonfigurujte nastavení diagnostiky pro váš cluster.

Osvědčený postup – Použití Microsoft Defenderu pro cloud pro aktivní monitorování hrozeb

  • Microsoft Defender pro cloud poskytuje aktivní monitorování hrozeb v AKS na úrovni uzlu (hrozby virtuálních počítačů) a pro interní účely.
  • Defender for DevOps by měl sloužit k komplexní viditelnosti a poskytuje týmům zabezpečení a operátorů centralizovaný řídicí panel pro všechny kanály CI/CD. Tato funkce je zvlášť užitečná, pokud používáte platformy s více kanály, jako jsou Azure DevOps a GitHub, nebo spouštíte kanály napříč veřejnými cloudy.
  • Defender for Key Vault se dá použít k detekci neobvyklých, podezřelých pokusů o přístup k účtům trezoru klíčů a může upozornit správce 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řipojení diagnostické protokoly AKS do Služby Microsoft Sentinel pro centralizované monitorování zabezpečení na základě vzorů a pravidel. Sentinel umožňuje bezproblémový 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, jaké operace byly provedeny s prostředky a kým.
  • Povolte protokolování dotazů DNS 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 ID Microsoft Entra Vytvořte diagnostické Nastavení pro ID Microsoft Entra a odešlete protokoly auditu a přihlašování do pracovního prostoru služby Azure Log Analytics. Nakonfigurujte požadovaná upozornění (například při pokusu o přihlášení deaktivovaného účtu) v pracovním prostoru služby Azure Log Analytics.

Osvědčený postup – Povolení diagnostiky pro prostředky Azure

  • Povolením diagnostiky Azure napříč všemi prostředky vaší úlohy máte přístup k protokolům platformy, které poskytují podrobné informace o diagnostice a auditování vašich prostředků Azure. Tyto protokoly je možné ingestovat do Log Analytics nebo řešení SIEM, jako je Microsoft Sentinel pro monitorování zabezpečení a upozorňování.

Přispěvatelé

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

Hlavní autor:

Další přispěvatelé:

Další kroky