Delen via


Continue met het configureren van continue patching in Azure Container Registry

In dit artikel leert u hoe u continue patches installeert, inschakelt en configureert. Continu patchen wanneer ingeschakeld voor een containerregister zal beveiligingsproblemen op besturingssysteemniveau automatisch voor containerafbeeldingen detecteren en herstellen.

Vereiste voorwaarden

  • U kunt De Azure Cloud Shell of een lokale installatie van de Azure CLI gebruiken met minimaal versie 2.15.0 of hoger.
  • U hebt een bestaande resourcegroep met een Azure Container Registry (ACR).
  • U hebt een Azure Container Registry waarvoor ACR Tasks is ingeschakeld (ACR Tasks wordt niet ondersteund in de gratis laag van ACR).

De werkstroom voor continue patches installeren

Voer de volgende opdracht uit om de CLI-extensie te installeren:

    az extension add -n acrcssc

De werkstroom voor continue patches inschakelen

  1. Meld u aan bij Azure CLI met az login.
az login
  1. Meld u aan bij ACR.
az acr login -n <myRegistry>
  1. Voer de volgende opdracht uit om een bestand met de naam continuouspatching.jsonte maken, dat de JSON voor continue patches bevat. De JSON-bestandsnaam is flexibel.
cat <<EOF > continuouspatching.json
{
    "version": "v1",
    "tag-convention" : "<incremental|floating>",
    "repositories": [{
        "repository": "<Repository Name>",
        "tags": ["<comma-separated-tags>"],   
        "enabled": <true|false>
    }] 
}
EOF

Het schema neemt specifieke opslagplaatsen en tags op in een array-indeling. Elke variabele wordt hier gedefinieerd:

  • version hiermee kan het ACR-team bijhouden welke schemaversie u gebruikt. Wijzig deze variabele alleen als u hier instructies voor hebt gegeven.

  • tag-convention is een optioneel veld. Toegestane waarden zijn 'incrementeel' of 'zwevend'. Raadpleeg de belangrijkste concepten van continue patches voor meer informatie.

  • repositories is een matrix die gedetailleerde opslagplaats- en taggegevens bevat

    • repository verwijst naar de naam van de opslagplaats
    • tags is een matrix met tags, gescheiden door komma's. Het jokerteken * kan worden gebruikt om alle tags in die opslagplaats aan te duiden.
    • enabled is een Booleaanse waarde (waar of onwaar) die aangeeft of de opgegeven repository is ingeschakeld.

Hieronder vindt u een voorbeeldconfiguratie voor een klant die alle tags wil patchen (gebruik het symbool *) in de opslagplaats pythonen specifiek de jammy-20240111 tags in jammy-20240125 de opslagplaats ubuntuwilt patchen.

JSON-voorbeeld:

{
"version": "v1",
"tag-convention" : "incremental",
"repositories": [{
        "repository": "python",
        "tags": ["*"],
        "enabled": true
    },
    {
        "repository": "ubuntu",
        "tags": ["jammy-20240111", "jammy-20240125"],
        "enabled": true, 
    }]
}
  1. Nadat u uw configuratiebestand hebt gemaakt, is het raadzaam om een droge uitvoering uit te voeren om te controleren of de beoogde artefacten zijn geselecteerd door de JSON-criteria. Voor de dry run is een parameter vereist die wordt aangeroepen schedule, waarmee wordt aangegeven hoe vaak uw continue patchingcyclus wordt uitgevoerd. De planningsvlag wordt gemeten in dagen, met een minimumwaarde van één dag en een maximumwaarde van 30 dagen. Als u bijvoorbeeld wilt dat een afbeelding elke dag wordt gepatcht, geeft u een planning op als 1d, of 1 dag. Als u een wekelijkse patch (eenmaal per week) wilt, vult u het schema in als 7d, of 7 dagen.

Opdrachtschema:

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

Voorbeeldopdracht:

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

De --dry-run vlag voert alle opgegeven artefacten uit door de configuratie van het JSON-bestand. Klanten kunnen controleren of de juiste artefacten zijn geselecteerd. Met de ubuntu-voorbeeldconfiguratie moeten de volgende resultaten worden weergegeven als uitvoer.

Ubuntu: jammy-20240111
Ubuntu: jammy-20240125

Help-opdracht voor het weergeven van alle vereiste/optionele vlaggen:

az acr supply-chain workflow create --help
  1. Zodra u tevreden bent met de resultaten van de dry-run, voert u de create opdracht opnieuw uit zonder de --dry-run vlag om uw continue patchwerkstroom officieel te maken.

Opmerking

