Delen via


End-to-end-governance van DevOps naar Azure

In dit artikel wordt beschreven hoe u goede governanceprocedures voor uw team zorgvuldig kunt beheren en implementeren, zoals machtigingen voor op rollen gebaseerd toegangsbeheer.

Het is niet voldoende om een op rollen gebaseerd RBAC-model (Op rollen gebaseerd toegangsbeheer ) voor Azure Resource Manager-sjablonen (ARM-sjablonen) te plannen en implementeren, waardoor de toegang via Azure Portal en Azure CLI wordt beperkt.

Als dit model niet wordt gespiegeld voor DevOps-automatisering, laat uw organisatie mogelijk een beveiligingsachterdeur open. Bekijk een voorbeeld waarbij een ontwikkelaar geen toegang heeft via ARM-sjablonen, maar nog steeds voldoende machtigingen heeft om toepassingscode of infrastructuur als code te wijzigen en een automatiseringswerkstroom te activeren. De ontwikkelaar kan indirect via DevOps toegang krijgen tot en destructieve wijzigingen aanbrengen in uw ARM-sjablonen.

Eén vlak voor identiteitsbeheer met Microsoft Entra-groepen

De eerste stap is het integreren van Microsoft Entra ID voor het gebruik van eenmalige aanmelding per best practice voor identiteitsbeheer.

Als u geen EIGEN CI-product van Azure gebruikt, zoals Azure DevOps, controleert u of uw leverancier Microsoft Entra-integratie biedt.

De tweede stap is het gebruik van Microsoft Entra-groepen, dezelfde groepen die u al gebruikt voor uw ARM-sjablonen RBAC-model. Het is een best practice om rollen toe te wijzen aan Microsoft Entra-groepen, niet aan personen. Als u een end-to-end-governancemodel wilt maken, moet u deze stap uitvoeren voor ARM-sjablonen en DevOps.

Azure DevOps is nauw geïntegreerd met Microsoft Entra-id, waaronder lidmaatschap van Microsoft Entra-groepen, zodat u eenvoudig roltoewijzingen kunt toepassen op dezelfde Microsoft Entra-groep.

Notitie

Als u een andere CI-leverancier gebruikt, hebt u mogelijk een tussenliggende logische container voor het beheren van groepslidmaatschappen, die u ook moet onderhouden als microsoft Entra-groepslidmaatschap niet wordt gesynchroniseerd.

In het volgende diagram ziet u hoe Microsoft Entra ID wordt gebruikt als het enige identiteitsbeheervlak. In ARM-sjablonen en in onze DevOps-hulpprogramma's (Azure DevOps in dit voorbeeld) hoeven we alleen roltoewijzingen te beheren, niet lidmaatschappen, die moeten worden beheerd in Microsoft Entra-id. Houd er rekening mee dat de resourcenamen de aanbevolen naamconventies en afkortingen voor Azure-resources volgen.

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

Voorbeeldscenario: Aannemertoegang met één stap verwijderen, Microsoft Entra-lidmaatschap

Laten we de voordelen van een voorbeeldscenario bekijken om end-to-end governance concreet te maken.

Als u Microsoft Entra ID als één identiteitsbeheervlak gebruikt, kunt u de toegang van een ontwikkelaar tot uw Azure-resources in één actie verwijderen door hun Microsoft Entra-groepslidmaatschappen aan te passen. Als de toegang van een contractant bijvoorbeeld moet worden ingetrokken na voltooiing van het project, wordt de toegang tot ARM-sjablonen en Azure DevOps verwijderd wanneer u het lidmaatschap van de aannemer verwijdert uit de relevante Microsoft Entra-groepen.

RBAC-model spiegelen met roltoewijzingen

Wanneer het goed is gepland, is het RBAC-model in uw CI-hulpprogramma's nauw afgestemd op uw Azure RBAC-model. Hoewel de microsoft Entra-groepsnaamvoorbeelden in het bovenstaande diagram beveiligingsregels impliceren, dwingt lidmaatschap alleen geen beveiliging af. Houd er rekening mee dat RBAC een combinatie is van principals, definities en bereiken, die pas van kracht worden als de roltoewijzing is gemaakt.

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

  • Het diagram illustreert roltoewijzing voor één Microsoft Entra-groep, contoso-admins-group.
  • Aan deze Microsoft Entra-groep wordt de rol Eigenaar voor Azure ARM-sjablonen toegewezen voor meerdere abonnementsbereiken:
    • contoso-dev-sub Abonnement
    • contoso-prod-sub Abonnement
  • Deze contoso-admins-group wordt toegevoegd aan de groep Project Beheer istrators voor Azure DevOps op één projectbereik.

De Microsoft Entra-groep heeft vergelijkbare bevoorrechte rollen voor zowel ARM-sjablonen als DevOps. Als aan deze logica de rol Inzender voor ARM-sjablonen is toegewezen aan een ontwikkelaarsgroep, verwachten we niet dat ze behoren tot de groep Project Beheer istrators voor DevOps.

Nu u begrijpt dat arm-sjablonen en DevOps-werkstromen moeten worden beveiligd, moet u het volgende doen:

  • Controleer uw RBAC-model en denk na over hoe de rollen en verantwoordelijkheden die u hebt gedefinieerd voor ARM-sjablonen overeenkomen met uw CI/CD-werkstroom.
  • Controleer de oplossingen voor identiteitsbeheer van uw CI-platform en integreer Microsoft Entra ID. Idealiter wilt u het Microsoft Entra-groepslidmaatschap opnemen.
  • Controleer de rollen en toegangsniveaus die worden aangeboden door uw CI-hulpprogramma's en vergelijk deze met uw Azure RBAC-model. De rollen en toegangsniveaus wijzen er niet één toe. Controleer uw configuratie. Als een ontwikkelaar geen toegang heeft tot ARM-sjablonen, mag deze geen toegang hebben tot DevOps. In het eenvoudigste voorbeeld mag een ontwikkelaar die geen schrijfmachtigingen voor productiebronnen heeft, geen directe toegang hebben tot het activeren van productiepijplijnuitvoeringen.

Zie voor meer informatie over governanceontwerp en machtigingen:

Volgende stappen

Nu u weet hoe u ARM-sjablonen en DevOps-werkstromen moet beveiligen, leert u hoe u geheimen op een veilige manier kunt beheren.