Geheime variabelen instellen
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Geheime variabelen zijn versleutelde variabelen die u in pijplijnen kunt gebruiken zonder hun waarde bloot te leggen. Geheime variabelen kunnen worden gebruikt voor persoonlijke informatie, zoals wachtwoorden, id's en andere identificatiegegevens die u niet wilt weergeven in een pijplijn. Geheime variabelen worden in rust versleuteld met een 2048-bits RSA-sleutel en zijn beschikbaar op de agent voor taken en scripts die moeten worden gebruikt.
De aanbevolen manieren om geheime variabelen in te stellen, bevinden zich in de gebruikersinterface, in een variabelegroep en in een variabelegroep uit Azure Key Vault. U kunt ook geheime variabelen instellen in een script met een opdracht voor logboekregistratie, maar deze methode wordt niet aanbevolen, omdat iedereen die toegang heeft tot uw pijplijn ook het geheim kan zien.
Geheime variabelen die zijn ingesteld in de gebruikersinterface voor pijplijninstellingen voor een pijplijn, hebben het bereik van de pijplijn waar ze zijn ingesteld. U kunt variabelegroepen gebruiken om geheime variabelen te delen tussen pijplijnen.
Geheime variabele in de gebruikersinterface
U kunt geheime variabelen instellen in de pijplijneditor wanneer u een afzonderlijke pijplijn bewerkt. U versleutelt en maakt een pijplijnvariabele geheim door het vergrendelingspictogram te selecteren.
U stelt geheime variabelen op dezelfde manier in voor YAML en klassiek.
Voer de volgende stappen uit om geheimen in te stellen in de webinterface:
- Ga naar de pagina Pijplijnen , selecteer de juiste pijplijn en selecteer Vervolgens Bewerken.
- Zoek de variabelen voor deze pijplijn.
- Voeg de variabele toe of werk deze bij.
- Selecteer de optie om deze waarde geheim te houden om de variabele op een versleutelde manier op te slaan.
- Sla de pijplijn op.
Geheime variabelen worden in rust versleuteld met een 2048-bits RSA-sleutel. Geheimen zijn beschikbaar op de agent voor taken en scripts die moeten worden gebruikt. Wees voorzichtig met wie toegang heeft om uw pijplijn te wijzigen.
Belangrijk
We doen er alles aan om geheimen te maskeren van de uitvoer van Azure Pipelines, maar u moet nog steeds voorzorgsmaatregelen nemen. Echo geheimen nooit als uitvoer. Sommige besturingssystemen registreren opdrachtregelargumenten. Geef nooit geheimen door op de opdrachtregel. In plaats daarvan raden we u aan uw geheimen toe te wijzen aan omgevingsvariabelen.
We maskeren nooit subtekenreeksen van geheimen. Als 'abc123' bijvoorbeeld is ingesteld als geheim, wordt 'abc' niet gemaskeerd uit de logboeken. Dit is om te voorkomen dat geheimen te gedetailleerd worden gemaskeerd, waardoor de logboeken onleesbaar worden. Daarom mogen geheimen geen gestructureerde gegevens bevatten. Als bijvoorbeeld '{ 'foo': 'bar' }' is ingesteld als geheim, wordt 'balk' niet gemaskeerd uit de logboeken.
In tegenstelling tot een normale variabele worden ze niet automatisch ontsleuteld in omgevingsvariabelen voor scripts. U moet geheime variabelen expliciet toewijzen.
Een geheime variabele gebruiken in de gebruikersinterface
U moet een geheime variabele toewijzen als omgevingsvariabelen om ernaar te verwijzen in YAML-pijplijnen. In dit voorbeeld zijn er twee geheime variabelen gedefinieerd in de gebruikersinterface SecretOne
en SecretTwo
. De waarde van SecretOne
is foo
en de waarde van SecretTwo
is 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)
De pijplijnuitvoer:
My first secret variable is ***
True
My second secret variable: ***
Strings are equal.
Notitie
Azure Pipelines doet er alles aan om geheimen te maskeren bij het verzenden van gegevens naar pijplijnlogboeken, zodat er mogelijk extra variabelen en gegevens worden gemaskeerd in uitvoer en logboeken die niet als geheimen zijn ingesteld.
Zie Variabelen definiƫren voor een gedetailleerder voorbeeld.
Een geheime variabele instellen in een variabelegroep
U kunt geheimen toevoegen aan een variabele groep of geheimen koppelen vanuit een bestaande Azure Key Vault.
Nieuwe variabelegroepen maken
Selecteer de groep Pipelines>Library>+ Variable.
Voer een naam en beschrijving in voor de groep.
Optioneel: Verplaats de wisselknop om geheimen uit een Azure-sleutelkluis als variabelen te koppelen. Zie Azure Key Vault-geheimen gebruiken voor meer informatie.
Voer de naam en waarde in voor elke variabele die u wilt opnemen in de groep en kies + Toevoegen voor elke variabele.
Als u de variabele veilig wilt maken, kiest u het pictogram Vergrendelen aan het einde van de rij.
Wanneer u klaar bent met het toevoegen van variabelen, selecteert u Opslaan.
Variabelegroepen volgen het beveiligingsmodel van de bibliotheek.
Geheimen uit een Azure-sleutelkluis koppelen
U kunt variabelegroepen maken en deze koppelen aan een bestaande Azure-sleutelkluis, zodat u kunt toewijzen aan geheimen die zijn opgeslagen in de sleutelkluis. Alleen de geheime namen worden toegewezen aan de variabelegroep, niet aan de geheime waarden. Pijplijn voert die koppeling naar de variabelegroep uit om de meest recente geheime waarden uit de kluis op te halen. Zie Een variabelegroep koppelen aan geheimen in Azure Key Vault voor meer informatie.
De Azure Key Vault-taak gebruiken
U kunt de Azure Key Vault-taak gebruiken om geheimen in uw pijplijn op te nemen. Met deze taak kan de pijplijn verbinding maken met uw Azure Key Vault en geheimen ophalen voor gebruik als pijplijnvariabelen.
Selecteer assistent weergeven in de pijplijneditor om het deelvenster Assistent uit te vouwen.
vault
Zoek en selecteer de Azure Key Vault-taak.
De optie Geheimen beschikbaar maken voor hele taken wordt momenteel niet ondersteund in Azure DevOps Server 2019 en 2020.
Zie Azure Key Vault-geheimen gebruiken in Azure Pipelines voor meer informatie over de Azure Key Vault-taak.
Geheime variabele instellen in een script met logboekregistratieopdrachten
U kunt de task.setvariable
logboekregistratieopdracht gebruiken om variabelen in PowerShell- en Bash-scripts in te stellen. Deze methode is de minst veilige manier om met geheime variabelen te werken, maar kan handig zijn voor foutopsporing. De aanbevolen manieren om geheime variabelen in te stellen, bevinden zich in de gebruikersinterface, in een variabelegroep en in een variabelegroep uit Azure Key Vault.
Als u een variabele wilt instellen als een script met een opdracht voor logboekregistratie, moet u de issecret
vlag doorgeven.
Wanneer issecret
deze is ingesteld op true, wordt de waarde van de variabele opgeslagen als geheim en gemaskeerd uit logboeken.
Notitie
Azure Pipelines doet er alles aan om geheimen te maskeren bij het verzenden van gegevens naar pijplijnlogboeken, zodat er mogelijk extra variabelen en gegevens worden gemaskeerd in uitvoer en logboeken die niet als geheimen zijn ingesteld.
Stel de geheime variabele mySecretVal
in.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
Haal de geheime variabele mySecretVal
op.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
- bash: |
echo $(mySecretVal)
Uitvoer van geheime variabelen in bash.
Meer informatie over het instellen en gebruiken van variabelen in scripts.