Blog
Schlüssellose Google Cloud-Bereitstellungen aus Azure Pipelines

Für die Bereitstellung von Google Cloud (GCP)-Ressourcen über Azure Pipelines waren früher Schlüssel für Servicekonten erforderlich. Heute jedoch können Azure DevOps OIDC-Tokens mit Hilfe von Google Cloud Workload Identity Federation in Google-Anmeldeinformationen umgewandelt werden. Dieser Blog verwendet dazu Google Cloud Auth.
Azure DevOps Google Cloud Deployment Pipeline Übersicht
Die High-Level Deployment Pipeline besteht aus zwei Schritten. Zunächst werden die Google Credentials ausgetauscht. Zweitens wird die Google Cloud-Bereitstellung ausgeführt.
Nutzen Sie diesen Blog, um Google Cloud Workload Identity Federation für Azure DevOps zu konfigurieren.
Azure Pipeline Konfiguration
Ein Beispiel für eine Terraform-Bereitstellungspipeline wird unten konfiguriert:
steps:
- task: GcpWifAuth@0
inputs:
connectedServiceId: gcp-wip-ado
- task: TerraformInstaller@1
inputs:
terraformVersion: 'latest'
- task: Bash@3
inputs:
targetType: 'inline'
script: 'terraform init'
workingDirectory: 'terraform'
- task: Bash@3
inputs:
targetType: 'inline'
script: 'terraform apply -auto-approve'
workingDirectory: 'terraform'
Die GcpWifAuth-Aufgabe initialisiert eine externe Anmeldedaten-Datei und verweist die GOOGLE_APPLICATION_CREDENTIALS darauf. Die Google Auth-Bibliothek tauscht daraufhin das OIDC-Token von Azure DevOps gegen eine Google-Anmeldedatei aus.
Die Anmeldeinformationen stammen aus der ausführbaren Datei, da die URL für OIDC-Token erstellen eine POST-Methode erfordert. Folglich wird auch die GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES exportiert.
Google Cloud Workload Identity Federation Service Verbindung
Die GcpWifAuth-Aufgabe erfordert eine Dienstverbindung, um die Pipeline für eine bestimmte Google Cloud-Ressource zu autorisieren. Diese Google Cloud Workload Identity Federation-Dienstverbindung gibt den Workload-Identitätspool-Anbieter und optional das anzunehmende Dienstkonto an:
Bonus: Das angenommene Servicekonto außer Kraft setzen
Das angenommene Dienstkonto kann optional in der Schrittdefinition überschrieben werden. Auf diese Weise können Sie einen einzigen Workload Identity Pool Provider und eine Dienstverbindung verwalten und gleichzeitig auf mehrere Dienstkonten zugreifen. Beachten Sie jedoch, dass das Azure DevOps-Token nur angibt, dass der Pipeline der Zugriff auf die Service-Verbindung gewährt wird und nicht auf das Ziel-Servicekonto.
steps:
- task: GcpWifAuth@0
inputs:
connectedServiceId: gcp-wip-ado
serviceAccount: special-deployment@my-project.iam.gserviceaccount.com
Fazit
Ersetzen Sie Dienstkontenschlüssel durch föderierte Google-Anmeldeinformationen. Reduzieren Sie die Verwaltung von Anmeldeinformationen mit der GcpWifAuth-Aufgabe.
Bild von RENE RAUSCHENBERGER aus Pixabay
Verfasst von
Laurens Knoll
As a cloud consultant I enjoy improving what your company does best. I enable your business using cloud technology and enable your engineers by applying software engineering practices to your infrastructure domain.
Unsere Ideen
Weitere Blogs
Contact



