Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você aprenderá a instalar, habilitar e configurar a aplicação de patch contínua. A correção contínua, quando habilitada para um registro de contêineres, detectará e corrigirá automaticamente vulnerabilidades no nível do sistema operacional para imagens de contêiner.
Pré-requisitos
- Você pode usar o Azure Cloud Shell ou uma instalação local da CLI do Azure com uma versão mínima de 2.15.0 ou posterior.
- Você tem um grupo de recursos existente com um Registro de Contêiner do Azure (ACR).
- Você tem um Registro de Contêiner do Azure com tarefas do ACR habilitadas (as Tarefas do ACR não têm suporte na camada gratuita do ACR).
Instalação do fluxo de trabalho de instalação contínua de patches
Execute o seguinte comando para instalar a extensão da CLI:
az extension add -n acrcssc
Habilitar o fluxo de trabalho de aplicação de patch contínua
- Faça logon na CLI do Azure com az login.
az login
- Faça logon no ACR.
az acr login -n <myRegistry>
- Execute o comando a seguir para criar um arquivo chamado
continuouspatching.json
, que contém o JSON de Aplicação de Patch Contínua. O nome do arquivo JSON é flexível.
cat <<EOF > continuouspatching.json
{
"version": "v1",
"tag-convention" : "<incremental|floating>",
"repositories": [{
"repository": "<Repository Name>",
"tags": ["<comma-separated-tags>"],
"enabled": <true|false>
}]
}
EOF
O esquema ingere repositórios e marcas específicos em um formato de matriz. Cada variável é definida aqui:
version
permite que a equipe do ACR rastreie em qual versão de esquema você está. Não altere essa variável, a menos que seja instruído.tag-convention
é um campo opcional. Os valores permitidos são "incrementais" ou "flutuantes" – consulte os principais conceitos de aplicação de patch contínua para obter mais informações.repositories
é uma matriz que contém informações detalhadas do repositório e da tagrepository
refere-se ao nome do repositóriotags
é uma matriz de marcas separadas por vírgulas. O curinga*
pode ser usado para significar todas as tags dentro desse repositório.enabled
é um valor booliano de true ou false determinando se o repositório especificado está habilitado ou não.
Os detalhes abaixo apresentam uma configuração de exemplo para um cliente que deseja corrigir todas as tags (use o símbolo *) dentro do repositório python
, e para corrigir especificamente as tags jammy-20240111
e jammy-20240125
no repositório ubuntu
.
Exemplo de JSON:
{
"version": "v1",
"tag-convention" : "incremental",
"repositories": [{
"repository": "python",
"tags": ["*"],
"enabled": true
},
{
"repository": "ubuntu",
"tags": ["jammy-20240111", "jammy-20240125"],
"enabled": true,
}]
}
- Depois de criar o arquivo de configuração, é recomendável executar uma execução seca para verificar se os artefatos pretendidos são selecionados pelos critérios JSON. A execução seca requer um parâmetro chamado
schedule
, que especifica a frequência com que o ciclo de aplicação de patch contínuo é executado. O sinalizador de agendamento é medido em dias, com um valor mínimo de um dia e um valor máximo de 30 dias. Por exemplo, se você quiser que uma imagem seja corrigida todos os dias, especifique o agendamento como1d
, ou 1 dia. Se você quiser um patch semanal (uma vez por semana), preencherá o agendamento como7d
, ou sete dias.
Esquema de comando:
az acr supply-chain workflow create -r <registryname> -g <resourcegroupname> -t continuouspatchv1 --config <JSONfilepath> --schedule <number of days> --dry-run
Exemplo de comando:
az acr supply-chain workflow create -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d --dry-run
A flag --dry-run
exibe todos os artefatos especificados pela configuração do arquivo JSON. Os clientes podem verificar se os artefatos certos estão selecionados. Com a configuração do ubuntu de exemplo, os seguintes resultados devem ser exibidos como saída.
Ubuntu: jammy-20240111
Ubuntu: jammy-20240125
Comando de ajuda para ver todos os sinalizadores obrigatórios/opcionais:
az acr supply-chain workflow create --help
- Depois de satisfeito com os resultados de execução seca, execute o comando
create
novamente sem o sinalizador--dry-run
para criar oficialmente o fluxo de trabalho de aplicação de patch contínuo.
Observação
O --schedule
parâmetro segue um multiplicador de dia fixo a partir do primeiro dia do mês. Isso significa:
- Se você especificar
--schedule 7d
e executar o comando no dia 3, a próxima execução agendada será no dia 7, pois 7 é o primeiro múltiplo de 7 (dias) após o terceiro, contando do primeiro dia do mês. - Se
--schedule
é 3d e hoje é dia 7, a próxima execução agendada será no dia 9, pois 9 é o próximo múltiplo de 3 que segue 7. - Se você adicionar o sinalizador
--run-immediately
, disparará uma execução imediata de patch. A execução agendada subsequente ainda será alinhada ao múltiplo de dia mais próximo do primeiro mês, com base no seu valor--schedule
. - O contador de agendamento é redefinido todos os meses. Independentemente do agendamento designado, seu fluxo de trabalho será executado no primeiro de cada mês e, em seguida, seguirá o horário agendado especificado para o restante do mês. Se minha aplicação de patch for executada em 28 de janeiro, e minha agenda for 7d, meu próximo patch será executado em fevereiro primeiro, depois em oitavo, e continuará após os sete dias.
Esquema de comando:
az acr supply-chain workflow create -r <registryname> -g <resourcegroupname> -t continuouspatchv1 --config <JSONfilename> --schedule <number of days> --run-immediately
Exemplo de comando:
az acr supply-chain workflow create -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d --run-immediately
Após um comando bem-sucedido (incluindo --run-immediately
ou não), você deverá ver:
Uma mensagem de êxito confirmando que suas tarefas de fluxo de trabalho estão na fila.
Um parâmetro de saída que indica quando a próxima execução do fluxo de trabalho está agendada, para que você possa acompanhar exatamente quando a aplicação de patch ocorrerá novamente.
Comando de ajuda para todos os sinalizadores obrigatórios/opcionais.
az acr supply-chain workflow create --help
Usar o portal do Azure para exibir tarefas de fluxo de trabalho
- Depois que o fluxo de trabalho for bem-sucedido, vá para o portal do Azure para exibir suas tarefas em execução. Selecione Serviços –> Repositórios e você deverá ver um novo repositório chamado
csscpolicies/patchpolicy
. Esse repositório hospeda o artefato de configuração JSON que é continuamente referenciado para correções contínuas.
- Em seguida, selecione "Tarefas" em "Serviços" – você deverá ver três novas tarefas:
Tarefas:
- cssc-trigger-workflow - essa tarefa examina o arquivo de configuração e executa a tarefa de escaneamento em cada imagem correspondente.
- cssc-scan-image - essa tarefa verifica a imagem em busca de vulnerabilidades do sistema operacional. Essa tarefa dispara a tarefa de aplicação de patch somente se vulnerabilidades do sistema operacional forem encontradas.
- cssc-patch-image - esta tarefa corrige a imagem. Essas tarefas funcionam em conjunto para executar o fluxo de trabalho de aplicação contínua de patches.
- Você também pode selecionar "Execuções" na aba "Tarefas" para ver execuções específicas de tarefas. Aqui você pode exibir informações de status sobre se a tarefa foi bem-sucedida ou falhou, juntamente com a exibição de um log de depuração.
Usar a CLI para exibir tarefas de fluxo de trabalho
Você também pode executar o comando show da CLI a seguir para ver mais detalhes sobre cada tarefa e o fluxo de trabalho geral. O comando exibe:
- Cronograma
- Data de criação
- Dados do sistema, como data da última modificação, por quem, etc.
Esquema de comando:
az acr supply-chain workflow show -r <registry> -g <resourceGroup> -t continuouspatchv1
Exemplo de comando:
az acr supply-chain workflow show -r myRegistry -g myResourceGroup -t continuouspatchv1
Comando de ajuda para todos os sinalizadores obrigatórios/opcionais:
az acr supply-chain workflow show --help
Atualizando o fluxo de trabalho de aplicação de patch contínua
Em cenários em que você deseja fazer alterações no fluxo de trabalho de patching contínuo, o comando de atualização é a maneira mais fácil de fazer isso. Você pode atualizar seu agendamento ou esquema de configuração JSON diretamente com o comando da CLI de atualização.
Esquema de comando:
az acr supply-chain workflow update -r <registry> -g <resourceGroup> -t continuouspatchv1 --config <JSONfilename> --schedule <number of days>
Exemplo de comando:
az acr supply-chain workflow update -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d
Comando de ajuda para todos os sinalizadores obrigatórios/opcionais:
az acr supply-chain workflow update --help
Para atualizar sua agenda, execute o comando anterior com uma nova entrada para agendamento. Para atualizar sua configuração JSON, recomendamos fazer alterações no arquivo, executar uma execução seca e, em seguida, executar o comando de atualização.
Excluindo o fluxo de trabalho de aplicação de patch contínua
Para excluir o fluxo de trabalho de aplicação contínua de patches, execute o comando da CLI a seguir.
Esquema de comando:
az acr supply-chain workflow delete -r <registry> -g <resourceGroup> -t continuouspatchv1
Exemplo de comando:
az acr supply-chain workflow delete -r myregistry -g myresourcegroup -t continuouspatchv1
Comando de ajuda para todos os sinalizadores obrigatórios/opcionais:
az acr supply-chain workflow delete --help
Depois que um fluxo de trabalho for excluído com êxito, o repositório "csscpolicies/patchpolicy" será excluído automaticamente. As três tarefas que executam seu fluxo de trabalho também serão excluídas, juntamente com todas as execuções na fila no momento.