Rollenbasierte Zugriffssteuerung für DevOps-Tools
Wenn Sie cloudbasierte Lösungen für Ihre Infrastrukturbereitstellungen bereitstellen, sollte die Sicherheit immer Ihr wichtigstes Anliegen sein. Microsoft hält die zugrunde liegende Cloudinfrastruktur sicher. Sie konfigurieren Sicherheit in Azure DevOps oder auf GitHub.
Voraussetzungen
Nachdem Sie entschieden haben, welche Azure-Zielzonenvorlagen bereitgestellt werden sollen, klonen Sie sie in Ihr eigenes Repository. Richten Sie die CI/CD-Pipelines ein. Für GitHub und Azure DevOps stehen mehrere Authentifizierungsmethoden zur Verfügung, z. B. persönliche Zugriffstoken (Personal Access Token, PAT) und die Integration mit einem Identitätsanbieter, z. B. Microsoft Entra ID. Weitere Informationen finden Sie unter Verwenden von persönlichen Zugriffstoken.
Es wird empfohlen, eine Integration mit Microsoft Entra ID zu verwenden, um alle Funktionen verwenden zu können. Durch die Integration können Sie Ihren Rollenzuweisungsprozess und das Identity Lifecycle Management optimieren. Weitere Informationen finden Sie unter Verknüpfen Ihrer Organisation mit Microsoft Entra ID. Wenn Sie GitHub verwenden, sollten Sie die Integration von GitHub Enterprise mit Microsoft Entra ID in Betracht ziehen.
Allgemeine Überlegungen zum Entwurf
Es wird empfohlen, Administrator*innen und Dienstkontogruppen in Microsoft Entra ID und Ihrem DevOps-Tool streng zu steuern. Erwägen Sie die Umsetzung des Prinzips der geringsten Berechtigungen bei allen Rollenzuweisungen.
Ihre Organisation könnte z. B. über ein Plattform- oder Cloudkompetenzteam verfügen, das Azure-Resource Manager-Vorlagen für Ihre Azure-Zielzonen verwaltet. Weisen Sie die Benutzer*innen in diesem Team einer Sicherheitsgruppe in Microsoft Entra ID zu, sofern Sie es als Identitätsanbieter verwenden. Weisen Sie dieser Sicherheitsgruppe in Ihrem DevOps-Tool Rollen zu, damit diese Benutzer*innen ihre Aufgaben erledigen können.
Für alle Administratorkonten oder andere Konten mit umfangreichen Berechtigungen in Active Directory wird empfohlen, deren Anmeldeinformationen nicht mit Microsoft Entra ID zu synchronisieren (und umgekehrt). Mit diesem Ansatz reduzieren Sie das Risiko von Lateralbewegungen. Wenn ein*e Administrator*in in Microsoft Entra ID kompromittiert ist, können Angreifer*innen nicht so einfach Zugriff auf Cloudressourcen wie Azure DevOps erlangen. Dieses Konto kann keine potenziell schädlichen Aufgaben in die CI/CD-Pipelines einfügen. Dieser Schritt ist besonders wichtig für Benutzer*innen, denen erhöhte Berechtigungen in Ihrer DevOps-Umgebung zugewiesen wurden, z. B. Build-, Projekt- oder Sammlungsadministrator*innen. Weitere Informationen finden Sie unter Bewährte Sicherheitsmethoden in Microsoft Entra ID.
Überlegungen zum rollenbasierten Zugriff in Azure DevOps
Verwalten Sie die Sicherheit in Azure DevOps über Sicherheitsgruppen, Richtlinien und Einstellungen auf Organisations-/Sammlungs-, Projekt- oder Objektebene. Um eine Integration mit einem Identitätsanbieter wie Microsoft Entra ID durchzuführen, sollten Sie Richtlinien für bedingten Zugriff erstellen, um Multi-Faktor-Authentifizierung für alle Benutzer*innen zu erzwingen. Die Richtlinien ermöglichen den Zugriff auf Ihre Azure DevOps-Organisation und präzisere Einschränkungen in Bezug auf IP-Adressen sowie den für den Zugriff verwendeten Gerätetyp und die Gerätecompliance.
Für die meisten Teammitglieder in Ihrem Plattformteam, die Ihre Azure-Zielzonen verwalten, sollten die Zugriffsebene Standard und die Standardsicherheitsgruppe Mitwirkender ausreichenden Zugriff bieten. Mit der Sicherheitsgruppe „Mitwirkender“ können sie die Azure-Zielzonenvorlagen in Ihrem Repository und die CI/CD-Pipelines bearbeiten, die sie überprüfen und bereitstellen.
Es wird empfohlen, Ihr Plattformteam der Sicherheitsgruppe „Mitwirkender“ auf Projektebene von Azure DevOps zuzuweisen. Dieser Ansatz folgt dem Prinzip der geringsten Rechte. Diese Zuweisungen können auf der unten gezeigten Seite Projekteinstellungen vorgenommen werden.
Eine weitere bewährte Methode für Ihre Azure DevOps-Projekte und -Organisationen besteht darin, die Vererbung nach Möglichkeit zu deaktivieren. Benutzer*innen erben Berechtigungen, die laut ihren Sicherheitsgruppenzuweisungen zulässig sind. Da diese Vererbung standardmäßig erfolgt, kann es dazu kommen, dass Benutzer*innen unerwarteten Zugriff oder nicht vorgesehene Berechtigungen erhalten.
Wenn Sie z. B. für Ihr Plattformteam als Mitglied der Sicherheitsgruppe „Mitwirkender“ zuweisen, sollten Sie seine Berechtigungen im Azure-Zielzonenrepository überprüfen. Sie sollten Branchrichtlinien einrichten, um sicherzustellen, dass die Sicherheitsgruppe diese Richtlinien bei Pull Requests nicht umgehen darf. Sie überprüfen diese Einstellung unter Projekteinstellungen>Repositorys.
Nachdem Sie Benutzer*innen Berechtigungen zugewiesen haben, überprüfen Sie regelmäßig die Überwachungsereignisse, um unerwartete Verwendungsmuster von Administrator*innen und anderen Benutzer*innen zu überwachen und darauf zu reagieren. Erstellen Sie zunächst einen Überwachungsdatenstrom in einem Log Analytics-Arbeitsbereich. Wenn in Ihrem Arbeitsbereich Microsoft Sentinel zum Einsatz kommt, erstellen Sie Analyseregeln, um über wichtige Ereignisse benachrichtigt zu werden, z. B. über die falsche Verwendung von Berechtigungen.
Weitere Informationen finden Sie in den folgenden Ressourcen:
- Azure DevOps: Best Practices für die Sicherheit
- Azure DevOps: Gruppen und Berechtigungen
- Azure DevOps: Zugriffsebenen
Überlegungen zum rollenbasierten Zugriff auf GitHub
Wenn Ihr primäres DevOps-Tool GitHub ist, können Sie Benutzer*innen Zugriff auf Ressourcen zuweisen, indem Sie ihnen Rollen auf Repository-, Team- oder Organisationsebene zuweisen. Nachdem Sie das Azure-Zielzonenrepository geforkt und mit einem Identitätsanbieter wie Microsoft Entra ID integriert haben, sollten Sie auf GitHub ein Team erstellen. Weisen Sie diesem Team Schreibzugriff auf Ihr neues Azure-Zielzonenrepository zu. Für die meisten Mitglieder Ihres Plattformteams, die Zielzonen ändern und bereitstellen, sollte Schreibzugriff ausreichend sein. Bei Projekt- oder Scrum-Manager*innen im Team müssen Sie möglicherweise der Rolle Verwalten für dieses Repository zuweisen.
Es wird empfohlen, alle diese Rollenzuweisungen über den integrierten Identitätsanbieter zu verwalten. Sie können beispielsweise das Plattformteam für das Azure-Zielzonenrepository, das Sie auf GitHub erstellt haben, mit der entsprechenden Sicherheitsgruppe für das Plattformteam in Microsoft Entra ID synchronisieren. Wenn Sie dann in der Microsoft Entra-Sicherheitsgruppe Mitglieder hinzufügen oder entfernen, werden diese Änderungen in Ihren GitHub Enterprise Cloud-Rollenzuweisungen übernommen.
Hinweis
Wenn Sie ein bestimmtes GitHub-Team mit einem integrierten Identitätsanbieter verbinden, sind Ihre Möglichkeiten auf die Verwaltung der Teammitgliedschaft beschränkt.
Nächste Schritte
Weitere Informationen zum Verwalten von Rollen und Teams auf GitHub finden Sie in den folgenden Ressourcen: