Delen via


Azure Key Vault-geheimen gebruiken in uw pijplijn

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Met Azure Key Vault kunt u uw gevoelige informatie, zoals wachtwoorden, API-sleutels, certificaten, enzovoort, veilig opslaan en beheren. met behulp van Azure Key Vault kunt u eenvoudig versleutelingssleutels maken en beheren om uw gegevens te versleutelen. Azure Key Vault kan ook worden gebruikt om certificaten voor al uw resources te beheren. In dit artikel leert u het volgende:

  • Maak een Azure Key Vault.
  • Configureer uw Key Vault-machtigingen.
  • Maak een nieuwe serviceverbinding.
  • Query's uitvoeren op geheimen uit uw Azure-pijplijn.

Vereisten

Een Azure Key Vault maken

Notitie

Azure Key Vaults die gebruikmaken van op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) worden niet ondersteund.

  1. Ga naar Azure Portal.

  2. Selecteer Een resource maken in het linkernavigatiedeelvenster.

    Een schermopname die laat zien hoe u een nieuwe resource maakt in Azure Portal.

  3. Zoek naar Key Vault en druk op Enter.

    Een schermopname van het zoeken naar Azure Key Vault in Azure Portal.

  4. Selecteer Maken om een nieuwe Azure Key Vault te maken.

    Een schermopname die laat zien hoe u een nieuwe Azure Key Vault maakt in Azure Portal.

  5. Selecteer uw abonnement en voeg vervolgens een nieuwe resourcegroep toe. Voer een sleutelkluisnaam in en selecteer een regio en een prijscategorie. Selecteer Beoordelen en maken wanneer u klaar bent.

    Een schermopname van de stappen voor het maken van een nieuwe sleutelkluis in Azure Portal.

  6. Selecteer Naar de resource gaan wanneer de implementatie van uw nieuwe resource is voltooid.

    Een schermopname die laat zien hoe u naar uw resource navigeert in Azure Portal.

Een service-principal maken

In deze stap maken we een nieuwe service-principal in Azure, zodat we onze Azure Key Vault kunnen opvragen vanuit Azure Pipelines.

  1. Ga naar Azure Portal.

  2. Selecteer in de menubalk het >pictogram _ om de Cloud Shell te openen.

  3. Selecteer PowerShell of laat deze staan als Bash op basis van uw voorkeur.

  4. Voer de volgende opdracht uit om een nieuwe service-principal te maken:

    az ad sp create-for-rbac --name YOUR_SERVICE_PRINCIPAL_NAME
    
  5. De uitvoer moet overeenkomen met het onderstaande voorbeeld. Zorg ervoor dat u de uitvoer van uw opdracht kopieert, omdat u deze nodig hebt om de serviceverbinding in de volgende stap te maken.

    {
      "appId": "p951q3e2-8e5r-z697-e9q52aviu8a2",
      "displayName": "MyServicePrincipal",
      "password": "***********************************",
      "tenant": "85wes2u6-63sh-95zx-2as3-qw58wex269df"
    }
    

Key Vault-toegangsmachtigingen configureren

  1. Ga naar Azure Portal.

  2. Selecteer de sleutelkluis die u in de vorige stap hebt gemaakt.

  3. Selecteer Toegangsbeleid.

    Een schermopname die laat zien hoe u naar uw toegangsbeleid voor de sleutelkluis navigeert in Azure Portal.

  4. Selecteer Toegangsbeleid toevoegen om een nieuw beleid toe te voegen.

  5. Voeg machtigingen voor ophalen en weergeven toe aan geheime machtigingen.

    Een schermopname die laat zien hoe u machtigingen voor ophalen en weergeven toevoegt aan uw sleutelkluis in Azure Portal.

  6. Selecteer onder Principal selecteren om een service-principal toe te voegen en kies de principal die u eerder hebt gemaakt.

  7. Kies Opslaan wanneer u klaar bent.

Een nieuwe serviceverbinding maken

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer tandwielpictogram Project-instellingen en selecteer vervolgens Serviceverbindingen.

  3. Als u een serviceverbinding voor de eerste keer in uw project instelt, selecteert u Serviceverbinding maken. Als u eerder serviceverbindingen hebt gemaakt, selecteert u Nieuwe serviceverbinding.

  4. Selecteer Azure Resource Manager en selecteer vervolgens Volgende.

  5. Selecteer Service-principal (handmatig) en selecteer vervolgens Volgende.

  6. Selecteer Abonnement voor het bereikniveau en vul de vereiste velden in met informatie uit de eerder gemaakte service-principal. Selecteer Controleren wanneer u klaar bent:

    • Service-principal-id: uw service-principal-appId.
    • Sleutel van service-principal: uw wachtwoord voor de service-principal.
    • Tenant-id: uw service-principaltenant.
  7. Geef een naam op voor uw serviceverbinding en controleer of u het selectievakje Toegang verlenen aan alle pijplijnen inschakelt.

  8. Selecteer Controleren en opslaan wanneer u klaar bent.

    Een schermopname die laat zien hoe u een nieuwe handmatige service-principal-serviceverbinding maakt.

Geheimen in uw pijplijn opvragen en gebruiken

Met behulp van de Azure Key Vault-taak kunnen we de waarde van ons geheim ophalen en gebruiken in volgende taken in onze pijplijn. Houd er rekening mee dat geheimen expliciet moeten worden toegewezen aan een env-variabele, zoals wordt weergegeven in het onderstaande voorbeeld.

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: AzureKeyVault@1
  inputs:
    azureSubscription: 'repo-kv-demo'                    ## YOUR_SERVICE_CONNECTION_NAME
    KeyVaultName: 'kv-demo-repo'                         ## YOUR_KEY_VAULT_NAME
    SecretsFilter: 'secretDemo'                          ## YOUR_SECRET_NAME. Default value: *
    RunAsPreJob: false                                   ## Make the secret(s) available to the whole job

- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '**/*.csproj'

- task: DotNetCoreCLI@2
  inputs:
    command: 'run'
    projects: '**/*.csproj'
  env:
    mySecret: $(secretDemo)

- bash: |
    echo "Secret Found! $MY_MAPPED_ENV_VAR"        
  env:
    MY_MAPPED_ENV_VAR: $(mySecret)

De uitvoer van de laatste bash-opdracht moet er als volgt uitzien:

Secret Found! ***

Notitie

Als u query's wilt uitvoeren op meerdere geheimen uit uw Azure Key Vault, gebruikt u het SecretsFilter argument om een door komma's gescheiden lijst met geheime namen door te geven: 'secret1, secret2'.