Azure Policy en hoe het kan worden geïntegreerd met Azure Kubernetes Services
Azure Policy is een Azure-service waarmee u uw nalevingsstatus in verschillende Azure-services kunt beheren. Met Azure Policy voor Kubernetes kunt u hetzelfde Azure-beleid gebruiken in uw Kubernetes-clusters, zodat u de nalevingsstatus van Kubernetes-resources, zoals pods, implementaties en services, kunt beheren alsof ze een Azure-resource zijn.
Inleiding tot Azure Policy
Met Azure Policy kunt u de nalevingsstatus van uw Azure-services beheren. Het werkt door de status van uw Azure-resources te vergelijken met bedrijfsregels die u definieert. Algemene regels zijn de beperking van bepaalde regio's, de vereiste voor resourcetags of het beperken van welke Azure-services kunnen worden gebruikt.
De manier waarop u deze bedrijfsregels in Azure-beleid definieert, is met behulp van beleidsdefinities. Er zijn veel ingebouwde beleidsregels die betrekking hebben op een reeks algemene scenario's. Als een van de ingebouwde beleidsregels niet aan uw behoeften voldoet, kunt u ook een aangepast beleid definiëren met behulp van een JSON-taal. U kunt ook meerdere beleidsdefinities groeperen in een initiatief.
In een beleidsdefinitie definieert u een voorwaarde voor resourcenaleving en het effect dat moet worden genomen als aan die voorwaarde wordt voldaan. Een voorwaarde vergelijkt de eigenschappen van een resource met een vereiste waarde. Een voorbeeld van een voorwaarde kan zijn om de locatie van een resource te vergelijken met een vooraf gedefinieerde lijst met toegestane locaties. Het effect van een beleid kan het controleren van de voorwaarde zijn, het weigeren van het maken van de resource of het wijzigen van de gemaakte resource. In het voorbeeld van de locatie van een resource kunt u het maken van resources weigeren in de lijst met toegestane locaties. Raadpleeg de structuur van de Azure Policy-definitie voor een gedetailleerdere uitleg van beleidsdefinities.
Azure Policy werkt door een beleidsdefinitie of een initiatief toe te wijzen aan een specifiek bereik. Een bereik kan een beheergroep, een abonnement of een resourcegroep zijn. Beleidstoewijzingen worden automatisch overgenomen voor alle bereiken onder de toewijzing, tenzij u een uitsluiting maakt. Meerdere beleidsdefinities kunnen worden toegepast op een bepaald bereik. Het nettoresultaat van gelaagde beleidsdefinities wordt beschouwd als cumulatief meest beperkend: als meerdere beleidsregels van toepassing zijn op een bepaalde resource, is die resource alleen compatibel als alle beleidsdefinities die hierop van toepassing zijn, compatibel zijn.
Beleidstoewijzingen worden geëvalueerd tijdens het maken of bijwerken van Azure-resources. Ze worden ook geëvalueerd als de definitie of het bereik wordt gewijzigd en periodiek voor continue bewaking. Het beleid wordt praktisch onmiddellijk van kracht wanneer u nieuwe resources maakt. Alle historische resources worden ook gescand, zodat u een continue weergave krijgt van de naleving van al uw resources.
Integratie van Azure Policy met AKS
Er zijn twee manieren waarop Azure Policy kan worden geïntegreerd met Azure Kubernetes Service (AKS).
- Beleidsregels die naleving afdwingen op het Azure-besturingsvlak voor AKS.
- Beleidsregels die naleving afdwingen voor de workload die in uw cluster wordt uitgevoerd.
De eerste set beleidsregels is gericht op de Azure-resources die het clusterontwerp vertegenwoordigen, terwijl de tweede set beleidsregels gericht is op workloads die in het cluster worden uitgevoerd.
Een voorbeeld van beleid dat is gericht op het Azure-besturingsvlak voor AKS, is het beleid voor het afdwingen van het gebruik van privéclusters. Het beleid evalueert of een AKS-cluster de functionaliteit van het privécluster gebruikt. Dit beleid is een configuratie in de Azure-API waarmee het ontwerp van het cluster zelf wordt beheerd.
Een voorbeeld van de set beleidsregels die zijn gericht op de werkbelasting die in uw cluster wordt uitgevoerd, is het beleid voor het afdwingen van het gebruik van toegestane installatiekopieën. Het beleid evalueert of een poddefinitie in Kubernetes gebruikmaakt van een afbeelding die overeenkomt met een bepaalde reguliere expressie. Dit beleid is een configuratie binnen het cluster zelf en communiceert niet met de Azure-API.
De eerste set beleidsregels werkt op basis van de Azure-API zelf. De tweede set beleidsregels communiceert met de Kubernetes-API. Als u dit ingebouwde beveiligingsbeleid wilt toepassen en afdwingen, moet u de Azure Policy-invoegtoepassing voor AKS instellen in uw AKS-cluster .
Inzicht in hoe Azure Policy voor AKS werkt onder de dekking
Als u beleidsregels wilt afdwingen boven op de Kubernetes-API, maakt Azure Policy voor Kubernetes gebruik van veel hulpprogramma's: namelijk toegangswebhooks, Open Policy Agent (OPA), Gatekeeper en ten slotte een Azure Policy-pod.
Azure Policy maakt gebruik van toegangswebhooks in Kubernetes. Toegangswebhooks zijn een ingebouwde functionaliteit van de Kubernetes-API. Hiermee kan de Kubernetes-API een externe webhook aanroepen om te controleren of een aanvraag voor het maken, verwijderen, wijzigen of verbinding maken met een resource moet worden toegestaan of geweigerd (ValidatingAdmissionWebhook
). Of als de aanvraag moet worden gewijzigd (MutatingAdmissionWebhook
).
Open Policy Agent (OPA) is een opensource-beleidsengine. OPA biedt een taal op hoog niveau waarin u beleidsregels kunt definiëren. U kunt OPA gebruiken om beleid af te dwingen in uw eigen microservices, in CI/CD-pijplijnen en in Kubernetes. Azure Policy voor Kubernetes vertaalt Azure-beleid in de OPA-taal die moet worden geïmplementeerd in uw Kubernetes-cluster.
OPA Gatekeeper is een Kubernetes-specifieke implementatie van OPA die kan worden geïntegreerd met de Kubernetes-API. Het integreert met de toegangswebhooks die eerder zijn geïntroduceerd. In plaats van uw eigen webhookhandlers te implementeren, kunt u OPA gatekeeper gebruiken om de antwoorden van de toegangswebhook te verwerken. Azure Policy voor Kubernetes implementeert OPA Gatekeeper op uw Kubernetes-cluster om deze functionaliteit te bereiken.