Übersicht
Entra ID wird für dieses Projekt für folgende Dienste verwendet:
- OpenID Connect
- oAuth2.0
- Service Principals
Ziel
Um meine Pipelines mit Github Actions zu verwenden und vorallem für Terraform als Backend benutzen kann, muss ich die Nutzung der Software als Applikation in Entra ID identifizieren und authorisieren.
Dienst
Ich möchte die für die Pipeline eingesetzte Terraform Konfiguration verwenden und gleichzeit mein State File von überall sicher erreichbar sein sollte, wird auf einen Service Principal gesetzt. Dies ermöglicht es uns dem Service Principal, welches als Identität für die Pipeline Runner dient und über Azure Rollen und Entra Rollen mit den nötigsten Berechtigungen ausgestattet wird, welche nötig sind um Resourcen erstellen zu können.
Ausführung
Im Code unter github.tf können die Details zur Umsetzung abgeschaut werden.
---
title: Graph
---
flowchart LR
subgraph pipeline["Github Actions Pipeline"]
authorize -->
terraform-init -->
terraform-plan & terraform-apply
end
subgraph entra
app-registration -->
service-principal --> authorize
end
terraform-apply --> app-registration
In der Abbildung ist zu sehen dass Terraform mit Informationen von Entra ID sich authorisieren müsste. Dies Bedarf bei OpenID Connect eine ´client-id´, ´tenant-id´ und ein ´client-secret´. Diese konnte ich noch mit meiner Owner Rolle Erstellen, wird aber zukünftig über den Service Principal mit Terraform interagiert.
Weitere Details zur Ausführung findest du unter Cloudflare Pages.