Como solucionar problemas de aplicação de patches relacionados à instância do Amazon EC2 do Windows ao usar o documento AWS-RunPatchBaseline do Gerenciador de Patches?

7 minuto de leitura
0

Estou tentando aplicar patches em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) do Windows, mas recebo erros. Quero solucionar problemas ao usar o documento AWS-RunPatchBasline para aplicar patches em nós do Windows.

Breve descrição

Você pode encontrar os seguintes problemas ao usar o documento AWS-RunPatchBaseline do Gerenciador de Patches, um recurso do AWS Systems Manager:

  • O nó não consegue alcançar os endpoints do Amazon Simple Storage Service (Amazon S3)
  • A solicitação de token não é válida
  • Você não pode pesquisar por atualizações do Windows
  • Falha na instalação das atualizações após o download
  • Um patch está ausente

Resolução

O nó não consegue alcançar os endpoints do Amazon S3

Você pode receber os seguintes exemplos de mensagens de erro quando o Amazon S3 não consegue se conectar ao servidor remoto:

"Invoke-PatchBaselineOperation : A conexão subjacente foi fechada: Ocorreu um erro inesperado em um envio."

-ou-

"Ocorreu um erro ao executar PatchBaselineOperations: Não é possível se conectar ao servidor remoto"

Os erros anteriores ocorrem porque o nó não consegue se conectar aos endpoints do S3. Ou o perfil do AWS Identity and Access Management (IAM) anexado à instância não tem as permissões mínimas necessárias para conectividade ao S3.

Conclua as seguintes etapas para resolver esses problemas:

1.    Verifique se as permissões do IAM para o perfil da instância estão anexadas ao nó. Para obter as permissões mínimas, consulte Comunicações do AWS Systems Manager Agent (SSM Agent) com buckets do S3 gerenciados pela AWS.

2.    Execute o comando a seguir no PowerShell para verificar a conexão com o endpoint do Amazon S3:
Observação: substitua <region_id> pelo ID da sua região da AWS.

tnc s3.<region_id>.amazonaws.com -port 443

3.    Se o teste anterior falhar, verifique como a instância está conectada aos endpoints do Systems Manager:

  • Se a instância estiver em uma sub-rede pública, certifique-se de que a RouteTable anexada à instância use um gateway da Internet para rotear para 0.0.0.0/0.
  • Se a instância estiver em uma sub-rede privada, use um gateway NAT para se conectar, [crie um endpoint da VPC do gateway do S3 ou crie um endpoint da VPC de interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).

A solicitação de token não é válida

Você pode receber os seguintes exemplos de mensagens de erro porque a solicitação de token não é válida:

"Invoke-PatchBaselineOperation falhou com: O token de segurança incluído na solicitação é inválido:

-ou-

"Invoke-PatchBaselineOperation: O ID da instância i-00fe5918abcdef12 não corresponde às credenciais"

Os erros anteriores ocorrem quando o SSM Agent usa credenciais diferentes das credenciais que você espera que ele use. Por exemplo, o SSM Agent usa um arquivo de credenciais compartilhadas em vez de um perfil de instância.

Observação: para o SSM Agent versão 3.1.1927.0 ou anterior, o SSM Agent procura credenciais na ordem prescrita para a cadeia de provedores de credenciais padrão. Isso também se aplica às instâncias de contêiner do Amazon Elastic Container Service (Amazon ECS).

A partir da versão 3.2.183.0 do SSM Agent, o SSM Agent armazena um conjunto de credenciais temporárias em /var/lib/amazon/ssm/credentials (Linux e macOS) ou %PROGRAMFILES%\ Amazon\ SSM\ credentials (Windows Server). As credenciais temporárias têm as permissões que você especifica para o perfil do IAM que você selecionou. O perfil do IAM tem as permissões da Configuração padrão de gerenciamento de host ou do perfil da instância anexado ao seu nó gerenciado.

Para resolver esses erros, atualize o SSM Agent para a versão 3.2.183.0 ou posterior para que ele possa buscar credenciais de um arquivo na pasta SSM.

Para usar uma versão anterior do SSM Agent, localize as credenciais compartilhadas, exclua-as e teste o patch novamente.

Conclua as seguintes etapas para localizar as credenciais:

1.    Pressione a tecla Windows e, em seguida, insira as variáveis de ambiente.

2.    Encontre as variáveis denominadas AWS\ _ACCESS\ _KEY\ _ID e AWS\ _SECRET\ _ACCESS\ _KEY.

3.    Exclua as credenciais e teste o patch novamente.

Locais das credenciais compartilhadas

Veja a seguir exemplos de locais das credenciais compartilhadas:

SystemsProfile

  • C:\Windows\System32\config\systemprofile\.aws\
  • C:\Windows\System32\config\systemprofile\AppData\Local\AWSToolkit\RegisteredAccounts.json

Perfil do usuário

  • %USERPROFILE%\.aws\
  • %USERPROFILE%\AppData\Local\AWSToolkit\RegisteredAccounts.json

Você não pode pesquisar por atualizações do Windows

Você pode receber os seguintes exemplos de mensagens de erro quando não consegue pesquisar atualizações do Windows:

"Invoke-PatchBaselineOperation : Detalhes da exceção: Ocorreu um erro ao tentar pesquisar o Windows Update. Mensagem de erro: Exceção do HRESULT: 0x80240437"

-ou-

"Invoke-PatchBaselineOperation : Detalhes da exceção: Ocorreu um erro ao tentar pesquisar o Windows Update. Mensagem de erro: Exceção do HRESULT: 0x80072EE2"

Os erros anteriores estão relacionados aos componentes de atualização do Windows, à falta de conectividade ao Catálogo do Windows Update ou ao Windows Server Update Services (WSUS).

Conclua as seguintes etapas para resolver esses problemas:

1.    Verifique a conexão com o Windows Update. Determine se a instância tem uma conexão direta de Internet com a fonte de patches da Microsoft por meio de um proxy ou usando o WSUS.

2.    Você pode usar uma política de grupo ou chaves de registro para configurar servidores do WSUS. Execute o comando a seguir para verificar a configuração do WSUS:

Verifique a política do grupo:

gpresult /H %USERPROFILE%\Desktop\report.html

Verifique as chaves de registro que podem ser definidas manualmente:

Get-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' | Select-Object AUOptions, NoAutoUpdate,  UseWUServer
Get-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' | Select-Object DisableWindowsUpdateAccess,  WUServer, WUStatusServer

Execute os seguintes comandos para verificar as configurações do proxy:

Observação: você deve obter as configurações do proxy no contexto da conta de usuário do sistema S-1-5-18, onde executa as operações de aplicação de patches. Para obter as configurações, use o Run Command, um recurso do AWS Systems Manager, com o documento AWS-RunPowerShellScript.

Faça o download do PsExec no site da Microsoft e execute o seguinte comando para iniciar um novo prompt do PowerShell no contexto do usuário do sistema:

psexec -i -s C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Execute o comando a seguir para visualizar as configurações de registro do AmazonSSMagent:

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent'

Execute os comandos a seguir para visualizar as variáveis de ambiente do sistema (http_proxy, https\ _proxy, no\ _proxy):

Get-Item -Path Env:http_proxy  
Get-Item -Path Env:https_proxy  
Get-Item -Path Env:no_proxy

Execute o comando a seguir para visualizar as configurações do Internet Explorer (HTTP, segurança, exceções):

Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | Select-Object ProxyServer,  ProxyEnable

Execute o comando a seguir para visualizar o proxy WinINet:

[System.Net.WebRequest]::DefaultWebProxy

Execute o comando a seguir para visualizar as configurações do proxy WinHTTP (http=, https=, bypass-list=):

netsh winhttp show proxy

Se o proxy estiver configurado somente para o SSM Agent, o Gerenciador de Patches não funcionará. Isso ocorre porque o cliente de atualização do Windows usa configurações de proxy em todo o sistema para verificar e baixar as atualizações. Execute o seguinte comando para configurar o sistema proxy em todo o sistema:

netsh winhttp set proxy proxy-server="hostname:port" bypass-list="169.254.169.254"

Se houver uma conexão, redefina os componentes do Windows Update e tente aplicar o patch novamente.

Falha na instalação das atualizações após o download

Para resolver uma atualização que falha na instalação após o download, conclua as seguintes etapas:

1.    Analise os logs de instalação do patch em C:\Windows\Logs\CBS e compare o carimbo de data e hora do comando em execução. Em seguida, analise os logs em busca de mensagens de erro.

2.    Se o patch exigir uma reinicialização, mas falhar na instalação após a reinicialização, use uma captura de tela do Amazon EC2 para visualizar a mensagem na tela de login.

Observação: os patches podem ser revertidos com a seguinte mensagem na tela de inicialização: "Não conseguimos concluir as atualizações. Desfazendo as mudanças. Não desligue seu computador"

3.    Encontre o código HResult no arquivo de log do Component Based Servicing (CBS) e, em seguida, pesquise o código na documentação de erros do Windows Update.

4.    Redefina os componentes do Windows Update e tente realizar a instalação novamente.

Um patch está ausente

Para solucionar problemas de patches ausentes, consulte Como solucionar um patch KB ausente após uma operação de patch bem-sucedida em instâncias do EC2 do Windows por meio do Gerenciador de Patches?

Informações relacionadas

Como os patches são instalados

AWS OFICIAL
AWS OFICIALAtualizada há 8 meses