Szerkesztés

Megosztás a következőn keresztül:


DevSecOps for infrastructure as code (IaC)

Microsoft Sentinel
Azure Monitor
GitHub

Megoldási ötletek

Ez a cikk egy megoldási ötletet ismertet. A felhőmérnök ezen útmutató segítségével megjelenítheti az architektúra tipikus implementációjának fő összetevőit. Ez a cikk kiindulási pontként szolgál egy jól megtervezett megoldás megtervezéséhez, amely megfelel a számítási feladat egyedi követelményeinek.

Ez a megoldásötlet bemutatja a DevSecOps-folyamatot az IaC-hez készült GitHub használatával, valamint azt, hogyan szabályozhatja a munkafolyamatot a kiváló működés, a biztonság és a költségoptimalizálás érdekében.

A Terraform a Hashicorp védjegye. A védjegy használata nem utal jóváhagyásra.

Architektúra

Az IaC-hez készült DevSecOps architektúrát bemutató diagram.

Töltse le az architektúra Visio-fájlját.

Adatfolyam

  1. A tesztalapú fejlesztéssel az infrastruktúra-definíciók, például az IaC-sablonok kódmódosításait ellenőrizheti a GitHub-adattárakban. Az IaC minőségének teszteléséhez egységteszteket, integrációs teszteket és paC-t fejleszthet.
  2. A lekéréses kérelmek (PRs) automatikus egységtesztelést váltanak ki a GitHub Actions használatával.
  3. A GitHub Actions munkafolyamatát úgy konfigurálja, hogy tesztelje az IaC-t helyileg üzembe helyezett infrastruktúraállapotokkal és -csomagokkal.
  4. Konfigurálja a GitHub Actionst a kódminőségi és biztonsági problémák vizsgálatához. Ezután a GitHub CodeQL-jén alapuló biztonsági ellenőrző eszközökkel kereshet biztonsági réseket az IaC-n. Ha biztonsági rést észlel, a GitHub riasztásokat küld a szervezetnek vagy az adattár tulajdonosainak és karbantartóinak.
  5. Az IaC-eszköz minden környezethez kiépíti és módosítja az erőforrásokat, testre szabja a méretet, a példányok számát és egyéb tulajdonságokat. A kiépített erőforrásokon automatizált integrációs teszteket futtathat az IaC-hez.
  6. Ha manuális frissítésre van szükség az infrastruktúrára, a kijelölt rendszergazdai hozzáférés emelt szintű lesz a módosítások végrehajtásához. A módosítás után a rendszer eltávolítja az emelt szintű hozzáférést, és egy problémát be kell jelentkeznie a GitHubra az IaC egyeztetéséhez. Az egyeztetés lépései és lehetősége az adott IaC-eszközöktől függ.
  7. A SecOps folyamatosan figyeli és védi a biztonsági fenyegetéseket és biztonsági réseket. Az Azure Policy kikényszeríti a felhőszabályozást.
  8. A rendellenesség észlelésekor a GitHubon automatikusan problémát kell felhozni a hibák kijavítása érdekében.

Összetevők

  • A GitHub egy kódüzemeltetési platform a verziókövetéshez és az együttműködéshez. A GitHub forrásvezérlési adattára tartalmazza az összes projektfájlt és azok korrektúraelőzményeit. A fejlesztők együttműködhetnek a kódtárban való közreműködéshez, megvitatásához és kezeléséhez.
  • A GitHub Actions olyan összeállítási és kiadási munkafolyamatokat biztosít, amelyek a folyamatos integrációt (CI), az automatizált tesztelést és a tárolótelepítéseket fedik le.
  • A GitHub Advanced Security olyan funkciókat biztosít, amelyekkel biztonságossá teheti az IaC-t. Ehhez egy másik licencre van szükség.
  • A CodeQL olyan biztonsági ellenőrző eszközöket biztosít, amelyek statikus kódon futnak az infrastruktúra helytelen konfigurációinak észleléséhez.
  • A Terraform a HashiCorp által kifejlesztett partnertermék, amely lehetővé teszi az infrastruktúra automatizálását az Azure-ban és más környezetekben.
  • Felhőhöz készült Microsoft Defender egységes biztonságkezelést és fejlett fenyegetésvédelmet biztosít a hibrid felhőbeli számítási feladatokhoz.
  • A Microsoft Sentinel egy natív felhőalapú SIEM- és biztonsági vezénylési automatizált válaszmegoldás (SOAR). Fejlett AI- és biztonsági elemzéseket használ a vállalaton belüli fenyegetések észleléséhez és elhárításához.
  • Az Azure Policy segítségével a csapatok felhőalapú erőforrásokra vonatkozó szabályokat kikényszerítő szabályzatdefiníciókkal kezelhetik és előzhetik meg az informatikai problémákat. Ha például a projekt egy ismeretlen termékváltozatú virtuális gép üzembe helyezésére készül, az Azure Policy riasztást küld a problémára, és leállítja az üzembe helyezést.
  • Az Azure Monitor összegyűjti és elemzi az alkalmazás telemetriáját, például a teljesítménymetrikát és a tevékenységnaplókat. Ha ez a szolgáltatás szabálytalan feltételeket azonosít, riasztásokat küld az alkalmazásoknak és a személyzetnek.

