Az Azure Pipelines biztonságossá tétele
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Az Azure Pipelines egyedi biztonsági kihívásokat jelent. Egy folyamat használatával szkripteket futtathat, vagy kódot helyezhet üzembe éles környezetekben. Szeretné azonban biztosítani, hogy a CI/CD-folyamatok ne legyenek rosszindulatú kódok futtatásának útjai. Azt is biztosítani szeretné, hogy csak az üzembe helyezni kívánt kód legyen üzembe helyezve. A biztonságnak egyensúlyban kell lennie azzal, hogy a csapatoknak rugalmasságot és energiát kell biztosítaniuk a saját folyamatok futtatásához.
Megjegyzés:
Az Azure Pipelines az Azure DevOps Services egyik gyűjteménye, amely az Azure ugyanazon biztonságos infrastruktúrájára épül. Az Azure DevOps Services biztonságával kapcsolatos fő fogalmak megismeréséhez tekintse meg az Azure DevOps Data Protection áttekintését és az Azure DevOps Security and Identity szolgáltatást.
A szervezetek hagyományosan drákói zárolásokkal valósították meg a biztonságot. A kód, a folyamatok és az éles környezetek hozzáférésére és használatára szigorú korlátozások vonatkoznak. A néhány felhasználóval és projekttel rendelkező kis szervezetekben ez az álláspont viszonylag könnyen kezelhető volt. A nagyobb szervezetek esetében azonban ez nem így van. Ha sok felhasználó rendelkezik közreműködői hozzáféréssel a kódhoz, "feltételezni kell a szabálysértést". Feltételezve, hogy a szabálysértés olyan viselkedést jelent, mintha egy támadó közreműködői hozzáféréssel rendelkezik az adattárak egy részéhez (ha nem az összeshez).
Ebben az esetben a cél az, hogy megakadályozza, hogy a támadó rosszindulatú kódot futtasson a folyamatban. A rosszindulatú kód titkos kulcsokat vagy sérült éles környezeteket lophat el. Egy másik cél a sérült folyamatból származó más projekteknek, folyamatoknak és adattáraknak való oldalirányú kitettség megakadályozása.
A YAML-folyamatok a legjobb biztonságot nyújtják az Azure Pipelines számára. A klasszikus buildelési és kiadási folyamatokkal ellentétben a YAML-folyamatok:
- A kód áttekinthető. A YAML-folyamatok nem különböznek a többi kódtól. Megakadályozhatja, hogy a rosszindulatú szereplők rosszindulatú lépéseket vezessenek be a folyamatokban, ha kényszeríti a lekéréses kérelmek használatát a módosítások egyesítésére. Az ágszabályzatok megkönnyítik a beállítását.
- Erőforrás-hozzáférés-kezelés biztosítása. Az erőforrás-tulajdonosok eldöntik, hogy egy YAML-folyamat hozzáfér-e egy erőforráshoz, vagy sem. Ez a biztonsági funkció olyan támadásokat vezérel, mint egy másik adattár ellopása. Jóváhagyások és az ellenőrzések hozzáférés-vezérlést biztosítanak minden egyes folyamatfuttatáshoz.
- A futtatókörnyezet paramétereinek támogatása. A futtatókörnyezeti paraméterek segítenek elkerülni a változókkal kapcsolatos számos biztonsági problémát, például az argumentuminjektálást.
Ez a cikksorozat javaslatokat mutat be a biztonságos YAML-alapú CI/CD-folyamat összeállításához. Emellett azokat a helyeket is ismerteti, ahol kompromisszumot hozhat a biztonság és a rugalmasság között. A sorozat emellett feltételezi az Azure Pipelines, az Alapvető Azure DevOps biztonsági szerkezetek és a Git ismereteit is.
A következő témaköröket tartalmazza: