Documento de comando do SSM para a aplicação de patches: AWS-RunPatchBaselineAssociation
Como oAWS-RunPatchBaseline
Documento,AWS-RunPatchBaselineAssociation
O executa operações de aplicação de patches em instâncias para atualizações relacionadas à segurança e outros tipos de atualizações. Você pode usar o documento AWS-RunPatchBaselineAssociation
para aplicar patches aos sistemas operacionais e aplicações.. (No Windows Server, o suporte a aplicações é limitado a atualizações de aplicações da Microsoft.)
Este documento oferece suporte a instâncias do Amazon Elastic Compute Cloud (Amazon EC2) para Linux,macOS, eWindows Server. Não há suporte para nós que não sejam do EC2 em um ambiente híbrido e multinuvem. O documento executará as ações adequadas a cada plataforma, invocando um módulo Python no Linux e nomacOSe um módulo do PowerShell em instâncias do Windows.
O AWS-RunPatchBaselineAssociation
, porém, difere do AWS-RunPatchBaseline
das seguintes maneiras:
-
O
AWS-RunPatchBaselineAssociation
deve ser usado principalmente com associações do State Manager criadas usando o Quick Setup, um recurso do AWS Systems Manager. Especificamente, quando você usar o tipo de configuração do Host Management do Quick Setup, se você escolher a opção Scan instances for missing patches daily (Verificar patches ausentes nas instâncias diariamente), o sistema usaráAWS-RunPatchBaselineAssociation
para a operação.Na maioria dos casos, no entanto, ao configurar suas próprias operações de patch, você deve escolher AWS-RunPatchBaseline ou AWS-RunPatchBaselineWithHooks, ao invés do
AWS-RunPatchBaselineAssociation
. -
Quando você usa o
AWS-RunPatchBaselineAssociation
, você pode especificar um key pair de tag noBaselineTags
campo de parâmetro. Se uma linha de base de patch personalizada na Conta da AWS compartilha essas tags, Patch Manager, um recurso do AWS Systems Manager, usa essa linha de base marcada quando ela é executada nas instâncias de destino em vez da linha de base de patch “padrão” especificada atualmente para o tipo de sistema operacional.Importante
Se você optar por usar
AWS-RunPatchBaselineAssociation
em operações de patch diferentes daquelas configuradas usando o Quick Setup e quiser usar o parâmetroBaselineTags
, forneça algumas permissões adicionais para o perfil de instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Para ter mais informações, consulte Nome do parâmetro: BaselineTags.Ambos os formatos a seguir são válidos para o parâmetro
BaselineTags
:Key=
tag-key
,Values=tag-value
Key=
tag-key
,Values=tag-value1
,tag-value2
,tag-value3
-
Quando
AWS-RunPatchBaselineAssociation
é executado, os dados de conformidade de patches coletados são registrados usando o comando da APIPutComplianceItems
em vez do comandoPutInventory
, que é usado peloAWS-RunPatchBaseline
. Essa diferença significa que as informações de conformidade de patch que são armazenadas e relatadas por uma Associação. Os dados de conformidade de patch gerados fora dessa associação não são substituídos. -
As informações de conformidade de patch relatadas após a execução de
AWS-RunPatchBaselineAssociation
indica se uma instância está ou não em conformidade. Ele não inclui detalhes em nível de patch, como demonstrado pela saída do comando da AWS Command Line Interface (AWS CLI) a seguir. Os filtros de comando emAssociation
como o tipo de conformidade:aws ssm list-compliance-items \ --resource-ids "i-02573cafcfEXAMPLE" \ --resource-types "ManagedInstance" \ --filters "Key=ComplianceType,Values=Association,Type=EQUAL" \ --region us-east-2
O sistema retorna informações como estas.
{ "ComplianceItems": [ { "Status": "NON_COMPLIANT", "Severity": "UNSPECIFIED", "Title": "MyPatchAssociation", "ResourceType": "ManagedInstance", "ResourceId": "i-02573cafcfEXAMPLE", "ComplianceType": "Association", "Details": { "DocumentName": "AWS-RunPatchBaselineAssociation", "PatchBaselineId": "pb-0c10e65780EXAMPLE", "DocumentVersion": "1" }, "ExecutionSummary": { "ExecutionTime": 1590698771.0 }, "Id": "3e5d5694-cd07-40f0-bbea-040e6EXAMPLE" } ] }
Se um valor de par de chaves de etiqueta tiver sido especificado como um parâmetro para o documento AWS-RunPatchBaselineAssociation
, o Patch Manager pesquisa uma lista de referência de patches personalizada que corresponda ao tipo de sistema operacional e que tenha sido marcada com esse mesmo par de chaves de marca. Essa pesquisa não se limita à linha de base do patch padrão especificada atual ou à linha de base atribuída a um grupo de patches. Se nenhuma lista de referência for encontrada com as etiquetas especificadas, o Patch Manager procura por um grupo de patches, se um tiver sido especificado no comando que executa AWS-RunPatchBaselineAssociation
. Se não houver correspondência com nenhum grupo de patches, o Patch Manager retorna à lista de referência de patches padrão atual da conta do sistema operacional.
Se mais de uma lista de referência de patches for encontrada com as tags especificadas no documento AWS-RunPatchBaselineAssociation
, o Patch Manager retorna uma mensagem de erro indicando que apenas uma lista de referência de patches pode ser marcada com esse par de chave-valor para que a operação prossiga.
nota
Em instâncias Linux, o gerenciador de pacotes apropriado para cada tipo de instância é usado para instalar pacotes:
-
Instâncias do Amazon Linux 1, Amazon Linux 2, CentOS, Oracle Linux e RHEL usam YUM. Para operações YUM, o Patch Manager requer o
Python 2.6
ou uma versão posterior compatível (2.6-3.10). -
As instâncias do Debian Server, do Raspberry Pi OS e do Ubuntu Server usam o APT. Para operações APT, o Patch Manager requer uma versão compatível do
Python 3
(3.0-3.10). -
As instâncias do SUSE Linux Enterprise Server usam o Zypper. Para operações Zypper, o Patch Manager requer o
Python 2.6
ou uma versão posterior compatível (2.6-3.10).
Depois que todas as atualizações aprovadas e aplicáveis forem instaladas, e as reinicializações realizadas conforme a necessidade, as informações de conformidade do patch serão geradas em uma instância e relatadas ao Patch Compliance Service.
nota
Se o parâmetro RebootOption
estiver definido como NoReboot
no documento AWS-RunPatchBaselineAssociation
, a instância não será reinicializada após a execução do Patch Manager. Para ter mais informações, consulte Nome do parâmetro: RebootOption.
Para obter informações sobre como visualizar dados de conformidade de patches, consulte Sobre a conformidade de patches.
AWS-RunPatchBaselineAssociation
parameters
O AWS-RunPatchBaselineAssociation
oferece suporte a quatro parâmetros. Os parâmetros Operation
e AssociationId
são obrigatórios. Os parâmetros InstallOverrideList
, RebootOption
e BaselineTags
são opcionais.
Parâmetros
Nome do parâmetro: Operation
Uso: obrigatório.
Opções: Scan
| Install
.
- Verificar
-
Quando você escolhe a opção
Scan
, oAWS-RunPatchBaselineAssociation
determina o estado de conformidade dos patches da instância e retorna essas informações para o Patch Manager. A opçãoScan
não solicita que atualizações sejam instaladas ou que instâncias sejam reinicializadas. Em vez disso, a operação identifica onde existem atualizações ausentes que estão aprovadas e são aplicáveis à instância. - Instalar
-
Quando você escolhe a opção
Install
, oAWS-RunPatchBaselineAssociation
tenta instalar as atualizações aprovadas e aplicáveis que estiverem ausentes na instância. As informações de conformidade dos patches geradas como parte de uma operaçãoInstall
não listam atualizações ausentes, mas poderão indicar atualizações em estado malsucedido se, por qualquer motivo, a instalação da atualização não tiver tido êxito. Sempre que uma atualização é instalada em uma instância, a instância é reinicializada para garantir que a atualização está instalada e ativa. (Exceção: Se o parâmetroRebootOption
estiver definido comoNoReboot
noAWS-RunPatchBaselineAssociation
, a instância não será reinicializada depis que o Patch Manager for executado. Para obter mais informações, consulte Nome do parâmetro: RebootOption).nota
Se um patch especificado pelas regras da lista de referência for instalado antes que o Patch Manager atualize a instância, o sistema poderá não ser reinicializado conforme esperado. Isso pode acontecer quando um patch é instalado manualmente por um usuário ou instalado automaticamente por outro programa, como o pacote
unattended-upgrades
no Ubuntu Server.
Nome do parâmetro: BaselineTags
Uso: opcional.
O BaselineTags
é um par de chaves/valores de tags exclusivo que você escolhe e atribui a uma linha de base de patch personalizada individual. Você pode especificar um ou mais valores para esse parâmetro. Ambos os formatos a seguir são válidos:
Key=
tag-key
,Values=tag-value
Key=
tag-key
,Values=tag-value1
,tag-value2
,tag-value3
O valor de BaselineTags
é usado pelo Patch Manager para garantir que todas as instâncias de um conjunto que são corrigidas em uma única operação tenham o mesmo conjunto de patches aprovados. Quando a operação de patch é executada, o Patch Manager verifica se uma linha de base de patch para o tipo de sistema operacional está marcada com o mesmo par chave-valor especificado para BaselineTags
. Se houver uma correspondência, essa lista de referência do patch personalizada será usada. Se não houver uma correspondência, uma linha de base de patch será identificada de acordo com qualquer grupo de patches especificado para a operação de patch. Se não houver nenhum, a linha de base de patch predefinida gerenciada da AWS para esse sistema operacional é usada.
Requisitos de permissão adicionais
Se você usar o AWS-RunPatchBaselineAssociation
em operações de patch diferentes daquelas configuradas usando o Quick Setup, e quiser usar o parâmetro BaselineTags
, adicione as permissões a seguir ao perfil para instâncias do Amazon Elastic Compute Cloud (Amazon EC2).
nota
O Quick Setup e AWS-RunPatchBaselineAssociation
não oferecem suporte a servidores on-premises e máquinas virtuais (VMs).
{ "Effect": "Allow", "Action": [ "ssm:DescribePatchBaselines", "tag:GetResources" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetPatchBaseline", "ssm:DescribeEffectivePatchesForPatchBaseline" ], "Resource": "
patch-baseline-arn
" }
Substitua patch-baseline-arn
pelo nome do recurso da Amazon (ARN) da linha de referência de patches à qual você deseja fornecer acesso no formatoarn:aws:ssm:us-east-2:123456789012:patchbaseline/pb-0c10e65780EXAMPLE
.
Nome do parâmetro: AssociationId
Uso: obrigatório.
O AssociationId
é o ID de uma associação existente no State Manager, um recurso do AWS Systems Manager. Isso é usado pelo Patch Manager para adicionar dados de conformidade a uma associação especificada. Essa associação está relacionada a uma operação de Scan
de patch habilitada em uma configuração do Host Management criada no Quick Setup. Ao enviar resultados da aplicação de patch como dados de conformidade de associação em vez de dados de conformidade do inventário, as informações de conformidade do inventário existentes para as instâncias não são substituídas após uma operação de aplicação de patch, nem em outras IDs de associação. Se ainda não tiver uma associação que você deseja usar, crie uma associação executando o comando create-association. Por exemplo:
Nome do parâmetro: InstallOverrideList
Uso: opcional.
O uso doInstallOverrideList
, você especifica um URL https ou um URL de estilo caminho do Amazon Simple Storage Service (Amazon S3) para uma lista de patches a serem instalados. Esta lista de instalação de patches mantida no formato YAML substitui os patches especificados pela linha de base de patch padrão atual. Isso fornece a você mais controle granular sobre quais patches estão instalados em suas instâncias.
O comportamento da operação de aplicação de patches ao usar o parâmetro InstallOverrideList
difere entre os nós gerenciados pelo Linux e pelo macOS e os nós gerenciados pelo Windows Server. No Linux e no macOS, o Patch Manager tenta aplicar os patches incluídos na lista de patches InstallOverrideList
que estão presentes em qualquer repositório habilitado no nó, independentemente de os patches corresponderem ou não às regras da lista de referência de patches. Em nós Windows Server, no entanto, os patches na lista de patches InstallOverrideList
são aplicados somente se eles também correspondem às regras da lista de referência de patches.
Lembre-se de que os relatórios de conformidade de patch refletem estados de acordo com o que está especificado na linha de base de patch, e não o que você especifica em uma lista de patches InstallOverrideList
. Em outras palavras, operações de verificação ignoram o parâmetro InstallOverrideList
. Isso é para garantir que os relatórios de conformidade reflitam consistentemente os estados de patch de acordo com a política, em vez de algo aprovado para uma determinada operação de patch.
Formatos URL válidos
nota
Se o arquivo estiver armazenado em um bucket disponível publicamente, você poderá especificar um formato de URL https ou um URL de estilo de caminho do Amazon S3. Se o arquivo estiver armazenado em um bucket privado, você deverá especificar um URL do estilo de caminho do Amazon S3.
-
Exemplo de formato de URL https:
https://s3.amazonaws.com/amzn-s3-demo-bucket/my-windows-override-list.yaml
-
Exemplo de URL estilo de caminho do Amazon S3:
s3://amzn-s3-demo-bucket/my-windows-override-list.yaml
Formatos de conteúdo YAML válidos
Os formatos que você usa para especificar patches em sua lista depende do sistema operacional da instância. O formato geral, no entanto, é o seguinte:
patches: - id: '{patch-d}' title: '{patch-title}' {
additional-fields
}:{values
}
Embora você possa fornecer campos adicionais em seu arquivo YAML, eles serão ignorados durante operações de patch.
Além disso, é recomendável verificar se o formato do arquivo YAML é válido antes de adicionar ou atualizar a lista no seu bucket do S3. Para obter mais informações sobre o formato YAML, consulte yaml.org
-
Microsoft Windows
id
O campo id é obrigatório. Use-o para especificar os patches usando IDs da Base de Dados de Conhecimento Microsoft (por exemplo, KB2736693 e IDs do boletim de segurança da Microsoft (por exemplo, MS17-023).
Todos os outros campos que você deseja fornecer em uma lista de patches para Windows são opcionais e são apenas para seu próprio uso informativo. Você pode usar campos adicionais, como título, classificação, severidade, ou qualquer outra coisa para fornecer informações mais detalhadas sobre os patches especificados.
-
Linux
id
O campo id é obrigatório. Use-o para especificar patches usando o nome do pacote e a arquitetura. Por exemplo:
'dhclient.x86_64'
. Você pode usar caracteres curinga no id para indicar vários pacotes. Por exemplo:'dhcp*'
e'dhcp*1.*'
.title
O campo título é opcional, mas em sistemas Linux ele fornece recursos de filtragem adicionais. Se você usar o título, ele deve conter informações sobre a versão do pacote em um dos seguintes formatos:
YUM/SUSE Linux Enterprise Server (SLES):
{name}.{architecture}:{epoch}:{version}-{release}
APT
{name}.{architecture}:{version}
Para títulos de patches do Linux, você pode usar um ou mais caracteres curinga em qualquer posição para expandir o número de correspondências de pacotes. Por exemplo:
'*32:9.8.2-0.*.rc1.57.amzn1'
.Por exemplo:
-
A versão do pacote apt 1.2.25 está atualmente instalada em sua instância, mas a versão 1.2.27 agora está disponível.
-
Você adiciona a versão apt.amd64 1.2.27 à lista de patches. Depende da versão do apt utils.amd64 1.2.27, mas a versão apt utils.amd64 1.2.25 é especificada na lista.
Neste caso, a versão apt 1.2.27 não poderá ser instalada e será relatada como "Failed-NonCompliant."
-
Outros campos
Todos os outros campos que você deseja fornecer em uma lista de patches para Linux são opcionais e são apenas para seu próprio uso informativo. Você pode usar campos adicionais, como classificação, severidade, ou qualquer outra coisa para fornecer informações mais detalhadas sobre os patches especificados.
Exemplo de listas de patch
-
Windows
patches: - id: 'KB4284819' title: '2018-06 Cumulative Update for Windows Server 2016 (1709) for x64-based Systems (KB4284819)' - id: 'KB4284833' - id: 'KB4284835' title: '2018-06 Cumulative Update for Windows Server 2016 (1803) for x64-based Systems (KB4284835)' - id: 'KB4284880' - id: 'KB4338814'
-
APT
patches: - id: 'apparmor.amd64' title: '2.10.95-0ubuntu2.9' - id: 'cryptsetup.amd64' title: '*2:1.6.6-5ubuntu2.1' - id: 'cryptsetup-bin.*' title: '*2:1.6.6-5ubuntu2.1' - id: 'apt.amd64' title: '*1.2.27' - id: 'apt-utils.amd64' title: '*1.2.25'
-
Amazon Linux
patches: - id: 'kernel.x86_64' - id: 'bind*.x86_64' title: '32:9.8.2-0.62.rc1.57.amzn1' - id: 'glibc*' - id: 'dhclient*' title: '*12:4.1.1-53.P1.28.amzn1' - id: 'dhcp*' title: '*10:3.1.1-50.P1.26.amzn1'
-
Red Hat Enterprise Linux (RHEL)
patches: - id: 'NetworkManager.x86_64' title: '*1:1.10.2-14.el7_5' - id: 'NetworkManager-*.x86_64' title: '*1:1.10.2-14.el7_5' - id: 'audit.x86_64' title: '*0:2.8.1-3.el7' - id: 'dhclient.x86_64' title: '*.el7_5.1' - id: 'dhcp*.x86_64' title: '*12:5.2.5-68.el7'
-
SUSE Linux Enterprise Server (SLES)
patches: - id: 'amazon-ssm-agent.x86_64' - id: 'binutils' title: '*0:2.26.1-9.12.1' - id: 'glibc*.x86_64' title: '*2.19*' - id: 'dhcp*' title: '0:4.3.3-9.1' - id: 'lib*'
-
Ubuntu Server
patches: - id: 'apparmor.amd64' title: '2.10.95-0ubuntu2.9' - id: 'cryptsetup.amd64' title: '*2:1.6.6-5ubuntu2.1' - id: 'cryptsetup-bin.*' title: '*2:1.6.6-5ubuntu2.1' - id: 'apt.amd64' title: '*1.2.27' - id: 'apt-utils.amd64' title: '*1.2.25'
-
Windows
patches: - id: 'KB4284819' title: '2018-06 Cumulative Update for Windows Server 2016 (1709) for x64-based Systems (KB4284819)' - id: 'KB4284833' - id: 'KB4284835' title: '2018-06 Cumulative Update for Windows Server 2016 (1803) for x64-based Systems (KB4284835)' - id: 'KB4284880' - id: 'KB4338814'
Nome do parâmetro: RebootOption
Uso: opcional.
Opções: RebootIfNeeded
| NoReboot
Padrão: RebootIfNeeded
Atenção
A opção padrão é RebootIfNeeded
. Selecione a opção correta para o seu caso de uso. Por exemplo, se as instâncias precisarem reinicializar imediatamente para concluir um processo de configuração, escolha RebootIfNeeded
. Ou, se você precisar manter a disponibilidade das instâncias até um horário de reinicialização agendado, escolha NoReboot
.
Importante
Não é recomendável usar o Patch Manager para aplicar patches em instâncias de cluster no Amazon EMR (antes chamado de Amazon Elastic MapReduce). Em particular, não selecione a opção RebootIfNeeded
para o parâmetro RebootOption
. (Essa opção está disponível nos documentos do SSM Command para aplicação de patches em AWS-RunPatchBaseline
, AWS-RunPatchBaselineAssociation
e AWS-RunPatchBaselineWithHooks
.)
Os comandos subjacentes para aplicação de patches usando o Patch Manager utilizam os comandos yum
e dnf
. Portanto, as operações resultam em incompatibilidades por causa da forma como os pacotes são instalados. Para obter informações sobre os métodos preferenciais para atualizar o software nos clusters do Amazon EMR, consulte Using the default AMI for Amazon EMR no Guia de gerenciamento do Amazon EMR.
- RebootIfNeeded
-
Quando você escolhe a opção
RebootIfNeeded
, a instância é reinicializada em um dos seguintes casos:-
O Patch Manager instalou um ou mais patches.
O Patch Manager não avalia se uma reinicialização é exigida pelo patch. O sistema é reinicializado mesmo que o patch não exija uma reinicialização.
-
O Patch Manager detecta um ou mais patches com um status de
INSTALLED_PENDING_REBOOT
durante a operaçãoInstall
.O status
INSTALLED_PENDING_REBOOT
pode significar que a opçãoNoReboot
foi selecionada na última vez em que a operaçãoInstall
foi executada ou que um patch foi instalado fora do Patch Manager na última vez que o nó gerenciado foi reinicializado.
A reinicialização de instâncias nesses dois casos garante que os pacotes atualizados sejam liberados da memória e mantém o comportamento de patch e reinicialização consistente em todos os sistemas operacionais.
-
- NoReboot
-
Quando você escolhe a opção
NoReboot
, o Patch Manager não reinicializa uma instância, mesmo que tenha instalado patches durante a operaçãoInstall
. Essa opção é útil se você souber que as instâncias não exigem reinicialização após a aplicação de patches, ou se houver aplicações ou processos em execução em uma instância que não devam ser interrompidos por uma reinicialização de operação de patch. Também é útil quando você deseja mais controle sobre o tempo de reinicializações de instâncias, como, por exemplo, usando uma janela de manutenção.
Arquivo de rastreamento de instalação de patches: para rastrear a instalação de patches, sobretudo os patches que foram instalados desde a última reinicialização do sistema, o Systems Manager mantém um arquivo na instância gerenciada.
Importante
Não exclua nem modifique o arquivo de monitoramento. Se esse arquivo for excluído ou corrompido, o relatório de conformidade de patch da instância será impreciso. Se isso acontecer, reinicialize a instância e execute uma operação de verificação de patch para restaurar o arquivo.
Esse arquivo de rastreamento é armazenado nos seguintes locais em suas instâncias gerenciadas:
-
Sistemas operacionais Linux:
-
/var/log/amazon/ssm/patch-configuration/patch-states-configuration.json
-
/var/log/amazon/ssm/patch-configuration/patch-inventory-from-last-operation.json
-
-
Sistema operacional Windows Server:
-
C:\ProgramData\Amazon\PatchBaselineOperations\State\PatchStatesConfiguration.json
-
C:\ProgramData\Amazon\PatchBaselineOperations\State\PatchInventoryFromLastOperation.json
-