Blog

Verwendung von Google Service-Konten in Azure Pipelines

Laurens Knoll

Aktualisiert Oktober 21, 2025
2 Minuten

Google Cloud Platform (GCP) verwendet Dienstkonten, um Anwendungen oder Dienste zu autorisieren. Azure Pipelines speichert diese Anmeldeinformationen normalerweise als Service-Verbindung. Eine GCP Service-Verbindung ist jedoch nicht verfügbar. Daher verwenden wir Secure Files.

Sichere Dateien

Die Azure Pipelines Library bietet Secure Files, um Geheimnisse zu speichern, ohne sie in die Versionskontrolle aufzunehmen. Dateien gehören zum Projektumfang und die Berechtigungen werden über Rollen gesteuert. Genau wie bei Dienstverbindungen.

Bemerkung Ein sicherer Verlauf der Dateinutzung ist nicht verfügbar. Verwenden Sie Dateiberechtigungen, um sicherzustellen, dass Ihre Datei von den entsprechenden Teams und Pipelines verwendet wird.

Fügen Sie Ihrem Projekt sichere Dateien über Pipelines > Bibliothek > Sichere Dateien hinzu.

Als Dienstkonto authentifizieren

Das folgende Azure Pipelines-Snippet verwendet eine Secure-Datei zur Konfiguration der Google Cloud SDK-Anmeldeinformationen.

    steps:
    - task: DownloadSecureFile@1
      name: serviceAccount
      inputs:
        secureFile: 'azure-deployments-example.json'
    - task: GoogleCloudSdkInstaller@0
      inputs:
        version: '291.0.0'
    - task: GcloudRunner@0
      inputs:
        command: 'auth activate-service-account'
        arguments: '--key-file $(serviceAccount.secureFilePath)'
      displayName: 'gcloud auth activate-service-account'

Die Pipeline geht davon aus, dass:

  • Sichere Datei 'azure-deployments-example.json' existiert
  • Die Erweiterung google-cloud-sdk-tasks ist installiert . Die Google Cloud SDK-Anmeldeinformationen werden durch den Aufruf von gcloud auth activate-service-account mit einer als Secure-Datei gespeicherten Anmeldeinformation konfiguriert. Dies bewirkt, dass alle gcloud Befehle den aktivierten Berechtigungsnachweis verwenden.

Diskussion

Sichere Dateien können nicht aktualisiert werden. Das Drehen eines Geheimnisses erfordert also, dass Sie die Datei neu erstellen. In der Tat müssen alle Pipelines mit der Secure-Datei-Ressource neu autorisiert werden. Ressourcenautorisierung erforderlich Ich mag diesen Prozess der Neubevollmächtigung sehr gerne. Ich verstehe jedoch, dass es sich von den Service-Verbindungen unterscheidet. Da Service Connections nicht verfügbar sind, könnten Sie Variablengruppen verwenden. Die variable Gruppe injiziert eine geheime Pipeline-Variable, die die Zugangsdaten für das Servicekonto enthält. Da Google Cloud SDK eine Datei benötigt, muss die Pipeline die geheime Variable in eine Datei schreiben:

    variables:
    - group: azure-deployments-example
    steps:
    - task: Bash@3
      inputs:
        targetType: 'inline'
        script: 'echo $(ServiceAccountKey) | base64 -d > _key.json'
    - task: GoogleCloudSdkInstaller@0
      inputs:
        version: '291.0.0'
    - task: GcloudRunner@0
      inputs:
        command: 'auth activate-service-account'
        arguments: '--key-file _key.json'
      displayName: 'gcloud auth activate-service-account'

Diese Pipeline setzt eine Variablengruppe 'azure-deployments-example' und eine base64-kodierte Variable 'ServiceAccountKey' voraus. Die Verwendung von ServiceAccountKey wird von Google in Erstellen einer CI/CD-Pipeline mit Azure Pipelines und Cloud Run beschrieben

Fazit

Secure Files ist ein geheimer Speicher, der sich für die Speicherung von Anmeldedaten für Google-Dienstkonten eignet. In Kombination mit der Google Cloud SDK-Erweiterung ist es einfach, sich zu authentifizieren und als Ihr Dienstkonto zu fungieren.

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.

Contact

Let’s discuss how we can support your journey.