Blog
Verwendung von Google Service-Konten in Azure Pipelines

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-accountmit einer als Secure-Datei gespeicherten Anmeldeinformation konfiguriert. Dies bewirkt, dass allegcloudBefehle 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.
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
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.
Unsere Ideen
Weitere Blogs
Contact



