Azure Key Vault-geheimen gebruiken in Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Met Azure Key Vault kunnen ontwikkelaars veilig gevoelige informatie opslaan en beheren, zoals API-sleutels, referenties of certificaten. De Azure Key Vault-service ondersteunt twee typen containers: kluizen en beheerde HSM-pools (Hardware Security Module). Kluizen kunnen zowel met software als met HSM ondersteunde sleutels, geheimen en certificaten opslaan, terwijl beheerde HSM-pools uitsluitend ondersteuning bieden voor door HSM ondersteunde sleutels.
In deze zelfstudie leert u het volgende:
- Een Azure Key Vault maken met behulp van Azure CLI
- Een geheim toevoegen en toegang tot Azure Key Vault configureren
- Geheimen gebruiken in uw pijplijn
Vereisten
Een Azure DevOps-organisatie en een project. Maak een organisatie of een project als u dat nog niet hebt gedaan.
Een Azure-abonnement. Maak gratis een Azure-account als u er nog geen hebt.
De voorbeeldcode halen
Als u al uw eigen opslagplaats hebt, gaat u verder met de volgende stap. Anders importeert u de volgende voorbeeldopslagplaats in uw Azure-opslagplaats.
Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.
Selecteer Opslagplaatsen en selecteer Vervolgens Importeren. Voer de volgende OPSLAGPLAATS-URL in en selecteer Importeren.
https://github.com/MicrosoftDocs/pipelines-dotnet-core
Een Azure Key Vault maken
Meld u aan bij Azure Portal en selecteer vervolgens de knop Cloud Shell in de rechterbovenhoek.
Als u meer dan één Azure-abonnement hebt gekoppeld aan uw account, gebruikt u de onderstaande opdracht om een standaardabonnement op te geven. U kunt een
az account list
lijst met uw abonnementen genereren.az account set --subscription <YOUR_SUBSCRIPTION_NAME_OR_ID>
Stel uw standaard Azure-regio in. U kunt een
az account list-locations
lijst met beschikbare regio's genereren.az config set defaults.location=<YOUR_REGION>
Een nieuwe resourcegroep maken.
az group create --name <YOUR_RESOURCE_GROUP_NAME>
Maak een nieuwe Azure Key Vault.
az keyvault create \ --name <YOUR_KEY_VAULT_NAME> \ --resource-group <YOUR_RESOURCE_GROUP_NAME>
Maak een nieuw geheim in uw Azure-sleutelkluis.
az keyvault secret set \ --name <YOUR_SECRET_NAME> \ --value <YOUR_ACTUAL_SECRET> \ --vault-name <YOUR_KEY_VAULT_NAME>
Verificatie instellen
Een door de gebruiker toegewezen beheerde identiteit maken
Meld u aan bij Azure Portal en zoek vervolgens naar de service Beheerde identiteiten in de zoekbalk.
Selecteer Maken en vul de vereiste velden als volgt in:
- Abonnement: Selecteer uw abonnement in de vervolgkeuzelijst.
- Resourcegroep: Selecteer een bestaande resourcegroep of maak een nieuwe.
- Regio: Selecteer een regio in de vervolgkeuzelijst.
- Naam: voer een naam in voor uw door de gebruiker toegewezen beheerde identiteit.
Selecteer Beoordelen en maken wanneer u klaar bent.
Zodra de implementatie is voltooid, selecteert u Ga naar de resource en kopieert u vervolgens de waarden voor het abonnement en de client-id die u in de komende stappen wilt gebruiken.
Navigeer naar Instellingeneigenschappen> en kopieer de tenant-id-waarde van uw beheerde identiteit voor later gebruik.
Toegangsbeleid voor key vault instellen
Navigeer naar Azure Portal en gebruik de zoekbalk om de sleutelkluis te vinden die u eerder hebt gemaakt.
Selecteer Toegangsbeleid en selecteer Vervolgens Maken om een nieuw beleid toe te voegen.
Schakel onder Geheime machtigingen de selectievakjes Ophalen en Lijst in.
Selecteer Volgende en plak vervolgens de client-id van de beheerde identiteit die u eerder hebt gemaakt in de zoekbalk. Selecteer uw beheerde identiteit.
Selecteer Volgende en vervolgens nogmaals Volgende .
Controleer uw nieuwe beleidsregels en selecteer Vervolgens Maken wanneer u klaar bent.
Een serviceverbinding maken
Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.
Selecteer Serviceverbindingen voor Project-instellingen>en selecteer vervolgens Nieuwe serviceverbinding om een nieuwe serviceverbinding te maken.
Selecteer Azure Resource Manager en selecteer vervolgens Volgende.
Voor Identiteitstype selecteert u Beheerde identiteit in de vervolgkeuzelijst.
Vul voor stap 1: Details van beheerde identiteit de velden als volgt in:
Abonnement voor beheerde identiteit: selecteer het abonnement met uw beheerde identiteit.
Resourcegroep voor beheerde identiteit: selecteer de resourcegroep die als host fungeert voor uw beheerde identiteit.
Beheerde identiteit: selecteer uw beheerde identiteit in de vervolgkeuzelijst.
Vul voor stap 2: Azure Scope de velden als volgt in:
Bereikniveau voor serviceverbinding: Selecteer Abonnement.
Abonnement voor serviceverbinding: selecteer het abonnement waartoe uw beheerde identiteit toegang heeft.
Resourcegroep voor serviceverbinding: (optioneel) Geef op om de toegang tot een beheerde identiteit tot één resourcegroep te beperken.
Voor stap 3: Serviceverbindingsgegevens:
Serviceverbindingsnaam: geef een naam op voor uw serviceverbinding.
Naslaginformatie over servicebeheer: (optioneel) contextinformatie uit een ITSM-database.
Beschrijving: (Optioneel) Voeg een beschrijving toe.
Schakel in Beveiliging het selectievakje Toegang verlenen aan alle pijplijnen in om toe te staan dat alle pijplijnen deze serviceverbinding gebruiken. Als u deze optie niet selecteert, moet u handmatig toegang verlenen aan elke pijplijn die gebruikmaakt van deze serviceverbinding.
Selecteer Opslaan om de serviceverbinding te valideren en te maken.
Toegang tot sleutelkluisgeheimen vanuit uw pijplijn
Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.
Selecteer Pijplijnen en selecteer vervolgens Nieuwe pijplijn.
Selecteer Azure Repos Git (YAML) en selecteer vervolgens uw opslagplaats.
Selecteer de Starter-pijplijnsjabloon .
De standaardpijplijn bevat een script waarmee echoopdrachten worden uitgevoerd. Deze zijn niet nodig, zodat we ze kunnen verwijderen.
Voeg de AzureKeyVault-taak toe, waarbij u de tijdelijke aanduidingen vervangt door de naam van de serviceverbinding die u eerder hebt gemaakt en de naam van uw sleutelkluis. Uw YAML-bestand moet er ongeveer uitzien als het volgende codefragment:
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 displayName: Azure Key Vault inputs: azureSubscription: 'SERVICE_CONNECTION_NAME' KeyVaultName: 'KEY_VAULT_NAME' SecretsFilter: '*' RunAsPreJob: false
Laten we de volgende taken toevoegen om ons geheim te kopiëren en te publiceren. Dit voorbeeld is alleen bedoeld voor demonstratiedoeleinden en mag niet worden geïmplementeerd in een productieomgeving.
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 displayName: Azure Key Vault inputs: azureSubscription: 'SERVICE_CONNECTION_NAME' KeyVaultName: 'KEY_VAULT_NAME' SecretsFilter: '*' RunAsPreJob: false - task: CmdLine@2 displayName: Create file inputs: script: 'echo $(SECRET_NAME) > secret.txt' - task: CopyFiles@2 displayName: Copy file inputs: Contents: secret.txt targetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 displayName: Publish Artifact inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop' publishLocation: 'Container'
Selecteer Opslaan en uitvoeren en selecteer deze vervolgens nogmaals om uw wijzigingen door te voeren en de pijplijn te activeren. Mogelijk wordt u gevraagd om de pijplijntoegang tot Azure-resources toe te staan, als u hierom wordt gevraagd Toestaan te selecteren. U hoeft uw pijplijn slechts eenmaal goed te keuren.
Selecteer de CmdLine-taak om de logboeken weer te geven.
Zodra de pijplijnuitvoering is voltooid, gaat u terug naar het pijplijnoverzicht en selecteert u het gepubliceerde artefact.
Selecteer drop>secret.txt om het te downloaden.
Open het tekstbestand dat u zojuist hebt gedownload. Het tekstbestand moet het geheim van uw Azure-sleutelkluis bevatten.
Waarschuwing
Deze zelfstudie is alleen bedoeld voor educatieve doeleinden. Zie Geheimen beheren in uw server-apps met Azure Key Vault voor aanbevolen beveiligingsprocedures en hoe u veilig met geheimen kunt werken.
Resources opschonen
Volg de onderstaande stappen om de resources te verwijderen die u hebt gemaakt:
Als u een nieuwe organisatie hebt gemaakt om uw project te hosten, raadpleegt u hoe u uw organisatie verwijdert, anders verwijdert u uw project.
Alle Azure-resources die tijdens deze zelfstudie zijn gemaakt, worden gehost onder één resourcegroep. Voer de volgende opdracht uit om uw resourcegroep en alle bijbehorende resources te verwijderen.
az group delete --name <YOUR_RESOURCE_GROUP_NAME>
Veelgestelde vragen
V: Ik krijg de volgende foutmelding: "de gebruiker of groep heeft geen machtiging voor de lijst geheimen" wat moet ik doen?
A: Als er een fout optreedt die aangeeft dat de gebruiker of groep geen machtiging voor de geheimenlijst voor de sleutelkluis heeft, voert u de volgende opdrachten uit om uw toepassing toegang te geven tot de sleutel of het geheim in Azure Key Vault:
az account set --subscription <YOUR_SUBSCRIPTION_ID>
az login
$spnObjectId = az ad sp show --id <YOUR_SERVICE_PRINCIPAL_ID>
az keyvault set-policy --name <YOUR_KEY_VAULT_NAME> --object-id $spnObjectId --secret-permissions get list
Verwante artikelen:
- Pijplijnartefacten publiceren en downloaden
- Release artifacts en Artifact sources (Artefacten en artefactbronnen vrijgeven)
- Poorten en goedkeuringen gebruiken om de implementatie te beheren