De --schedule parameter volgt een vermenigvuldiger met een vaste dag vanaf dag 1 van de maand. Dit betekent:

  • Als u --schedule 7d de opdracht opgeeft en uitvoert op de 3e, wordt de volgende geplande uitvoering uitgevoerd op de 7e, omdat 7 het eerste veelvoud is van 7 (dagen) na de 3e, tellend vanaf dag 1 van de maand.
  • Als --schedule 3d en vandaag de 7e is, komt de volgende geplande uitvoering op de 9e, omdat 9 het volgende veelvoud is van 3 dat volgt op 7.
  • Als u de vlag toevoegt --run-immediately, activeert u een onmiddellijke patchuitvoering. De volgende geplande uitvoering blijft uitgelijnd op het dichtstbijzijnde veelvoud van dagen vanaf de eerste van de maand, gebaseerd op uw --schedule waarde.
  • De schema teller wordt elke maand opnieuw ingesteld. Ongeacht het aangewezen schema wordt uw werkstroom uitgevoerd op de eerste van elke maand en volgt u vervolgens de opgegeven planningswaarde voor de rest van de maand. Als mijn patches op 28 januari worden uitgevoerd en mijn schema 7 dagen is, wordt mijn volgende patch uitgevoerd op 1 februari, vervolgens op de achtste en zo verder elke 7 dagen.

Opdrachtschema:

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

Voorbeeldopdracht:

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

Na een geslaagde opdracht (ongeacht of u --run-immediately opneemt), zou u het volgende moeten zien:

  • Er wordt een bericht weergegeven waarin wordt bevestigd dat uw werkstroomtaken in de wachtrij staan.

  • Een uitvoerparameter die aangeeft wanneer de volgende uitvoering van uw werkstroom is gepland, zodat u precies kunt bijhouden wanneer patches opnieuw worden uitgevoerd.

Help-opdracht voor alle vereiste/optionele vlaggen.

az acr supply-chain workflow create --help

Azure Portal gebruiken om werkstroomtaken weer te geven

  1. Zodra de workflow is gelukt, gaat u naar de Azure Portal om uw actieve taken weer te geven. Selecteer **Opslagplaatsen in het servicemenu onder Services. U ziet nu een nieuwe opslagplaats met de naam csscpolicies/patchpolicy. Deze opslagplaats fungeert als host voor het JSON-configuratieartefact waarnaar continu wordt verwezen voor continue patches.

  2. Selecteer vervolgens onder Servicesde optie Taken. U ziet nu drie nieuwe taken:

Schermopname van de taken die zijn gemaakt voor continue patches.

Taken:

  • cssc-trigger-workflow: deze taak scant het configuratiebestand en roept de scantaak aan op elke respectieve afbeelding.
  • cssc-scan-image: Deze taak scant de afbeelding op kwetsbaarheden van het besturingssysteem. Met deze taak wordt de patchtaak alleen geactiveerd als er beveiligingsproblemen met het besturingssysteem zijn gevonden.
  • cssc-patch-image : met deze taak wordt de installatiekopie gepatcht. Deze taken werken samen om uw werkstroom voor continue patching uit te voeren.
  1. U kunt ook op 'Uitvoeringen' binnen de weergave 'Taken' klikken om specifieke taakuitvoeringen weer te geven. Hier kunt u statusinformatie bekijken over of de taak is geslaagd of mislukt, samen met het weergeven van een foutopsporingslogboek.

Schermopname van taken die worden uitgevoerd voor continue patches.

CLI gebruiken om werkstroomtaken weer te geven

U kunt ook de volgende CLI-opdracht weergeven uitvoeren voor meer informatie over elke taak en de algemene werkstroom. De opdracht voert het volgende uit:

  • Schema
  • Aanmaakdatum
  • Systeemgegevens zoals de laatste wijzigingsdatum, door wie, enzovoort.

Opdrachtschema:

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

Voorbeeldopdracht:

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

Help-opdracht voor alle vereiste/optionele vlaggen:

az acr supply-chain workflow show --help

De werkstroom voor continue patches bijwerken

In scenario's waarin u wijzigingen wilt aanbrengen in uw werkstroom voor continue patches, is de updateopdracht de eenvoudigste manier om dit te doen. U kunt uw plannings- of JSON-configuratieschema rechtstreeks bijwerken met de OPDRACHT CLI bijwerken.

Opdrachtschema:

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

Voorbeeldopdracht:

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

Help-opdracht voor alle vereiste/optionele vlaggen:

az acr supply-chain workflow update --help

Als u uw planning wilt bijwerken, voert u de vorige opdracht uit met een nieuwe invoer voor de planning. Als u uw JSON-configuratie wilt bijwerken, raden we u aan om wijzigingen aan te brengen in het bestand, een droge uitvoering uit te voeren en vervolgens de updateopdracht uit te voeren.

De werkstroom voor continue patches verwijderen

Als u de werkstroom voor continue patches wilt verwijderen, voert u de volgende CLI-opdracht uit.

Opdrachtschema:

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

Voorbeeldopdracht:

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

Help-opdracht voor alle vereiste/optionele vlaggen:

az acr supply-chain workflow delete --help

Zodra een werkstroom is verwijderd, wordt de opslagplaats 'csscpolicies/patchpolicy' automatisch verwijderd. De drie taken die uw werkstroom uitvoeren worden verwijderd, samen met alle momenteel gequeueerde uitvoeringen.