Sdílet prostřednictvím


Konfigurace průběžných oprav ve službě Azure Container Registry

V tomto článku se dozvíte, jak nainstalovat, povolit a nakonfigurovat průběžné opravy. Průběžné opravy, pokud jsou povolené pro registr kontejnerů, automaticky rozpozná a opraví ohrožení zabezpečení na úrovni operačního systému pro image kontejnerů.

Požadavky

  • Můžete použít Azure Cloud Shell nebo místní instalaci Azure CLI s minimální verzí 2.15.0 nebo novější.
  • Máte existující skupinu prostředků, která obsahuje službu Azure Container Registry (ACR).
  • Máte službu Azure Container Registry s povolenými úlohami ACR (úlohy ACR se nepodporují na úrovni Free služby ACR).

Instalace pracovního postupu průběžných oprav

Spuštěním následujícího příkazu nainstalujte rozšíření rozhraní příkazového řádku:

    az extension add -n acrcssc

Povolení pracovního postupu průběžných oprav

  1. Přihlaste se k Azure CLI pomocí příkazu az login.
az login
  1. Přihlaste se k ACR.
az acr login -n <myRegistry>
  1. Spuštěním následujícího příkazu vytvořte soubor s názvem continuouspatching.json, který obsahuje JSON průběžné opravy. Název souboru JSON je flexibilní.
cat <<EOF > continuouspatching.json
{
    "version": "v1",
    "tag-convention" : "<incremental|floating>",
    "repositories": [{
        "repository": "<Repository Name>",
        "tags": ["<comma-separated-tags>"],   
        "enabled": <true|false>
    }] 
}
EOF

Schéma ingestuje konkrétní úložiště a značky ve formátu pole. Každá proměnná je definována zde:

  • version umožňuje týmu ACR sledovat, jakou verzi schématu používáte. Tuto proměnnou neměňte, pokud nemáte pokyn.

  • tag-convention je volitelné pole. Povolené hodnoty jsou "přírůstkové" nebo "plovoucí" – další informace najdete v klíčových konceptech kontinuálního záplatování.

  • repositories je pole, které se skládá z podrobných informací o úložišti a značkách.

    • repository odkazuje na název úložiště.
    • tags je pole značek oddělených čárkami. Zástupný znak * lze použít k označení všech značek v daném úložišti.
    • enabled je logická hodnota true nebo false určující, jestli je zadané úložiště povolené nebo ne.

Následující podrobnosti obsahují příklad konfigurace pro zákazníka, který chce opravit všechny značky (použijte symbol *) v úložišti pythona opravit konkrétně značky jammy-20240111 a jammy-20240125 značky v úložišti ubuntu.

Příklad JSON:

{
"version": "v1",
"tag-convention" : "incremental",
"repositories": [{
        "repository": "python",
        "tags": ["*"],
        "enabled": true
    },
    {
        "repository": "ubuntu",
        "tags": ["jammy-20240111", "jammy-20240125"],
        "enabled": true, 
    }]
}
  1. Po vytvoření konfiguračního souboru se doporučuje spustit suché spuštění a ověřit, jestli jsou požadované artefakty vybrány kritérii JSON. Suchý běh vyžaduje parametr s názvem schedule, který určuje, jak často běží nepřetržitý opravovací cyklus. Příznak plánu se měří ve dnech, a to s minimální hodnotou jednoho dne a maximální hodnotou 30 dnů. Pokud například chcete, aby se obrázek opravoval každý den, zadali byste plán jako 1dnebo 1 den. Pokud chcete týdenní opravu (jednou týdně), vyplňte plán jako 7d nebo na 7 dní.

Schéma příkazů:

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

Příkladový příkaz:

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

Příznak --dry-run zobrazí výstup všech zadaných artefaktů konfigurací souboru JSON. Zákazníci můžou ověřit, že jsou vybrané správné artefakty. S ukázkovou konfigurací Ubuntu by se měly jako výstup zobrazit následující výsledky.

Ubuntu: jammy-20240111
Ubuntu: jammy-20240125

Příkaz nápovědy k zobrazení všech požadovaných nebo nepovinných příznaků:

az acr supply-chain workflow create --help
  1. Jakmile budete spokojeni s výsledky suchého spuštění, spusťte create příkaz znovu bez příznaku --dry-run a oficiálně vytvořte pracovní postup průběžné opravy.

Poznámka:

Parametr --schedule se řídí násobitelem s pevným dnem počínaje dnem 1 v měsíci. To znamená:

  • Pokud zadáte --schedule 7d a spustíte příkaz třetího, další naplánované spuštění bude sedmého – protože 7 je první násobek 7 (dnů) po třetím, počítaje od prvního dne v měsíci.
  • Pokud --schedule je 3d a dnes je 7. den, pak další naplánované spuštění přistane na 9. – protože 9 je další násobek 3, který následuje po 7.
  • Pokud přidáte příznak --run-immediately, aktivujete okamžité spuštění opravy. Následující naplánované spuštění bude stále zarovnané k nejbližšímu násobku dní od prvního dne v měsíci, na základě vaší --schedule hodnoty.
  • Čítač plánu se resetuje každý měsíc. Bez ohledu na určený plán se pracovní postup spustí na prvním z každého měsíce a pak se bude řídit zadanou hodnotou plánu po zbytek měsíce. Pokud moje opravy běží 28. ledna a můj plán je 7d, bude moje další oprava spuštěna nejdříve v únoru, pak osmé a pokračovat po 7 dnech.

Schéma příkazů:

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

Příkladový příkaz:

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

Po úspěšném příkazu (bez ohledu na to, jestli zahrnete --run-immediately) byste měli vidět:

  • Úspěšná zpráva potvrzuje, že úkoly vašeho pracovního postupu byly zařazeny do fronty.

  • Výstupní parametr označující, kdy je naplánované další spuštění pracovního postupu, takže můžete sledovat, kdy se opravy budou opakovat.

Příkaz nápovědy pro všechny povinné nebo volitelné parametry.

az acr supply-chain workflow create --help

Zobrazení úloh pracovního postupu pomocí webu Azure Portal

  1. Jakmile bude pracovní postup úspěšný, přejděte na web Azure Portal a zobrazte spuštěné úlohy. Vyberte Služby –> Úložiště a měli byste vidět nové úložiště s názvem csscpolicies/patchpolicy. Toto úložiště hostuje artefakt konfigurace JSON, na který se průběžně odkazuje pro průběžné opravy.

Snímek obrazovky znázorňující úložiště, které je hostitelem artefaktu konfigurace pro průběžné opravy

  1. Dále vyberte "Úkoly" v části "Služby" – měly by se zobrazit tři nové úkoly:

Snímek obrazovky znázorňující úlohy vytvořené pro průběžné opravy

Úkoly:

  • cssc-trigger-workflow – tato úloha zkontroluje konfigurační soubor a zavolá úlohu kontroly na každém příslušném obrázku.
  • cssc-scan-image – tato úloha skenuje obraz pro zranitelnosti operačního systému. Tato úloha aktivuje úlohu oprav pouze v případě, že byly nalezeny chyby zabezpečení operačního systému.
  • cssc-patch-image – tato úloha opraví image. Tyto úlohy fungují ve spojení s prováděním pracovního postupu průběžných oprav.
  1. Chcete-li zobrazit konkrétní spuštění úloh, můžete v zobrazení „Úkoly“ také vybrat možnost „Spuštění“. Tady můžete zobrazit informace o stavu, jestli úloha proběhla úspěšně nebo selhala, a zobrazit protokol ladění.

Snímek obrazovky znázorňující spuštění úloh pro průběžné opravy

Zobrazení úloh pracovního postupu pomocí rozhraní příkazového řádku

Můžete také spustit následující příkaz rozhraní příkazového řádku, který zobrazí další podrobnosti o jednotlivých úlohách a obecném pracovním postupu. Výstup příkazu:

  • Rozvrh
  • Datum vytvoření
  • Systémová data, jako je datum poslední změny, kdo atd.

Schéma příkazů:

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

Příkladový příkaz:

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

Příkaz nápovědy pro všechny povinné nebo volitelné příznaky:

az acr supply-chain workflow show --help

Aktualizace pracovního postupu průběžných oprav

Ve scénářích, ve kterých chcete provádět úpravy pracovního postupu průběžných oprav, je příkaz update nejjednodušším způsobem. Můžete aktualizovat svůj rozvrh nebo schéma konfigurace JSON přímo pomocí příkazu update CLI.

Schéma příkazů:

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

Příkladový příkaz:

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

Příkaz nápovědy pro všechny povinné nebo volitelné příznaky:

az acr supply-chain workflow update --help

Pokud chcete plán aktualizovat, spusťte předchozí příkaz s novým vstupem pro plán. Pokud chcete aktualizovat konfiguraci JSON, doporučujeme provést změny v souboru, spustit suchý běh a pak spustit příkaz update.

Odstranění workflowu pro průběžné opravy

Pokud chcete odstranit pracovní postup průběžných oprav, spusťte následující příkaz rozhraní příkazového řádku.

Schéma příkazů:

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

Příkladový příkaz:

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

Příkaz nápovědy pro všechny povinné nebo volitelné příznaky:

az acr supply-chain workflow delete --help

Po úspěšném odstranění pracovního postupu se automaticky odstraní úložiště csscpolicies/patchpolicy. Odstraní se také tři úlohy, které spouští váš pracovní postup, spolu s aktuálně zařazenými spuštěními ve frontě.