Dela via


Konfigurera kontinuerlig korrigering i Azure Container Registry

I den här artikeln får du lära dig hur du installerar, aktiverar och konfigurerar kontinuerlig korrigering. Kontinuerlig patchning vid aktivering för ett containerregister identifierar och åtgärdar automatiskt säkerhetsrisker på operativsystemnivå för containerbilder.

Förutsättningar

  • Du kan använda Azure Cloud Shell eller en lokal installation av Azure CLI med en lägsta version av 2.15.0 eller senare.
  • Du har en befintlig resursgrupp med ett Azure Container Registry (ACR).
  • Du har ett Azure Container Registry med ACR Tasks aktiverat (ACR Tasks stöds inte på den kostnadsfria nivån för ACR).

Installera arbetsflödet för kontinuerlig uppdatering

Kör följande kommando för att installera CLI-tillägget:

    az extension add -n acrcssc

Aktivera arbetsflödet för kontinuerlig uppdatering

  1. Logga in på Azure CLI med az login.
az login
  1. Logga in på ACR.
az acr login -n <myRegistry>
  1. Kör följande kommando för att skapa en fil med namnet continuouspatching.json, som innehåller JSON för kontinuerlig uppdatering. JSON-filnamnet är flexibelt.
cat <<EOF > continuouspatching.json
{
    "version": "v1",
    "tag-convention" : "<incremental|floating>",
    "repositories": [{
        "repository": "<Repository Name>",
        "tags": ["<comma-separated-tags>"],   
        "enabled": <true|false>
    }] 
}
EOF

Schemat matar in specifika lagringsplatser och taggar i matrisformat. Varje variabel definieras här:

  • version gör att ACR-teamet kan spåra vilken schemaversion du är på. Ändra inte den här variabeln om du inte har instruerats att göra det.

  • tag-convention är ett valfritt fält. Tillåtna värden är "inkrementella" eller "flytande" – mer information finns i Viktiga begrepp för kontinuerlig korrigering .

  • repositories är en matris som består av detaljerad lagringsplats och tagginformation

    • repository refererar till lagringsplatsens namn
    • tags är en matris med taggar avgränsade med kommatecken. Jokertecknet * kan användas för att ange alla taggar i lagringsplatsen.
    • enabled är ett booleskt värde för sant eller falskt som avgör om den angivna lagringsplatsen är aktiverad eller inte.

Följande information är ett exempel på en konfiguration för en kund som vill korrigera alla taggar (använd *-symbolen) på lagringsplatsen pythonoch för att korrigera taggarna jammy-20240111 och jammy-20240125 på lagringsplatsen ubuntu.

JSON-exempel:

{
"version": "v1",
"tag-convention" : "incremental",
"repositories": [{
        "repository": "python",
        "tags": ["*"],
        "enabled": true
    },
    {
        "repository": "ubuntu",
        "tags": ["jammy-20240111", "jammy-20240125"],
        "enabled": true, 
    }]
}
  1. När du har skapat konfigurationsfilen rekommenderar vi att du kör en torr körning för att kontrollera att de avsedda artefakterna har valts av JSON-kriterierna. Den torra körningen kräver en parameter med namnet schedule, som anger hur ofta din kontinuerliga korrigeringscykel körs. Schemaflaggan mäts i dagar, med ett minsta värde på en dag och ett maximalt värde på 30 dagar. Om du till exempel vill att en bild ska korrigeras varje dag anger du schema som 1d, eller 1 dag. Om du vill ha en veckokorrigering (en gång i veckan) fyller du i schemat som 7d, eller 7 dagar.

Kommandoschema:

az acr supply-chain workflow create -r <registryname> -g <resourcegroupname> -t continuouspatchv1 --config <JSONfilepath> --schedule <number of days> --dry-run 

Exempelkommando:

az acr supply-chain workflow create -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d --dry-run   

Flaggan --dry-run matar ut alla angivna artefakter i JSON-filkonfigurationen. Kunder kan kontrollera att rätt artefakter har valts. Med Ubuntu-exempelkonfigurationen ska följande resultat visas som utdata.

Ubuntu: jammy-20240111
Ubuntu: jammy-20240125

Hjälpkommando för att se alla obligatoriska/valfria flaggor:

az acr supply-chain workflow create --help
  1. När du är nöjd med torrkörningsresultatet create kör du kommandot igen utan --dry-run flaggan för att officiellt skapa arbetsflödet för kontinuerlig korrigering.

Anmärkning

Parametern --schedule följer en multiplikator med fast dag som börjar från dag 1 i månaden. Detta innebär att:

  • Om du anger --schedule 7d och kör kommandot den 3: e, kommer nästa schemalagda körning att vara den 7: e eftersom 7 är den första multipeln av 7 (dagar) efter den 3: e, räknar från dag 1 i månaden.
  • Om --schedule är 3d och idag är den 7:e, så landar nästa schemalagda körning den 9:e - eftersom 9 är nästa multipel av 3 efter 7.
  • Om du lägger till flaggan --run-immediatelyutlöser du en omedelbar korrigeringskörning. Den efterföljande schemalagda körningen kommer fortfarande att anpassas till närmaste dagintervall från månadens första dag, baserat på ditt --schedule värde.
  • Schemaräknaren återställs varje månad. Oavsett det angivna schemat körs arbetsflödet den första varje månad och följer sedan det angivna schemavärdet för resten av månaden. Om min korrigering körs den 28 januari och mitt schema är på 7 dagar, kommer min nästa korrigering att köras den första februari, sedan den åttonde och fortsätta med 7 dagars mellanrum.

Kommandoschema:

az acr supply-chain workflow create -r <registryname> -g <resourcegroupname> -t continuouspatchv1 --config <JSONfilename> --schedule <number of days> --run-immediately

Exempelkommando:

az acr supply-chain workflow create -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d --run-immediately

Vid ett lyckat kommando (oavsett om du inkluderar --run-immediately) bör du se:

  • Ett bekräftelsemeddelande om att dina arbetsflödesuppgifter har placerats i kö.

  • En utdataparameter som anger när nästa körning av arbetsflödet schemaläggs, så att du kan spåra exakt när korrigeringen sker igen.

Hjälpkommando för alla obligatoriska/valfria flaggor.

az acr supply-chain workflow create --help

Använda Azure-portalen för att visa arbetsflödesuppgifter

  1. När arbetsflödet har slutförts går du till Azure-portalen för att se dina körande uppgifter. Välj Tjänster –> Lagringsplatser och du bör se en ny lagringsplats med namnet csscpolicies/patchpolicy. Den här lagringsplatsen är värd för JSON-konfigurationsartefakten som kontinuerligt refereras till för kontinuerlig korrigering.

Skärmbild som visar lagringsplatsen som är värd för konfigurationsartefakten för kontinuerlig korrigering.

  1. Välj sedan "Uppgifter" under "Tjänster" – du bör se tre nya uppgifter:

Skärmbild som visar de uppgifter som skapats för kontinuerlig korrigering.

Uppgifter:

  • cssc-trigger-workflow – den här uppgiften söker igenom konfigurationsfilen och anropar genomsökningsaktiviteten på varje bild.
  • cssc-scan-image – den här uppgiften söker igenom avbildningen efter säkerhetsproblem i operativsystemet. Den här uppgiften utlöser endast korrigeringsaktiviteten om operativsystemets säkerhetsrisker hittades.
  • cssc-patch-image – den här uppgiften korrigerar bilden. Dessa uppgifter fungerar tillsammans för att köra arbetsflödet för kontinuerlig korrigering.
  1. Du kan också välja "Körningar" i vyn Aktiviteter för att se specifika aktivitetskörningar. Här kan du visa statusinformation om uppgiften lyckades eller misslyckades, tillsammans med att visa en felsökningslogg.

Skärmbild som visar aktiviteter som körs för kontinuerlig korrigering.

Använda CLI för att visa arbetsflödesuppgifter

Du kan också köra följande CLI show-kommando för att se mer information om varje uppgift och det allmänna arbetsflödet. Kommandot utdata:

  • Schema
  • Skapad datum
  • Systemdata, till exempel senaste ändringsdatum, av vem osv.

Kommandoschema:

az acr supply-chain workflow show -r <registry> -g <resourceGroup> -t continuouspatchv1   

Exempelkommando:

az acr supply-chain workflow show -r myRegistry -g myResourceGroup -t continuouspatchv1 

Hjälpkommando för alla obligatoriska/valfria flaggor:

az acr supply-chain workflow show --help

Uppdatera arbetsflödet för kontinuerlig uppdatering

I scenarier där du vill göra ändringar i arbetsflödet för kontinuerlig korrigering är uppdateringskommandot det enklaste sättet att göra det. Du kan uppdatera schemat eller JSON-konfigurationsschemat med cli-kommandot update direkt.

Kommandoschema:

az acr supply-chain workflow update -r <registry> -g <resourceGroup> -t continuouspatchv1 --config <JSONfilename> --schedule <number of days>

Exempelkommando:

az acr supply-chain workflow update -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d

Hjälpkommando för alla obligatoriska/valfria flaggor:

az acr supply-chain workflow update --help

Om du vill uppdatera schemat kör du föregående kommando med en ny indata för schema. Om du vill uppdatera JSON-konfigurationen rekommenderar vi att du gör ändringar i filen, kör en torrkörning och sedan kör uppdateringskommandot.

Ta bort arbetsflödet för kontinuerlig uppdatering

Om du vill ta bort arbetsflödet för kontinuerlig uppdatering kör du följande CLI-kommando.

Kommandoschema:

az acr supply-chain workflow delete -r <registry> -g <resourceGroup> -t continuouspatchv1 

Exempelkommando:

az acr supply-chain workflow delete -r myregistry -g myresourcegroup -t continuouspatchv1

Hjälpkommando för alla obligatoriska/valfria flaggor:

az acr supply-chain workflow delete --help

När ett arbetsflöde har tagits bort tas lagringsplatsen "csscpolicies/patchpolicy" bort automatiskt. De tre processerna som kör ditt arbetsflöde kommer också att tas bort, tillsammans med alla för närvarande köade jobb.