Sdílet prostřednictvím


Komplexní zásady správného řízení z DevOps do Azure

Tento článek popisuje, jak pečlivě spravovat a implementovat osvědčené postupy správného řízení pro váš tým, například oprávnění řízení přístupu na základě role.

Nestačí naplánovat a implementovat model řízení přístupu na základě role (RBAC) Azure pro šablony Azure Resource Manageru (šablony ARM), který omezuje přístup přes Azure Portal a Azure CLI.

Pokud tento model není zrcadlený pro automatizaci DevOps, může vaše organizace opustit bezpečnostní back-door otevřený. Představte si příklad, kdy vývojář nemá přístup prostřednictvím šablon ARM, ale stále má dostatečná oprávnění ke změně kódu aplikace nebo infrastruktury jako kódu a aktivaci pracovního postupu automatizace. Vývojář, nepřímo prostřednictvím DevOps, může přistupovat k šabloně ARM a provádět destruktivní změny.

Jedna rovina správy identit se skupinami Microsoft Entra

Prvním krokem je integrace ID Microsoft Entra tak, aby používalo jednotné přihlašování podle osvědčených postupů správy identit.

Pokud nepoužíváte produkt CI první strany Azure, jako je Azure DevOps, zkontrolujte, jestli váš dodavatel nabízí integraci Microsoft Entra.

Druhým krokem je použití skupin Microsoft Entra, stejných skupin, které už používáte pro model RBAC šablon ARM. Osvědčeným postupem je přiřazovat role skupinám Microsoft Entra, ne jednotlivcům. Pokud chcete vytvořit ucelený model zásad správného řízení, budete muset tento krok provést pro šablony ARM a DevOps.

Azure DevOps má úzkou integraci s ID Microsoft Entra, včetně členství ve skupinách Microsoft Entra, což usnadňuje použití přiřazení rolí pro stejnou skupinu Microsoft Entra.

Poznámka

Pokud používáte jiného dodavatele CI, můžete mít zprostředkující logický kontejner pro správu členství ve skupinách, který je také potřeba udržovat, pokud se členství ve skupině Microsoft Entra nesynchronuje.

Následující diagram znázorňuje, jak se ID Microsoft Entra používá jako jedna rovina správy identit. V šablonách ARM a v našich nástrojích DevOps (v tomto příkladu Azure DevOps) potřebujeme spravovat jenom přiřazení rolí, nikoli členství, která by se měla spravovat v Microsoft Entra ID. Všimněte si, že názvy prostředků se řídí doporučenýmikonvencemi pojmenování a zkratkami pro prostředky Azure.

Diagram of end-to-end governance and how to access to your Azure resources, both from ARM templates and CI/CD workflows

Ukázkový scénář: Odebrání přístupu zhotovitele pomocí jediného kroku, členství Microsoft Entra

Abychom mohli provést ucelené zásady správného řízení, pojďme se podívat na výhody v ukázkovém scénáři.

Pokud jako jednu rovinu správy identit použijete Id Microsoft Entra, můžete odebrat přístup vývojáře k prostředkům Azure v jedné akci úpravou členství ve skupinách Microsoft Entra. Pokud by například přístup dodavatele měl být při dokončení projektu odvolán, odeberete-li členství dodavatele z příslušných skupin Microsoft Entra, odebere se přístup k šabloně ARM a Azure DevOps.

Zrcadlení modelu RBAC s přiřazeními rolí

Při plánování modelu RBAC v nástrojích CI bude model RBAC úzce zrcadlit váš model Azure RBAC. I když příklady názvů skupin Microsoft Entra v diagramu výše naznačují pravidla zabezpečení, členství samotné nevynucuje zabezpečení. Mějte na paměti, že RBAC je kombinace objektů zabezpečení, definic a oborů, které se neprojeví , dokud se přiřazení role nevytvořilo.

Diagram of Microsoft Entra ID as a single identity management plane in Azure DevOps

  • Diagram znázorňuje přiřazení role pro jednu skupinu Microsoft Entra. contoso-admins-group
  • Tato skupina Microsoft Entra má přiřazenou roli Vlastník pro šablony Azure ARM v několika oborech předplatného:
    • contoso-dev-sub Předplatné
    • contoso-prod-sub Předplatné
  • Přidá se contoso-admins-group do skupiny Project Správa istrators pro Azure DevOps v jednom oboru projektu.

Skupina Microsoft Entra má podobně privilegované role pro šablony ARM i DevOps. Pokud máme po této logice přiřazenou roli Přispěvatel pro šablony ARM, neočekáváme, že patří do skupiny Project Správa istrators pro DevOps.

Teď, když rozumíte potřebě zabezpečení šablon ARM a pracovních postupů DevOps, měli byste:

  • Projděte si model RBAC a zamyslete se nad tím, jak role a odpovědnosti, které jste definovali pro šablony ARM, odpovídají pracovnímu postupu CI/CD.
  • Projděte si řešení pro správu identit vaší platformy CI a integrujte ID Microsoft Entra. V ideálním případě chcete zahrnout členství ve skupině Microsoft Entra.
  • Zkontrolujte role a úrovně přístupu nabízené nástroji CI a porovnejte je s modelem Azure RBAC. Role a úrovně přístupu se nenamapuje na jednu z nich. Zkontrolujte konfiguraci. Pokud vývojář nemá přístup pro šablony ARM, neměl by mít přístup pro DevOps. V nejjednodušším příkladu by vývojář, který nemá oprávnění k zápisu do produkčních prostředků, neměl mít přímý přístup k aktivaci spuštění produkčního kanálu.

Další informace o návrhu a oprávněních zásad správného řízení najdete tady:

Další kroky

Teď, když rozumíte potřebě zabezpečit šablony ARM a pracovní postupy DevOps, zjistěte, jak bezpečně spravovat tajné kódy.