Share via


Skydda hemligheter i Azure Pipelines

Den här artikeln innehåller metodtips för att skydda hemligheter i Azure Pipelines. En hemlighet är allt som du vill kontrollera åtkomsten till, till exempel API-nycklar, lösenord, certifikat eller kryptografiska nycklar.

Azure Pipelines genererar inte hemliga värden. Du kan dock behöva lägga till en hemlighet i en pipeline för att lagra känsliga data som en API-nyckel. Mer information om hur du ställer in hemliga variabler finns i Ange hemliga variabler.

Använd inte hemligheter om en annan metod är tillgänglig

Den bästa metoden för att skydda en hemlighet är att inte ha en hemlighet i första hand. Kontrollera om din pipeline kan använda en annan metod än att använda en hemlighet för att utföra en uppgift.

Använda hemliga variabler

Känsliga värden ska aldrig lagras som klartext i en Azure Pipelines -.yml-fil .

Hemliga variabler kan användas för privat information som lösenord, ID:t och andra identifierande data som du inte vill ska exponeras i en pipeline. Det rekommenderade sättet att ange hemliga variabler är med Azure Key Vault. Du kan också ange hemliga variabler i användargränssnittet eller i en variabelgrupp. Det rekommenderas inte att du använder ett loggningskommando för att ange en hemlig variabel. När du anger en hemlighet med ett loggningskommando kan alla som har åtkomst till din pipeline också se hemligheten.

Hemliga variabler krypteras och kan användas i pipelines utan att exponera deras värden. Även om deras värden inte exponeras, upprepa aldrig hemligheter som utdata och skicka inte hemligheter på kommandoraden. I stället föreslår vi att du mappar dina hemligheter till miljövariabler.

När du skapar en hemlighet följer du riktlinjerna för variabel namngivning och ser till att ditt hemliga namn inte avslöjar känslig information.

Begränsa åtkomsten till hemliga variabler

Om du vill begränsa åtkomsten till hemligheter i Azure DevOps kan du:

  • Lagra dina hemligheter i Azure Key Vault. Med Azure Key Vault kan du sedan använda Azures rollbaserade åtkomstkontrollmodell för att begränsa åtkomsten till en hemlighet eller grupp med hemligheter.
  • Ange hemliga variabler i användargränssnittet för en pipeline. Hemliga variabler som anges i användargränssnittet för pipelineinställningar för en pipeline begränsas till pipelinen där de anges. Därför kan du ha hemligheter som bara är synliga för användare med åtkomst till pipelinen.
  • Ange hemligheter i en variabelgrupp. Variabelgrupper följer bibliotekssäkerhetsmodellen. Du kan styra vem som kan definiera nya objekt i ett bibliotek och vem som kan använda ett befintligt objekt.

Skriv inte hemligheter till loggar

Azure Pipelines försöker rensa hemligheter från loggar där det är möjligt. Den här filtreringen är på bästa sätt och kan inte fånga alla sätt som hemligheter kan läcka. Undvik att upprepa hemligheter för konsolen, använda dem i kommandoradsparametrar eller logga dem till filer. Till exempel utdatainformation för vissa Azure CLI-kommandon som du måste skydda. Om du anropar Azure CLI från din pipeline använder du utdataformatet Ingen och om du behöver hämta en hemlighet från ett Azure CLI-anrop använder du inget utdataformat och hämtar säkerhetsinformation till en hemlig variabel.

Använd inte strukturerade data som hemligheter

Strukturerade data kan orsaka att hemlig redigering i loggar misslyckas, eftersom redigering till stor del är beroende av att hitta en exakt matchning för det specifika hemliga värdet. Använd till exempel inte en blob med JSON, XML eller YAML (eller liknande) för att kapsla in ett hemligt värde, inklusive kontrolltecken som vagnretur (\r) och radmatning (\n), eftersom detta avsevärt minskar sannolikheten för att hemligheterna redigeras korrekt. Skapa i stället enskilda hemligheter för varje känsligt värde.

Granska hur hemligheter hanteras

Granska hur hemligheter används för att säkerställa att de hanteras som förväntat. Du kan göra detta genom att granska källkoden för lagringsplatsen som är värd för pipelinen och kontrollera alla uppgifter som används i pipelinen. Kontrollera till exempel att de inte skickas till oavsiktliga värdar eller att de uttryckligen skrivs ut till loggutdata.

Visa körningsloggarna för pipelinen när du har testat giltiga/ogiltiga indata och kontrollera att hemligheterna har redigerats korrekt eller inte visas. Det är inte alltid uppenbart hur ett kommando eller verktyg som du anropar genererar fel, och hemligheter kan senare hamna i felloggar. Azure Pipelines försöker rensa hemligheter från loggar där det är möjligt. Den här filtreringen är på bästa sätt och kan inte fånga alla sätt som hemligheter kan läcka. Därför är det bra att manuellt granska pipelineloggarna efter att ha testat giltiga och ogiltiga indata.

Granska och rotera hemligheter

Granska regelbundet de registrerade hemligheter som används av dina pipelines för att bekräfta att de fortfarande krävs och ta bort dem som inte längre behövs.

Rotera hemligheter regelbundet för att minska tidsperioden då en komprometterad hemlighet är giltig.

Typer av hemligheter som används av pipelines kan vara:

Nästa steg