Doporučení k zabezpečení sdílené infrastruktury ve službě Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Chráněné prostředky v Azure Pipelines představují abstrakci skutečné infrastruktury. Pokud chcete chránit základní infrastrukturu, postupujte podle těchto doporučení.

Použití fondů hostovaných Microsoftem

Fondy hostované Microsoftem nabízejí izolaci a čistý virtuální počítač pro každý provoz kanálu. Pokud je to možné, používejte fondy hostované Microsoftem místo fondů hostovaných v místním prostředí.

Samostatné agenty pro každý projekt

Agent může být vázán pouze na jeden fond. Agenty můžete chtít sdílet mezi projekty sdílením fondu s více projekty. Jinými slovy, několik projektů může spouštět úlohy na stejném agentu, jeden po druhém. I když tento postup šetří náklady na infrastrukturu, může umožnit laterální přesun.

Chcete-li odstranit danou formu laterálního pohybu a zabránit tomu, aby jeden projekt "otravoval" agenta pro jiný projekt, ponechte samostatné fondy agentů s samostatnými agenty pro každý projekt.

Použití účtů s nízkým oprávněním ke spouštění agentů

Je lákavé, ale nebezpečné spustit agenta pod identitou, která může přímo přistupovat k prostředkům Azure DevOps. Toto problematické nastavení je běžné v organizacích, které používají ID Microsoft Entra. Pokud agenta spustíte pod identitou, která je podporována ID Microsoft Entra, může přímo přistupovat k rozhraním API Azure DevOps bez použití přístupového tokenu úlohy. Místo toho byste měli agenta spustit jako neprivilegovaný místní účet, jako je síťová služba.

Azure DevOps má skupinu, která je zavádějící s názvem Účty služby Kolekce projektů. Díky dědičnosti jsou členy účtů služby Kolekce projektů také členy Správa istrátory kolekce projektů. Zákazníci někdy spouštějí agenty sestavení pomocí identity, která je podporována ID Microsoft Entra a která je členem účtů služby Project Collection Service. Pokud nežádoucí osoba spustí kanál na jednom z těchto agentů sestavení, může převzít celou organizaci Azure DevOps.

Viděli jsme také agenty hostované v rámci vysoce privilegovaných účtů. Tito agenti často používají privilegované účty pro přístup k tajným kódům nebo produkčním prostředím. Pokud ale nežádoucí osoby spustí na jednom z těchto agentů sestavení ohrožený kanál, budou mít k těmto tajným kódům přístup. Nežádoucí osoby se pak můžou později pohybovat v jiných systémech, které jsou přístupné prostřednictvím těchto účtů.

Pokud chcete zajistit zabezpečení systémů, použijte k provozování agentů v místním prostředí nejnižší úroveň oprávnění. Použijte například účet počítače nebo identitu spravované služby. Umožňuje službě Azure Pipelines spravovat přístup k tajným kódům a prostředím.

Minimalizace rozsahu připojení služeb

Připojení služeb musí mít přístup jenom k požadovaným prostředkům. Pokud je to možné, místo instančního objektu pro připojení služby Azure použijte federaci identit úloh. Federace identit úloh využívá standardní technologii Open ID Připojení (OIDC) k usnadnění ověřování mezi Azure a Azure DevOps a nepoužívá tajné kódy.

Připojení ke službě Azure by mělo být omezené na prostředky, ke kterým se připojení ke službě potřebuje získat přístup. Uživatelé by neměli mít široká práva přispěvatele pro celé předplatné Azure.

Když vytvoříte nové připojení služby Azure Resource Manager, vždy vyberte skupinu prostředků. Ujistěte se, že vaše skupina prostředků obsahuje pouze virtuální počítače nebo prostředky, které sestavení vyžaduje. Podobně když nakonfigurujete aplikaci GitHub, udělte přístup pouze k úložištím, která chcete sestavit pomocí Azure Pipelines.

Další kroky

Zvažte několik obecných doporučení pro zabezpečení.