Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Geheimnisvariablen sind verschlüsselte Variablen, die Sie in Pipelines verwenden können, ohne deren Wert verfügbar zu halten. Verwenden Sie geheime Variablen für private Informationen wie Kennwörter, IDs und andere identifizierende Daten, die In einer Pipeline nicht verfügbar gemacht werden sollen. Geheimnisvariablen werden im Ruhezustand mit einem 2048-Bit-RSA-Schlüssel verschlüsselt und stehen auf dem Agent für Aufgaben und Skripts zur Verfügung.
Warum geheime Variablen wichtig sind: Der Schutz vertraulicher Anmeldeinformationen in Ihren CI/CD-Pipelines ist von entscheidender Bedeutung. Indem Sie geheime Schlüssel sicher speichern, verhindern Sie nicht autorisierten Zugriff auf vertrauliche Ressourcen, verringern das Risiko der Offenlegung von Anmeldeinformationen in Buildprotokollen und verwalten die Einhaltung bewährter Sicherheitsmethoden. Geheime Variablen stellen sicher, dass nur autorisierte Pipelines und Aufgaben auf vertrauliche Daten zugreifen können, um den Sicherheitsstatus Ihrer Organisation zu schützen.
Es wird empfohlen, die Geheimnisvariablen über die Benutzeroberfläche, in einer Variablengruppe oder in einer Variablengruppe über Azure Key Vault festzulegen. Sie können auch geheime Variablen in einem Skript mit einem Protokollierungsbefehl festlegen, diese Methode wird jedoch nicht empfohlen, da jeder, der auf Ihre Pipeline zugreifen kann, auch den geheimen Schlüssel sehen kann.
Geheime Variablen, die Sie in der Benutzeroberfläche für Pipelineeinstellungen für eine Pipeline festlegen, sind auf die Pipeline begrenzt, in der Sie sie festlegen. Verwenden Sie variable Gruppen, um geheime Variablen über Pipelines hinweg zu teilen.
Geheimnisvariable auf der Benutzeroberfläche
Legen Sie geheime Variablen im Pipeline-Editor fest, wenn Sie eine einzelne Pipeline bearbeiten. Verschlüsseln Sie eine Pipelinevariable, und erstellen Sie einen geheimen Schlüssel, indem Sie das Sperrsymbol auswählen.
Legen Sie geheime Variablen auf die gleiche Weise für YAML und Classic fest.
Führen Sie die folgenden Schritte aus, um Geheimnisse über die Weboberfläche festzulegen:
- Wechseln Sie zur Seite Pipelines, wählen Sie die entsprechende Pipeline aus und klicken Sie dann auf Bearbeiten.
- Suchen Sie die Variablen für diese Pipeline.
- Fügen Sie die Variable hinzu oder aktualisieren Sie sie.
- Wählen Sie die Option Diesen Wert geheim halten, um die Variable verschlüsselt zu speichern.
- Speichern Sie die Pipeline.
Geheimnisvariablen werden im Ruhezustand mit einem 2048-Bit-RSA-Schlüssel verschlüsselt. Geheimnisse sind auf dem Agent für verwendbare Aufgaben und Skripts verfügbar. Achten Sie darauf, wer zum Ändern Ihrer Pipeline berechtigt ist.
Wichtig
Wir versuchen zwar, die in der Azure Pipelines-Ausgabe angezeigten Geheimnisse zu maskieren, Sie müssen aber trotzdem Vorkehrungen treffen. Geben Sie Geheimnisse niemals als Ausgabe zurück. Einige Betriebssysteme protokollieren Befehlszeilenargumente. Geben Sie niemals Geheimnisse über die Befehlszeile weiter. Stattdessen wird empfohlen, Ihre Geheimnisse Umgebungsvariablen zuzuordnen.
Wir maskieren niemals Teilzeichenfolgen von Geheimnissen. Wenn beispielsweise „abc123“ als Geheimnis festgelegt ist, wird „abc“ in den Protokollen nicht maskiert. Dadurch soll vermieden werden, dass Geheimnisse zu detailliert maskiert werden, sodass die Protokolle nicht mehr lesbar sind. Aus diesem Grund sollten Geheimnisse keine strukturierten Daten enthalten. Wenn beispielsweise „{ "foo": "bar" }“ als Geheimnis festgelegt ist, wird „bar“ nicht in den Protokollen maskiert.
Im Gegensatz zu einer normalen Variablen werden sie nicht automatisch zu Umgebungsvariablen für Skripts entschlüsselt. Geheime Variablen müssen explizit zugeordnet werden.
Verwenden einer Geheimnisvariable über die Benutzeroberfläche
Um auf geheime Variablen in YAML-Pipelines zu verweisen, ordnen Sie sie als Umgebungsvariablen zu. In diesem Beispiel definiert die Benutzeroberfläche zwei geheime Variablen SecretOne und SecretTwo. Der Wert von SecretOne ist foo, und der Wert von SecretTwo ist bar.
steps:
- powershell: |
Write-Host "My first secret variable is $env:FOO_ONE"
$env:FOO_ONE -eq "foo"
env:
FOO_ONE: $(SecretOne)
- bash: |
echo "My second secret variable: $FOO_TWO"
if [ "$FOO_TWO" = "bar" ]; then
echo "Strings are equal."
else
echo "Strings are not equal."
fi
env:
FOO_TWO: $(SecretTwo)
Die Pipelineausgaben:
My first secret variable is ***
True
My second secret variable: ***
Strings are equal.
Hinweis
Azure Pipelines bemüht sich, geheime Schlüssel beim Ausgeben von Daten an Pipelineprotokolle zu maskieren, sodass möglicherweise zusätzliche Variablen und Daten in Ausgabe- und Protokollen maskiert werden, die nicht als geheime Schlüssel festgelegt sind.
Ein ausführlicheres Beispiel finden Sie unter Definieren von Variablen.
Festlegen einer Geheimnisvariable in einer Variablengruppe
Sie können einer Variablengruppe Geheimnisse hinzufügen oder Geheimnisse aus einer vorhandenen Azure Key Vault verknüpfen.
Neue Variablengruppen erstellen
Wählen Sie Pipelines>Bibliothek (Library)>Variablengruppe hinzufügen (+ Variable group) aus.
Geben Sie einen Namen und eine Beschreibung für die Gruppe ein.
Optional: Verschieben Sie den Umschalter, um geheime Schlüssel aus einem Azure Key Vault als Variablen zu verknüpfen. Weitere Informationen finden Sie unter Verwenden von Azure Key Vault-Geheimnissen.
Geben Sie Namen und Wert für jede Variable ein, die in die Gruppe aufgenommen werden soll, und wählen Sie für jede Variable + Hinzufügen (+ Add) aus.
Um die Variable zu schützen, wählen Sie das Sperrsymbol am Ende der Zeile aus.
Wählen Sie Speichern (Save) aus, nachdem Sie die gewünschten Erweiterungen hinzugefügt haben.
Variablengruppen befolgen das Modell für Bibliotheksicherheit.
Verknüpfung von Geheimnissen aus einem Azure Key Vault
Sie können Variablengruppen erstellen und mit einem vorhandenen Key Vault verknüpfen, damit Sie Geheimnisse im Key Vault zuordnen können. Der Variablengruppe werden nur die Geheimnisnamen zugeordnet, nicht die Geheimniswerte. Die Pipeline führt diese Verknüpfung mit der Variablengruppe aus und ruft die neuesten geheimen Werte aus dem Tresor ab. Weitere Informationen finden Sie unter Verknüpfen einer Variablengruppe mit geheimen Schlüsseln in Azure Key Vault.
Verwenden der Azure Key Vault-Aufgabe
Verwenden Sie die Azure Key Vault-Aufgabe, um geheime Schlüssel in Ihre Pipeline einzuschließen. Mithilfe dieser Aufgabe kann Ihre Pipeline eine Verbindung mit Ihrem Key Vault herstellen und geheime Schlüssel abrufen, die als Pipelinevariablen verwendet werden.
Wählen Sie im Pipeline-Editor Assistenten anzeigen aus, um den Assistentenbereich zu auszuklappen.
Suchen Sie nach
vault, und wählen Sie die Key Vault-Aufgabe aus.
Weitere Informationen zur Aufgabe "Key Vault" finden Sie unter Verwenden von Geheimschlüsseln in Azure Key Vault in Azure Pipelines.
Festlegen einer geheimen Variablen in einem Skript mithilfe von Protokollierungsbefehlen
Verwenden Sie den task.setvariable Protokollierungsbefehl, um Variablen in PowerShell- und Bash-Skripts festzulegen. Diese Methode ist die am wenigsten sichere Methode, um mit geheimen Variablen zu arbeiten, kann aber für das Debuggen nützlich sein. Die empfohlenen Methoden zum Festlegen geheimer Variablen befinden sich auf der Benutzeroberfläche, in einer Variablengruppe und in einer Variablengruppe aus dem Key Vault.
Warnung
Sicherheitsrisiko: Das Festlegen geheimer Variablen in Skripts mithilfe von Protokollierungsbefehlen ist inhärent weniger sicher. Jeder, der Zugriff auf Ihre Pipelinedefinition, Buildprotokolle oder Quellcode hat, kann den Protokollierungsbefehl anzeigen und den geheimen Schlüssel potenziell verfügbar machen. Verwenden Sie diese Methode nur für Debuggingzwecke in sicheren, vertrauenswürdigen Umgebungen. Bevorzugen Sie immer UI-basierte Konfigurationen, variable Gruppen oder die Integration von Azure Key Vault für Produktionsszenarien.
Um eine Variable als Skript mithilfe eines Protokollierungsbefehls festzulegen, übergeben Sie das issecret Flag.
Wenn issecret auf „true“ festgelegt ist, wird der Wert der Variable als Geheimnis gespeichert und im Protokoll maskiert.
Hinweis
Azure Pipelines bemüht sich, geheime Schlüssel beim Ausgeben von Daten an Pipelineprotokolle zu maskieren, sodass möglicherweise zusätzliche Variablen und Daten in Ausgabe- und Protokollen maskiert werden, die nicht als geheime Schlüssel festgelegt sind.
Legen Sie die Geheimnisvariable mySecretVal fest:
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
Ruft die geheime Variable mySecretVal ab.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
- bash: |
echo $(mySecretVal)
Ausgabe der Geheimnisvariable in Bash.
Weitere Informationen finden Sie unter Festlegen und Verwenden von Variablen in Skripts.