EC2 Systems Manager - установка исправлений безопасности

Я пытаюсь использовать EC2 Systems Manager с окнами обслуживания просто для установки исправлений безопасности. Я не мог найти документ, который делает это. Кто-нибудь уже сделал это и может дать мне подсказку?

Я знаю, что AWS предоставляет Patch Manager для Windows.

1 ответ

Вы можете найти официальную документацию по началу работы с исправлениями в EC2 Systems Manager здесь: http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/systems-manager-patch.html

Здесь также есть пошаговое руководство, которое охватывает полный набор шагов для начала работы: http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/sysman-patch-walkthrough.html

Я добавил несколько конкретных примеров, связанных с вашими вопросами, с помощью интерфейса командной строки AWS и набора инструментов AWS для PowerShell. Конечно, вы также можете выполнять все эти действия в консоли AWS.

Установка исправлений безопасности

Для управления патчами, которые должны быть установлены, вы используете Patch Baseline. Базовая линия исправлений состоит из набора правил, которые определяют, какие исправления должны быть утверждены для развертывания и когда они должны быть утверждены, а также необязательный набор явно одобренных и отклоненных исправлений.

Создание базовой линии патча

В вашем случае, чтобы применить только исправления безопасности, вы можете создать Patch Baseline следующим образом:

AWS CLI

aws ssm create-patch-baseline --name "Only-Security-Patches"
  --approval-rules "PatchRules=[{PatchFilterGroup={PatchFilters=[{Key=CLASSIFICATION,Values=SecurityUpdates}]},ApproveAfterDays=3}]" 
  --description "Security updates for all versions of Windows"

AWS PowerShell

$rule = New-Object Amazon.SimpleSystemsManagement.Model.PatchRule
$rule.ApproveAfterDays = 3
$ruleFilters = New-Object Amazon.SimpleSystemsManagement.Model.PatchFilterGroup
$classificationFilter = New-Object Amazon.SimpleSystemsManagement.Model.PatchFilter
$classificationFilter.Key = "CLASSIFICATION"
$classificationFilter.Values.Add( "SecurityUpdates" )
$ruleFilters.PatchFilters.Add($classificationFilter)
$rule.PatchFilterGroup = $ruleFilters
New-SSMPatchBaseline 
  -Name "Only-Security-Patches" `
  -Description "Security updates for all versions of Windows" `
  -ApprovalRules_PatchRule $rule

Определение базовой линии патча по умолчанию

Вы контролируете, какую базовую линию патча вы хотите использовать для конкретного экземпляра EC2, пометив этот экземпляр с помощью Patch Group тег, устанавливая значение тега в название группы патчей по вашему выбору. После этого вы можете зарегистрировать группу патчей на базовом уровне патча. В этом примере вы также можете определить новую базовую линию исправления в качестве базовой линии исправления по умолчанию, которая будет использоваться для всех экземпляров, которые не помечены Patch Group тег:

AWS CLI

aws ssm register-default-patch-baseline --baseline-id <the id of the patch baseline created above>

* AWS PowerShell

Register-SSMDefaultPatchBaseline-BaselineId <the id of the patch baseline created above>

Патчинг вождения с использованием окна технического обслуживания

После того, как вы создали и настроили нужную базовую линию исправлений, вы можете использовать AWS-ApplyPatchBaseline Командный документ для исправления экземпляра. Если вы просто хотите протестировать исправления, вы можете использовать команду "Выполнить" для отправки команды вашему экземпляру, но если вы хотите автоматизировать ее, Windows Windows поддержки поможет вам.

Окно обслуживания определяет:

  • Какие экземпляры являются допустимыми целями для задач в окне обслуживания
  • Какие задачи должны быть выполнены на какие цели
  • Когда эти задачи должны быть выполнены

Регистрация экземпляров в качестве целей с помощью окна обслуживания является необязательной, и в приведенных ниже примерах я выбираю не требовать регистрации целей.

Создание окна обслуживания

Для целей этого примера давайте создадим окно обслуживания, которое запускается в 16:00 каждый вторник с продолжительностью 4 часа:

AWS CLI

aws ssm create-maintenance-window 
  --name "My-Tuesday-Maintenance-Window" 
  --schedule "cron(0 16 ? * TUE *)" 
  --duration 4 
  --cutoff 1
  --allow-unassociated-targets

* AWS PowerShell

New-SSMMaintenanceWindow `
  -Name "My-Tuesday-Maintenance-Window" `
  -Schedule "cron(0 16 ? * TUE *)" `
  -Duration 4 `
  -Cutoff 1 `
  -AllowUnassociatedTarget $true `

Регистрация задачи исправления

После создания окна обслуживания вы можете зарегистрировать в нем задачи, которые вы хотите запустить, в этом случае мы хотим запустить AWS-ApplyPatchBaseline команда.

Обратите внимание, что приведенные ниже команды предполагают, что вы выполнили шаги для определения роли IAM (здесь я назвал эту роль MW-Role), которую вы хотите использовать для Windows обслуживания, как описано здесь: http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/sysman-patch-walkthrough.html

AWS CLI

aws ssm register-task-with-maintenance-window 
  --window-id <the id of your maintenance window>
  --targets "Key=InstanceIds,Values=<comma-separated list of instance ids>" 
  --task-arn "AWS-ApplyPatchBaseline" 
  --service-role-arn "arn:aws:iam::<your account id>:role/MW-Role" 
  --task-type "RUN_COMMAND" 
  --max-concurrency 2 
  --max-errors 1 
  --priority 1 
  --task-parameters '{\"Operation\":{\"Values\":[\"Install\"]}}'

AWS PowerShell

$parameters = @{}
$parameterValues = new-object Amazon.SimpleSystemsManagement.Model.MaintenanceWindowTaskParameterValueExpression
$parameterValues.Values = @("Install")
$parameters.Add("Operation", $parameterValues)

Register-SSMTaskWithMaintenanceWindow `
  -WindowId <the id of your maintenance window> `
  -Target @{ Key="InstanceIds";Values="<comma-separated list of instance ids>" } `
  -TaskArn "AWS-ApplyPatchBaseline" `
  -ServiceRoleArn "arn:aws:iam::<your account id>:role/MW-Role" `
  -TaskType "RUN_COMMAND" `
  -MaxConcurrency 2 `
  -MaxErrors 1 `
  -Priority 1 `
  -TaskParameter $parameters `

Другие интересные особенности

Теперь, когда все настроено, вы можете увидеть историю выполнения окна обслуживания и состояние соответствия исправлений для исправляемых экземпляров.

Выполнение окна обслуживания

Вы можете использовать следующие команды, чтобы детализировать историю выполнения для вашего Windows обслуживания:

AWS CLI

AWS PowerShell

Информация о соответствии патча

После того, как ваши экземпляры были исправлены, вы можете получить для них информацию о соответствии исправлений.

AWS CLI

AWS PowerShell

Я надеюсь, что это поможет ответить на ваш вопрос, если нет, пожалуйста, дайте мне знать.

Другие вопросы по тегам