Documento de comandos SSM para aplicar revisiones: AWS-RunPatchBaselineAssociation - AWS Systems Manager

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 utiliza AWS-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ámetro BaselineTags 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 opcional BaselineTags, 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 comando PutComplianceItems de la API en lugar del comando PutInventory, que utiliza AWS-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 en Association 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.

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ón Install 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ámetro RebootOption se establece en NoReboot en el documento AWS-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:

Linux & macOS
aws ssm create-association \ --name "AWS-RunPatchBaselineAssociation" \ --association-name "MyPatchHostConfigAssociation" \ --targets "Key=instanceids,Values=[i-02573cafcfEXAMPLE,i-07782c72faEXAMPLE,i-07782c72faEXAMPLE]" \ --parameters "Operation=Scan" \ --schedule-expression "cron(0 */30 * * * ? *)" \ --sync-compliance "MANUAL" \ --region us-east-2
Windows Server
aws ssm create-association ^ --name "AWS-RunPatchBaselineAssociation" ^ --association-name "MyPatchHostConfigAssociation" ^ --targets "Key=instanceids,Values=[i-02573cafcfEXAMPLE,i-07782c72faEXAMPLE,i-07782c72faEXAMPLE]" ^ --parameters "Operation=Scan" ^ --schedule-expression "cron(0 */30 * * * ? *)" ^ --sync-compliance "MANUAL" ^ --region us-east-2

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. Para consultar las opciones de herramientas de validación, realice una búsqueda web de "validadores de formato yaml".

  • 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ón Install.

    El estado INSTALLED_PENDING_REBOOT puede indicar que la opción NoReboot se seleccionó la última vez que se ejecutó la operación Install 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ón Install. 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