Forgatókönyv részletei

A DevSecOps for infrastructure as code (IaC) elméletileg hasonló az AKS-beli alkalmazáskódhoz készült DevSecOpshoz. A folyamatos integráció és a folyamatos teljesítés (CI/CD) IaC-hez való kezeléséhez és automatizálásához azonban más folyamatokra és eszközökre van szükség.

Az IaC bevezetésekor fontos automatizálási teszteket létrehozni a kód fejlesztése során. Ezek a tesztek csökkentik az IaC tesztelésének összetettségét a számítási feladatok skálázása során. A helyi infrastruktúrakonfigurációs állapotok, például a Terraform-állapotok és az IaC-hez készült tesztalapú fejlesztés (TDD) fejlesztésére irányuló tervek is használhatók. Ezek a konfigurációs állapotok a tényleges üzemelő példányokat emulálják. Az Azure Resource Graph REST API-val integrációs teszteket futtathat az IaC-hez a tényleges infrastruktúra-üzemelő példányokon.

A Szabályzat mint kód (PaC) szintén fontos módszer a szabályozásoknak és a vállalatirányításnak megfelelő infrastruktúra biztosításához. A felhőszabályozás automatizálásához pac-munkafolyamatokat vehet fel a folyamatokba.

Az infrastruktúra fejlesztési szakaszának korai szakaszában történő biztonságossá tétele csökkenti az infrastruktúra helytelen konfigurálásának kockázatát, amely az üzembe helyezés után támadási pontokat nyit meg. A GitHub CodeQL-jének használatával integrálhatja az infrastruktúra statikus kódelemző eszközeit, például a Synket vagy az Aquasecurity tfsec-et az infrastruktúrakód biztonsági problémáinak vizsgálatához. Ez a folyamat hasonló a statikus alkalmazásbiztonsági teszteléshez (SAST).

Az infrastruktúra üzembe helyezése és üzemeltetése esetén a felhőkonfigurációs eltéréseket nehéz lehet megoldani, különösen éles környezetben.

Dedikált szolgáltatásnevek beállítása az éles környezetek felhőinfrastruktúra üzembe helyezéséhez vagy módosításához. Ezután távolítsa el az összes többi olyan hozzáférést, amely lehetővé teszi a környezet manuális konfigurálását. Ha manuális konfigurációra van szüksége, emelje fel a hozzáférést a kijelölt rendszergazda számára, majd a módosítás módosítása után távolítsa el az emelt szintű hozzáférést. Az Azure Monitort úgy kell konfigurálnia, hogy problémát jelentsen a GitHubon a fejlesztők számára a módosítások egyeztetéséhez. Ha lehetséges, a manuális konfigurációt azonban kerülni kell.

Fontos, hogy a biztonsági incidensek megelőzése érdekében folyamatosan monitorozza a felhőkörnyezetet a fenyegetések és a biztonsági rések ellen. A veszélyforrások elleni védelem, a biztonsági információk és az eseménykezelési (SIEM) eszközök segítségével észlelheti a rendellenes forgalmat. Ezek az eszközök automatikusan figyelmeztetik a biztonsági rendszergazdákat, és felhívják a figyelmet a GitHubon.

Lehetséges használati esetek

Ön egy IaC-fejlesztőkből álló központi csapat tagja, amely többfelhős stratégiát használ a fiktív Contoso vállalat számára. A felhőinfrastruktúra üzembe helyezését egy új Azure-beli célzónába szeretné telepíteni, amely a DevSecOps for IaC használatával biztosítja az üzemelő példányok biztonságát és minőségét. Emellett nyomon szeretné követni és naplózni az infrastruktúra összes módosítását.

Közreműködők

Ezt a cikket a Microsoft tartja karban. Eredetileg a következő közreműködők írták.

Fő szerzők:

Következő lépések