Documento de comandos SSM para aplicar revisiones: AWS-RunPatchBaselineAssociation
Al igual que el documento AWS-RunPatchBaseline
, AWS-RunPatchBaselineAssociation
realiza operaciones de aplicación de revisiones en las instancias para actualizaciones relacionadas con la seguridad y de otros tipos. Además, puede utilizar el documento AWS-RunPatchBaselineAssociation
para aplicar revisiones a los sistemas operativos y a las aplicaciones. (En Windows Server, la compatibilidad con las aplicaciones se limita a las actualizaciones de las aplicaciones publicadas por Microsoft).
Este documento admite instancias de Amazon Elastic Compute Cloud (Amazon EC2) para Linux, macOS y Windows Server. No admite nodos que no sean de EC2 en un entorno híbrido y multinube. El documento se encargará de realizar las acciones adecuadas para cada plataforma, para lo cual invocará un módulo de Python en las instancias de Linux y macOS, así como un módulo de PowerShell en las instancias de Windows.
Sin embargo, AWS-RunPatchBaselineAssociation
se diferencia de AWS-RunPatchBaseline
en los siguientes aspectos:
-
AWS-RunPatchBaselineAssociation
está diseñado para que se utilice principalmente con State Manager asociaciones creadas con Quick Setup, una capacidad de AWS Systems Manager. Especialmente cuando se utiliza el tipo de configuración Quick Setup de administración de host, si elige la opción escanear las instancias para detectar las revisiones que faltan cada día, el sistema utilizaAWS-RunPatchBaselineAssociation
para efectuar la operación.Sin embargo, en la mayoría de los casos, a la hora de configurar sus propias operaciones de aplicación de revisiones, debe elegir AWS-RunPatchBaseline o AWS-RunPatchBaselineWithHooks en lugar de
AWS-RunPatchBaselineAssociation
. -
Cuando se utiliza el documento
AWS-RunPatchBaselineAssociation
, se puede especificar un par de claves de etiqueta en el campo correspondiente al parámetroBaselineTags
del documento. Si una línea de base de revisiones personalizada en su Cuenta de AWS comparte estas etiquetas, Patch Manager, una capacidad de AWS Systems Manager, utiliza esa base de referencia etiquetada cuando se ejecuta en las instancias de destino en lugar de la línea de base de revisiones “predeterminada” que actualmente se encuentra especificada para el tipo de sistema operativo.importante
Si elige utilizar
AWS-RunPatchBaselineAssociation
en las operaciones de aplicación de revisiones distintas de las configuradas mediante Quick Setup, y desea utilizar el parámetro opcionalBaselineTags
, es necesario que proporcione algunos permisos adicionales al perfil de instancias para las instancias de Amazon Elastic Compute Cloud (Amazon EC2). Para obtener más información, consulte Nombre del parámetro: BaselineTags.Los dos siguientes formatos son válidos para su parámetro
BaselineTags
:Key=
tag-key
,Values=tag-value
Key=
tag-key
,Values=tag-value1
,tag-value2
,tag-value3
-
Los datos de conformidad de revisiones que se recopilan cuando se ejecuta
AWS-RunPatchBaselineAssociation
se registran mediante el comandoPutComplianceItems
de la API en lugar del comandoPutInventory
, que utilizaAWS-RunPatchBaseline
. Esta diferencia implica que la información de conformidad de revisiones se almacena y notifica en función de una asociación específica. Los datos de conformidad de revisiones generados fuera de esta asociación no se sobrescriben. -
La información de conformidad con la revisión notificada con posterioridad a la ejecución de
AWS-RunPatchBaselineAssociation
indica si una instancia está en conformidad o no. No se incluyen los detalles a nivel de revisión, como se demuestra con la salida del siguiente comando de la AWS Command Line Interface (AWS CLI). El comando filtra enAssociation
como el tipo de conformidad:aws ssm list-compliance-items \ --resource-ids "i-02573cafcfEXAMPLE" \ --resource-types "ManagedInstance" \ --filters "Key=ComplianceType,Values=Association,Type=EQUAL" \ --region us-east-2
El sistema devuelve información similar a la siguiente.
{ "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" } ] }
Si se ha especificado un valor de par de claves de etiqueta como parámetro para el documento AWS-RunPatchBaselineAssociation
, Patch Manager busca una línea de base de revisiones personalizada que concuerde con el tipo de sistema operativo y que se haya etiquetado con ese mismo par de claves de etiquetas. Esta búsqueda no se limita a la línea de base de revisiones predeterminada que se haya especificado ni a la base de referencia asignada a un grupo de revisiones. Si no se encuentra ninguna base de referencia con las etiquetas especificadas, Patch Manager busca a continuación un grupo de revisiones, siempre que se haya especificado uno en el comando que ejecuta AWS-RunPatchBaselineAssociation
. Si no hay ningún grupo de revisiones que concuerde, Patch Manager vuelve a la línea de base de revisiones predeterminada actual para la cuenta del sistema operativo.
Si se encuentra más de una línea de base de revisiones con las etiquetas especificadas en el documento AWS-RunPatchBaselineAssociation
, Patch Manager devuelve un mensaje de error donde se indica que solo es posible etiquetar una línea de base de revisiones con ese par de valor de clave para proceder con la operación.
nota
En las instancias de Linux, se utiliza el administrador de paquetes adecuado para cada tipo de instancia a fin de instalar los paquetes:
-
Las instancias de Amazon Linux 1, Amazon Linux 2, CentOS, Oracle Linux y RHEL utilizan YUM. Para las operaciones de YUM, Patch Manager requiere
Python 2.6
o una versión posterior compatible (2.6 a 3.10). -
Las instancias de Debian Server, Raspberry Pi OS y Ubuntu Server usan APT. Para las operaciones de APT, Patch Manager requiere una versión compatible de
Python 3
(3.0 a 3.10). -
Las instancias de SUSE Linux Enterprise Server utilizan Zypper. Para las operaciones de Zypper, Patch Manager requiere
Python 2.6
o una versión posterior compatible (2.6 a 3.10).
Una vez que se haya completado un análisis, o bien después de que se hayan instalado todas las actualizaciones aprobadas y aplicables, y se hayan realizado los reinicios necesarios, se genera la información de conformidad de revisiones en una instancia y se notifica al servicio de conformidad de revisiones.
nota
Si el parámetro RebootOption
se establece en NoReboot
en el documento AWS-RunPatchBaselineAssociation
, la instancia no se reinicia después de que se ejecuta Patch Manager. Para obtener más información, consulte Nombre del parámetro: RebootOption.
Para obtener información sobre cómo ver los datos de conformidad de revisiones, consulte Acerca de la conformidad de parches.
Parámetros AWS-RunPatchBaselineAssociation
AWS-RunPatchBaselineAssociation
admite cuatro parámetros. Los parámetros Operation
y AssociationId
son obligatorios. Los parámetros InstallOverrideList
, RebootOption
y BaselineTags
son opcionales.
Parámetros
Nombre del parámetro: Operation
Usage: requerido.
Opciones: Scan
| Install
.
- Examen
-
Cuando elija la opción
Scan
,AWS-RunPatchBaselineAssociation
determina el estado de conformidad de las revisiones de la instancia y notifica esta información a Patch Manager.Scan
no solicita que se instalen actualizaciones ni que se reinicien las instancias. En lugar de ello, la operación identifica las actualizaciones aprobadas que faltan y que son aplicables a la instancia. - Instalación
-
Al elegir la opción
Install
,AWS-RunPatchBaselineAssociation
intenta instalar las actualizaciones aprobadas y aplicables que faltan en la instancia. La información de conformidad de revisiones generada como parte de una operaciónInstall
no muestra las actualizaciones que faltan, pero podría notificar aquellas que presentan un estado de error si la instalación de la actualización no se ha podido realizar por cualquier motivo. Cuando una actualización se instala en una instancia, esta se reinicia para garantizar que la actualización esté instalada y activa. (Excepción: si el parámetroRebootOption
se establece enNoReboot
en el documentoAWS-RunPatchBaselineAssociation
, la instancia no se reinicia una vez que se ejecuta Patch Manager. Para obtener más información, consulte Nombre del parámetro: RebootOption.)nota
Si se instala una revisión especificado por las reglas de la base de referencia antes de que Patch Manager actualice la instancia, es posible que el sistema no se reinicie como es debido. Esto puede ocurrir cuando un usuario instala manualmente una revisión o cuando lo instala automáticamente otro programa, como el
unattended-upgrades
paquete de Ubuntu Server.
Nombre del parámetro: BaselineTags
Usage: opcional.
BaselineTags
es un par de valor de clave de etiqueta único que usted elige y asigna a una línea de base de revisiones personalizada particular. Puede especificar uno o más valores para este parámetro. Los dos formatos que se indican a continuación son válidos:
Key=
tag-key
,Values=tag-value
Key=
tag-key
,Values=tag-value1
,tag-value2
,tag-value3
Patch Manager utiliza el valor BaselineTags
para garantizar que un conjunto de instancias en las que se aplican revisiones en una sola operación tenga el mismo conjunto de revisiones aprobados. Cuando se ejecuta la operación de aplicación de revisiones, Patch Manager comprueba si una línea de base de revisiones para el tipo de sistema operativo está etiquetada con el mismo par de valor de clave que se especifica para BaselineTags
. Si hay una concordancia, se utiliza esta línea de base de revisiones personalizada. Si no hay ninguna concordancia, se identifica una línea de base de revisiones en función de cualquier grupo de revisiones especificado para la operación de aplicación de revisiones. En caso de que no haya ninguno, se utiliza la línea de base de revisiones predefinida administrada por AWS para ese sistema operativo.
Requisitos de permisos adicionales
Si elige utilizar AWS-RunPatchBaselineAssociation
en las operaciones de aplicación de revisiones distintas de las configuradas mediante Quick Setup, y desea utilizar el parámetro opcional BaselineTags
, es necesario que agregue los siguientes permisos al perfil de instancias para las instancias de Amazon Elastic Compute Cloud (Amazon EC2).
nota
Quick Setup y AWS-RunPatchBaselineAssociation
no admiten servidores locales ni máquinas virtuales.
{ "Effect": "Allow", "Action": [ "ssm:DescribePatchBaselines", "tag:GetResources" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetPatchBaseline", "ssm:DescribeEffectivePatchesForPatchBaseline" ], "Resource": "
patch-baseline-arn
" }
Sustituya patch-baseline-arn
por el nombre de recurso de Amazon (ARN) de la línea de base de revisiones al que desea proporcionar acceso, con el formato arn:aws:ssm:us-east-2:123456789012:patchbaseline/pb-0c10e65780EXAMPLE
.
Nombre del parámetro: AssociationId
Usage: requerido.
AssociationId
es el ID de una asociación existente en State Manager, una capacidad de AWS Systems Manager. Patch Manager lo utiliza para agregar datos de conformidad a la asociación especificada. Esta asociación está relacionada con una operación de revisión Scan
habilitada en una configuración de Administración de host creada en Quick Setup . Con el envío de los resultados de la aplicación de revisiones como datos de conformidad de la asociación en lugar de datos de conformidad de inventario, la información de conformidad de inventario existente para sus instancias ni otros ID de asociación no se sobrescribe luego de una operación de aplicación de revisiones. Si aún no dispone de una asociación que desee utilizar, puede crear una mediante la ejecución del comando create-association. Por ejemplo:
Nombre del parámetro: InstallOverrideList
Usage: opcional.
Mediante InstallOverrideList
, se puede especificar una URL de https o una URL de tipo ruta de Amazon Simple Storage Service (Amazon S3) para una lista de revisiones que deben instalarse. Esta lista de instalación de revisiones, que mantiene en formato YAML, invalida las revisiones especificados por la línea de base de revisiones predeterminada actual. De este modo, se le proporcionará un control más detallado sobre qué revisiones se instalan en las instancias.
El comportamiento de la operación de revisión cuando se utiliza el parámetro InstallOverrideList
difiere entre Linux y los nodos administrados por macOS y los nodos administrados por Windows Server. En Linux y macOS, Patch Manager intenta aplicar los parches incluidos en la lista de parches de InstallOverrideList
que estén presentes en cualquier repositorio habilitado en el nodo, independientemente de que los parches coincidan o no con las reglas de la línea de base de revisiones. Sin embargo, en los nodos Windows Server, los parches de la lista de parches InstallOverrideList
se aplican solo si también cumplen con las reglas de la línea de base de revisiones.
Tenga en cuenta que los informes de conformidad reflejan los estados de revisiones de acuerdo con lo que se especifica en la línea de base de revisiones, no lo que especifique en una lista de revisiones InstallOverrideList
. En otras palabras, las operaciones de análisis omiten el parámetro InstallOverrideList
. De este modo, se garantiza que los informes de conformidad reflejen de forma coherente los estados de revisiones de acuerdo con la política, en lugar de lo que se ha aprobado una operación específica para la aplicación de revisiones.
Formatos de URL válidos
nota
Si su archivo se encuentra almacenado en un bucket de acceso público, puede especificar un formato de URL de https o una URL de tipo ruta de Amazon S3. Si su archivo se encuentra almacenado en un bucket privado, debe especificar una URL de tipo ruta de Amazon S3.
-
Ejemplo de formato de URL https:
https://s3.amazonaws.com/amzn-s3-demo-bucket/my-windows-override-list.yaml
-
Ejemplo de URL de estilo ruta de Amazon S3:
s3://amzn-s3-demo-bucket/my-windows-override-list.yaml
Formatos de contenido YAML válidos
Los formatos que utiliza para especificar revisiones en su lista dependen del sistema operativo de la instancia. El formato general, sin embargo, es el siguiente:
patches: - id: '{patch-d}' title: '{patch-title}' {
additional-fields
}:{values
}
Aunque puede proporcionar campos adicionales en su archivo YAML, estos se pasan por alto durante las operaciones de revisiones.
Además, le recomendamos que verifique que el formato de su archivo YAML es válido antes de añadir o actualizar la lista de su bucket de S3. Para obtener más información acerca del formato YAML, consulte yaml.org
-
Microsoft Windows
id
El campo id es obligatorio. Úselo para especificar las revisiones con los ID de la Base de conocimientos de Microsoft (por ejemplo, KB2736693) y del boletín de seguridad de Microsoft (por ejemplo, MS17-023).
Cualquier otro campo que desee proporcionar en una lista de revisiones para Windows es opcional y solo para fines informativos propios. Puede utilizar campos adicionales como, por ejemplo, title (título), classification (clasificación), severity (gravedad) o cualquier otro para proporcionar información más detallada sobre las revisiones especificados.
-
Linux
id
El campo id es obligatorio. Utilícelo para especificar revisiones mediante el nombre del paquete y la arquitectura. Por ejemplo:
'dhclient.x86_64'
. Puede utilizar comodines en id para indicar varios paquetes. Por ejemplo:'dhcp*'
y'dhcp*1.*'
.title
El campo title (título) es opcional, pero en sistemas Linux ofrece capacidades de filtrado adicionales. Si utiliza title (título), debería contener información de la versión del paquete en uno de los siguientes formatos:
YUM/SUSE Linux Enterprise Server (SLES):
{name}.{architecture}:{epoch}:{version}-{release}
APT
{name}.{architecture}:{version}
Para los títulos de las revisiones de Linux, puede utilizar uno o varios comodines en cualquier posición para ampliar el número de paquetes coincidentes. Por ejemplo:
'*32:9.8.2-0.*.rc1.57.amzn1'
.Por ejemplo:
-
la versión del paquete apt 1.2.25 actualmente está instalada en la instancia, pero la versión 1.2.27 ya está disponible.
-
Puede añadir la versión apt.amd64 1.2.27 a la lista de revisiones. Depende de la versión apt utils.amd64 1.2.27, pero la versión apt-utils.amd64 1.2.25 se especifica en la lista.
En este caso, la versión apt 1.2.27 se bloqueará a partir de la instalación y se registrará como "Failed-NonCompliant".
-
Otros campos
Cualquier otro campo que desee proporcionar en una lista de revisiones para Linux es opcional y solo para fines informativos propios. Puede utilizar campos adicionales como, por ejemplo, classification (clasificación), severity (gravedad) o cualquier otro para proporcionar información más detallada sobre las revisiones especificados.
Listas de revisiones de ejemplo
-
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'
Nombre del parámetro: RebootOption
Usage: opcional.
Opciones: RebootIfNeeded
| NoReboot
Valor predeterminado: RebootIfNeeded
aviso
La opción predeterminada es RebootIfNeeded
. Asegúrese de seleccionar la opción correcta para su caso de uso. Por ejemplo, si las instancias deben reiniciarse inmediatamente para completar un proceso de configuración, elija RebootIfNeeded
. O bien, si necesita mantener la disponibilidad de las instancias hasta una hora de reinicio programada, elija NoReboot
.
importante
No recomendamos el uso de Patch Manager para implementar revisiones a instancias de clústeres en Amazon EMR (antes denominado Amazon Elastic MapReduce). En concreto, no seleccione la opción RebootIfNeeded
para el parámetro RebootOption
. (Esta opción está disponible en los documentos de SSM Command para implementar revisiones AWS-RunPatchBaseline
, AWS-RunPatchBaselineAssociation
, y AWS-RunPatchBaselineWithHooks
).
Los comandos subyacentes para implementar revisiones mediante el uso de Patch Manager y los comandos yum
y dnf
. Por lo tanto, las operaciones generan incompatibilidades debido a la forma en que se instalan los paquetes. Para obtener información sobre los métodos preferidos para actualizar el software en los clústeres de Amazon EMR, consulte Uso de la AMI predeterminada para Amazon EMR en la Guía de administración de Amazon EMR.
- RebootIfNeeded
-
Cuando se elige la opción
RebootIfNeeded
, la instancia se reinicia en cualquiera de los siguientes casos:-
Patch Manager instaló uno o más revisiones.
Patch Manager no evalúa si la revisión requiere llevar a cabo un reinicio. El sistema se reinicia aunque la revisión no requiera el reinicio.
-
Patch Manager detecta uno o más revisiones con un estado de
INSTALLED_PENDING_REBOOT
durante la operaciónInstall
.El estado
INSTALLED_PENDING_REBOOT
puede indicar que la opciónNoReboot
se seleccionó la última vez que se ejecutó la operaciónInstall
o que se instaló un parche por fuera de Patch Manager desde la última vez que se reinició el nodo administrado.
El reinicio de las instancias en estos dos casos garantiza que los paquetes actualizados se eliminen de la memoria y mantiene un comportamiento de aplicación de revisiones y reinicio consistente en todos los sistemas operativos.
-
- NoReboot
-
Cuando elige la opción
NoReboot
, Patch Manager no reinicia una instancia aunque haya instalado revisiones durante la operaciónInstall
. Esta opción es útil si sabe que las instancias no requieren reinicio después de aplicar las revisiones, o si dispone de aplicaciones o procesos que se ejecutan en una instancia que no deberían verse interrumpidos como consecuencia del reinicio de una operación de aplicación de revisiones. También es útil cuando se desea tener más control sobre el tiempo de los reinicios de la instancia, por ejemplo, mediante un periodo de mantenimiento.
Archivo de seguimiento de instalación de revisiones: para realizar un seguimiento de la instalación de revisiones, especialmente las revisiones que se hayan instalados desde el último reinicio del sistema, Systems Manager mantiene un archivo en la instancia administrada.
importante
No elimine ni modifique el archivo de seguimiento. Si este archivo se elimina o está dañado, el informe de conformidad de revisiones para la instancia es inexacto. Si esto sucede, reinicie la instancia y ejecute una operación de análisis de revisión para restaurar el archivo.
Este archivo de seguimiento se almacena en las siguientes ubicaciones de las instancias administradas:
-
Sistemas operativos Linux:
-
/var/log/amazon/ssm/patch-configuration/patch-states-configuration.json
-
/var/log/amazon/ssm/patch-configuration/patch-inventory-from-last-operation.json
-
-
Sistema operativo Windows Server:
-
C:\ProgramData\Amazon\PatchBaselineOperations\State\PatchStatesConfiguration.json
-
C:\ProgramData\Amazon\PatchBaselineOperations\State\PatchInventoryFromLastOperation.json
-