Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Azure Key Vault är en molntjänst som hjälper utvecklare att lagra och hantera känslig information på ett säkert sätt, till exempel API-nycklar, autentiseringsuppgifter och certifikat. Key Vault stöder två typer av containrar: valv och HSM-pooler (Managed Hardware Security Module). Valv kan lagra både programvarustödda och HSM-stödda nycklar, hemliga data och certifikat. Hanterade HSM-pooler stöder endast HSM-backade nycklar.
I den här artikeln får du lära dig hur du skapar ett nyckelvalv, lägger till en hemlighet, konfigurerar åtkomstprinciper och sedan använder hemligheten i Azure-pipelines. I denna handledning använder vi ett nyckelvalv med åtkomst till offentliga nätverk. Om du behöver komma åt ett privat nyckelvalv från pipelinen, se Komma åt ett privat nyckelvalv från din pipeline. Om du vill länka Key Vault hemligheter till variabelgrupper kan du läsa Länka en variabelgrupp till hemligheter i Azure Key Vault.
Förutsättningar
| Kategori | Kravspecifikation |
|---|---|
| Azure DevOps | – En Azure DevOps-organisation. – Ett Azure DevOps-projekt. |
| Blått | En prenumeration för Azure. |
Hämta koden
Om du inte har ett eget projekt importerar du följande exempellagringsplats till din Azure lagringsplats:
Logga in på din Azure DevOps-organisation och gå sedan till projektet.
Välj Lagringsplatser och välj sedan Importera. Ange följande lagringsplats-URL och välj sedan Importera.
https://github.com/MicrosoftDocs/pipelines-dotnet-core
Skapa ett nyckelvalv
Följ dessa steg för att skapa ett nytt nyckelvalv i Azure med hjälp av Azure CLI:
Gå till Azure-portalen och välj sedan Azure Cloud Shell i det övre högra hörnet.
Om ditt konto är associerat med flera Azure prenumerationer anger du din standardprenumeration.
az account set --subscription <YOUR_SUBSCRIPTION_NAME_OR_ID>Ange en standardregion för Azure. Om du vill se en lista över tillgängliga regioner kör du
az account list-locations.az config set defaults.location=<YOUR_REGION>Skapa en ny resursgrupp.
az group create --name <YOUR_RESOURCE_GROUP_NAME>Skapa ett nytt nyckelvalv.
az keyvault create \ --name <YOUR_KEY_VAULT_NAME> \ --resource-group <YOUR_RESOURCE_GROUP_NAME>Lägg till en hemlighet i ditt nyckelvalv.
az keyvault secret set \ --name <YOUR_SECRET_NAME> \ --value <YOUR_ACTUAL_SECRET> \ --vault-name <YOUR_KEY_VAULT_NAME>
Konfigurera autentisering
När du har skapat ditt nyckelvalv är nästa steg att konfigurera autentisering. Välj Hanterad identitet eller tjänstens huvudnamn och följ anvisningarna för att konfigurera autentisering.
Skapa en användartilldelad hanterad identitet
Gå till Azure-portalen och sök sedan efter Hanterade identiteter i sökfältet.
Välj Skapa och ange följande information:
- Prenumeration: Välj din Azure-prenumeration på den nedrullningsbara menyn.
- Resursgrupp: Välj en befintlig resursgrupp eller skapa en ny.
- Region: Välj den region där den hanterade identiteten skapas.
- Namn: Ange ett namn för den användartilldelade hanterade identiteten.
Välj Granska + skapa och välj sedan Skapa för att starta distributionen.
När distributionen är klar väljer du Gå till resurs och kopierar värdena för prenumerations-ID och klient-ID . Du behöver dessa värden i senare steg.
Under Inställningar väljer du Egenskaper och kopierar den hanterade identitetens klient-ID-värde för senare användning.
Konfigurera åtkomstprinciper för key vault
Gå till Azure-portalen och använd sökfältet för att hitta nyckelvalvet som du skapade tidigare.
Välj Åtkomstprinciper och välj sedan Skapa för att lägga till en ny princip.
Under Hemliga behörigheter markerar du kryssrutorna Hämta och Lista .
Klicka på Nästa. Klistra in klient-ID för den hanterade identitet som du skapade tidigare i sökfältet och välj sedan den hanterade identiteten.
Välj Nästa och Nästa igen.
Granska informationen om åtkomstprincipen och välj sedan Skapa för att tillämpa principen.
Skapa en tjänstanslutning
Logga in på Azure DevOps och gå sedan till projektet.
Välj Projektinställningar>Tjänstanslutningar>Ny tjänstanslutning.
Välj Azure Resource Manager och välj sedan Nästa.
Som Identitetstyp väljer du Hanterad identitet.
Under Steg 1: Hanterad identitetsinformation anger du följande information:
- Prenumeration för hanterad identitet: Välj den prenumeration som innehåller din hanterade identitet.
- Resursgrupp för hanterad identitet: Välj den resursgrupp som är värd för din hanterade identitet.
- Hanterad identitet: Välj din hanterade identitet i listrutan.
För steg 2: Azure-omfång anger du följande information:
- Omfångsnivå för tjänstanslutning: Välj Prenumeration.
- Prenumeration för tjänstanslutning: Välj den prenumeration som den hanterade identiteten har åtkomst till.
- Resursgrupp för tjänstanslutning: (Valfritt) Ange en resursgrupp för att begränsa den hanterade identitetens åtkomst till en resursgrupp.
För steg 3: Information om tjänstanslutning anger du följande information:
- Tjänstanslutningsnamn: Ange ett namn för tjänstanslutningen.
- Referens för tjänsthantering: (Valfritt) Inkludera kontextinformation från en ITSM-databas.
- Beskrivning: (Valfritt) Ange en beskrivning.
Under Säkerhet tillåter alternativet Bevilja åtkomstbehörighet till alla pipelines att alla pipelines använder den här tjänstanslutningen. Vi rekommenderar inte det här alternativet. Auktorisera i stället varje pipeline individuellt för att använda tjänstanslutningen.
Välj Spara för att verifiera och skapa tjänstanslutningen.
Få åtkomst till key vault-hemligheter från din pipeline
Varning
Den här handledningen är endast för utbildningsändamål. Metodtips för säkerhet och vägledning om hur du arbetar med hemligheter på ett säkert sätt finns i Hantera hemligheter i dina serverappar med Azure Key Vault.
Logga in på Azure DevOps och gå sedan till projektet.
Välj Pipelines>Ny pipeline.
Välj Azure-lagringsplatser Git (YAML) och välj sedan din lagringsplats.
Välj mallen Startpipeline .
Standardpipelinen innehåller exempel på ekokommandon. Du behöver inte dessa kommandon, så du kan ta bort dem.
Lägg till Azure Key Vault-aktiviteten i din pipeline. Ersätt platshållarna med namnet på tjänstanslutningen som du skapade tidigare och ditt nyckelvalvnamn. YAML-filen bör se ut ungefär som i följande exempel:
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: falseLägg till följande steg för att kopiera och publicera den hemliga informationen. Det här exemplet är endast i demonstrationssyfte. Använd den inte i en produktionsmiljö.
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'Välj Spara och kör och välj det sedan en gång till för att checka in ändringarna och utlösa pipelinen. Om du uppmanas till det väljer du Tillåt för att bevilja pipelineåtkomst till Azure-resurser.
När pipelinen har startat väljer du aktiviteten CmdLine för att visa loggarna.
När pipelinekörningen är klar går du tillbaka till pipelinesammanfattningen och väljer den publicerade artefakten.
Välj släpp>secret.txt för att ladda ned filen.
Öppna den nedladdade textfilen. Den ska innehålla hemligheten som hämtats från ditt nyckelvalv.
Rensa resurser
Följ dessa steg om du vill ta bort de resurser som du skapade:
Om du har skapat en ny organisation som värd för projektet kan du läsa om hur du tar bort din organisation. Annars tar du bort projektet.
Alla Azure-resurser som skapas under den här självstudien finns i en enda resursgrupp. Kör följande kommando för att ta bort resursgruppen och alla dess resurser.
az group delete --name <YOUR_RESOURCE_GROUP_NAME>
Felsökning
Fel: "Användaren eller gruppen har inte behörighet för listan över hemligheter"
Det här felet uppstår när tjänstens huvudnamn eller hanterade identitet som används av din pipeline inte har behörighet att lista hemligheter i nyckelvalvet. Lös problemet genom att kontrollera att identiteten har behörigheten Hämta och lista för hemligheter. Kör följande kommandon för att bevilja nödvändiga behörigheter till ditt tjänsthuvudkonto:
az login
az account set --subscription <YOUR_SUBSCRIPTION_ID>
$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