Delen via


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 dit 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:

  1. Ga naar de pagina Pijplijnen , selecteer de juiste pijplijn en selecteer Vervolgens Bewerken.
  2. Zoek de variabelen voor deze pijplijn.
  3. Voeg de variabele toe of werk deze bij.
  4. Selecteer de optie om deze waarde geheim te houden om de variabele op een versleutelde manier op te slaan.
  5. 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

  1. Selecteer de groep Pipelines>Library>+ Variable.

    Screenshot of Add variable group button highlighted with red box.

  2. Voer een naam en beschrijving in voor de groep.

  3. Optioneel: Verplaats de wisselknop om geheimen uit een Azure-sleutelkluis als variabelen te koppelen. Zie Azure Key Vault-geheimen gebruiken voor meer informatie.

  4. Voer de naam en waarde in voor elke variabele die u wilt opnemen in de groep en kies + Toevoegen voor elke variabele.

  5. Als u de variabele veilig wilt maken, kiest u het pictogram Vergrendelen aan het einde van de rij.

  6. Wanneer u klaar bent met het toevoegen van variabelen, selecteert u Opslaan.

    Screenshot of saving a variable group.

Variabelegroepen volgen het beveiligingsmodel van de bibliotheek.

Koppel een bestaande Azure-sleutelkluis aan een variabelegroep en wijs selectieve kluisgeheimen toe aan de variabelegroep.

  1. Schakel op de pagina Variabelengroepen geheimen uit een Azure-sleutelkluis in als variabelen. U hebt een bestaande sleutelkluis met uw geheimen nodig. Maak een sleutelkluis met behulp van Azure Portal.

    Screenshot of variable group with Azure key vault integration.

  2. Geef het eindpunt van uw Azure-abonnement en de naam van de kluis met uw geheimen op.

    Zorg ervoor dat de Azure-serviceverbinding ten minste beheermachtigingen voor ophalen en weergeven heeft voor de kluis voor geheimen. Schakel Azure Pipelines in om deze machtigingen in te stellen door Autoriseren naast de kluisnaam te kiezen. U kunt de machtigingen ook handmatig instellen in Azure Portal:

    1. Open Instellingen voor de kluis en kies vervolgens Toegangsbeleid>toevoegen.
    2. Selecteer Principal selecteren en kies vervolgens de service-principal voor uw clientaccount.
    3. Selecteer Geheime machtigingen en zorg ervoor dat Ophalen en Lijst vinkjes hebben.
    4. Selecteer OK om de wijzigingen op te slaan.
  3. Selecteer op de pagina Variabelengroepen de optie + Toevoegen om specifieke geheimen in uw kluis te selecteren voor toewijzing aan deze variabelegroep.

Sleutelkluisgeheimen beheren

Zie de volgende lijst met handige tips voor het beheren van geheimen.

  • Alleen de geheime namen worden toegewezen aan de variabelegroep, niet aan de geheime waarden. De meest recente geheime waarde, opgehaald uit de kluis, wordt gebruikt in de pijplijnuitvoering die is gekoppeld aan de variabelegroep.

  • Wijzigingen die zijn aangebracht in bestaande geheimen in de sleutelkluis, zijn automatisch beschikbaar voor alle pijplijnen waarin de variabelegroep wordt gebruikt.

  • Wanneer nieuwe geheimen worden toegevoegd aan of verwijderd uit de kluis, worden de bijbehorende variabelegroepen niet automatisch bijgewerkt. De geheimen in de variabelegroep moeten expliciet worden bijgewerkt, zodat de pijplijnen die gebruikmaken van de variabelegroep correct worden uitgevoerd.

  • Azure Key Vault biedt ondersteuning voor het opslaan en beheren van cryptografische sleutels en geheimen in Azure. Op dit moment ondersteunt de integratie van groepen met variabelen in Azure Pipelines alleen het toewijzen van geheimen uit de Azure-sleutelkluis. Cryptografische sleutels en certificaten worden niet ondersteund.

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.

  1. Selecteer assistent weergeven in de pijplijneditor om het deelvenster Assistent uit te vouwen.

  2. vault Zoek en selecteer de Azure Key Vault-taak.

    Add the Azure Key Vault task.

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. Dit 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 mySecretValin.

- bash: |
    echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"

Haal de geheime variabele mySecretValop.

- bash: |
    echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
- bash: |
    echo $(mySecretVal)

Uitvoer van geheime variabelen in bash.

Screenshot of bash variable output.

Meer informatie over het instellen en gebruiken van variabelen in scripts.