Documento di comando SSM per l'applicazione di patch: AWS-RunPatchBaselineAssociation
Come il documento AWS-RunPatchBaseline
, AWS-RunPatchBaselineAssociation
esegue operazioni di applicazione di patch sulle istanze per aggiornamenti correlati alla sicurezza e di altro tipo. È possibile utilizzare il documento AWS-RunPatchBaselineAssociation
per applicare patch ai sistemi operativi e alle applicazioni. (In Windows Server, il supporto delle applicazioni è limitato ai soli aggiornamenti delle applicazioni Microsoft).
Questo documento supporta le istanze Amazon Elastic Compute Cloud (Amazon EC2) per Linux, macOS, e Windows Server. Non supporta nodi non EC2 in un ambiente ibrido e multicloud. Il documento eseguirà le operazioni opportune per ciascuna piattaforma, richiamando un modulo Python su Linux e le istanze macOS e un modulo PowerShell sulle istanze di Windows.
AWS-RunPatchBaselineAssociation
, tuttavia, differisce da AWS-RunPatchBaseline
nei seguenti modi:
-
AWS-RunPatchBaselineAssociation
è destinato all'uso principalmente con associazioni State Manager create utilizzando Quick Setup, una funzionalità di AWS Systems Manager. In particolare, quando utilizzi il tipo di configurazione di gestione host Quick Setup, scegliendo l'opzione Scan instances for missing patches daily (Scansiona le istanze per le patch mancanti ogni giorno), il sistema utilizzaAWS-RunPatchBaselineAssociation
per l'operazione.Nella maggior parte dei casi, tuttavia, quando si impostano le proprie operazioni di patch, è necessario scegliere AWS-RunPatchBaseline o AWS-RunPatchBaselineWithHooks invece di
AWS-RunPatchBaselineAssociation
. -
Quando utilizzi il documento
AWS-RunPatchBaselineAssociation
, è possibile specificare una coppia di chiavi di tag nel campo parametroBaselineTags
del documento. Se una baseline delle patch personalizzata nell'Account AWS condivide questi tag, Patch Manager, una funzionalità di AWS Systems Manager, utilizza la base con tag quando viene eseguita sulle istanze di destinazione anziché sulla baseline della patch “predefinita” attualmente specificata per il tipo di sistema operativo.Nota
Quando si sceglie di utilizzare
AWS-RunPatchBaselineAssociation
nelle operazioni di applicazione di patch diverse da quelle configurate con Quick Setup, e si desidera utilizzare il suo parametroBaselineTags
opzionale, è necessario fornire alcune autorizzazioni aggiuntive al profilo dell'istanza per istanze Amazon Elastic Compute Cloud (Amazon EC2). Per ulteriori informazioni, consultare Nome parametro: BaselineTags.Entrambi i formati seguenti sono validi per il parametro
BaselineTags
:Key=
tag-key
,Values=tag-value
Key=
tag-key
,Values=tag-value1
,tag-value2
,tag-value3
Importante
Le chiavi e i valori dei tag non consentono la presenza dei seguenti caratteri: backtick (`), virgolette singole ('), virgolette doppie (“) e simbolo del dollaro ($).
-
Quando viene eseguito
AWS-RunPatchBaselineAssociation
, i dati di conformità delle patch raccolti vengono registrati utilizzando il comando API diPutComplianceItems
al posto del comandoPutInventory
, che viene utilizzato daAWS-RunPatchBaseline
. Questa differenza indica che le informazioni sulla conformità delle patch che vengono archiviate e segnalate per una specifica associazione. I dati di conformità delle patch generati al di fuori di questa associazione non vengono sovrascritti. -
Le informazioni sulla conformità delle patch riportate dopo l'esecuzione di
AWS-RunPatchBaselineAssociation
indicano se un'istanza è conforme o meno. Non includono dettagli a livello di patch, come dimostrato dall'output del seguente comando AWS Command Line Interface(AWS CLI). Il comando filtra suAssociation
come tipo di conformità:aws ssm list-compliance-items \ --resource-ids "i-02573cafcfEXAMPLE" \ --resource-types "ManagedInstance" \ --filters "Key=ComplianceType,Values=Association,Type=EQUAL" \ --region us-east-2
Il sistema restituisce informazioni simili alle seguenti.
{ "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" } ] }
Quando un valore di una coppia di chiavi di tag è stato specificato come parametro per il documento AWS-RunPatchBaselineAssociation
, Patch Manager cerca una baseline delle patch personalizzata che corrisponda al tipo di sistema operativo ed è stata contrassegnata con la stessa coppia di chiavi di tag. Questa ricerca non è limitata alla base di patch predefinita corrente specificata o alla base assegnata a un gruppo di patch. Quando non viene trovata alcuna base con i tag specificati, Patch Manager cerca un gruppo di patch, se ne è stato specificato uno nel comando che esegue AWS-RunPatchBaselineAssociation
. Quando nessun gruppo di patch viene abbinato, Patch Manager torna alla baseline delle patch predefinita corrente per l'account del sistema operativo.
Quando viene trovata più di una baseline delle patch con i tag specificati nel documentoAWS-RunPatchBaselineAssociation
, Patch Manager restituisce un messaggio di errore che indica che solo una baseline delle patch ha la possibilità di essere contrassegnata con quel valore di chiave in modo che l'operazione continui.
Nota
Sulle istanze Linux, il gestore di pacchetti idonei per ogni tipo di istanza viene utilizzato per installare i pacchetti:
-
Le istanze Amazon Linux 1, Amazon Linux 2, CentOS, Oracle Linux, e RHEL utilizzano YUM. Per le operazioni con Zypper, Patch Manager richiede
Python 2.6
o una versione successiva supportata (2.6 - 3.10). -
Le istanze Debian Server, Raspberry Pi OS e Ubuntu Server utilizzano APT. Per le operazioni APT, Patch Manager richiede una versione supportata di
Python 3
(3.0 - 3.10). -
Le istanze SUSE Linux Enterprise Server utilizzano Zypper. Per le operazioni con Zypper, Patch Manager richiede
Python 2.6
o una versione successiva supportata (2.6 - 3.10).
Al termine di una scansione, o dopo che tutti gli aggiornamenti approvati e applicabili sono stati installati, con eventuali riavvii eseguiti, le informazioni sulla conformità delle patch sono generate su un'istanza e riportate al servizio Patch Compliance.
Nota
Quando il parametro RebootOption
è impostato su NoReboot
nel documento AWS-RunPatchBaselineAssociation
, l'istanza non viene riavviata dopo l'esecuzione di Patch Manager. Per ulteriori informazioni, consultare Nome parametro: RebootOption.
Per informazioni sulla visualizzazione dei dati di conformità delle patch, consulta Informazioni sulla conformità delle patch.
Parametri AWS-RunPatchBaselineAssociation
AWS-RunPatchBaselineAssociation
supporta quattro parametri. I parametri Operation
e AssociationId
sono obbligatori. I parametri InstallOverrideList
, RebootOption
e BaselineTags
sono facoltativi.
Parametri
Nome parametro: Operation
Utilizzo: obbligatorio.
Opzioni: Scan
| Install
.
- Scan
-
Quando si sceglie l'opzione
Scan
,AWS-RunPatchBaselineAssociation
determina lo stato di conformità delle patch dell'istanza e riferisce queste informazioni a Patch Manager.Scan
non richiede l'installazione degli aggiornamenti o il riavvio delle istanze. L'operazione identifica dove gli aggiornamenti approvati e applicabili all'istanza risultano mancanti. - Installa
-
Quando si sceglie l'opzione
Install
,AWS-RunPatchBaselineAssociation
tenta di installare gli aggiornamenti applicabili e approvati che risultano mancanti nell'istanza. Le informazioni sulla conformità delle patch generate in un'operazioneInstall
non visualizzano gli aggiornamenti mancanti, ma possono specificare lo stato di errore degli aggiornamenti se per qualsiasi motivo l'installazione non è andata a buon fine. Quando un aggiornamento è installato in un'istanza, questa viene riavviata per assicurare l'aggiornamento sia installato e attivo. (Eccezione: se il parametroRebootOption
è impostato suNoReboot
nel documentoAWS-RunPatchBaselineAssociation
, l'istanza non viene riavviata dopo l'esecuzione di Patch Manager. Per ulteriori informazioni, consultaNome parametro: RebootOption).Nota
Quando una patch specificata dalle regole di base viene installata prima Patch Manager dell'aggiornamento dell'istanza di Gestione patch, è possibile che il sistema non venga riavviato come previsto. Ciò può verificarsi quando una patch viene installata manualmente da un utente o installata automaticamente da un altro programma, ad esempio il pacchetto
unattended-upgrades
su Ubuntu Server.
Nome parametro: BaselineTags
Utilizzo: facoltativo.
BaselineTags
è un un key value di tag univoco, scelto e assegnato a una base di patch personalizzata. È possibile specificare uno o più valori per questo parametro. Sono validi entrambi dei seguenti formati:
Key=
tag-key
,Values=tag-value
Key=
tag-key
,Values=tag-value1
,tag-value2
,tag-value3
Importante
Le chiavi e i valori dei tag non consentono la presenza dei seguenti caratteri: backtick (`), virgolette singole ('), virgolette doppie (“) e simbolo del dollaro ($).
Il valore BaselineTags
è utilizzato da Patch Manager per assicurare che una serie di istanze a cui vengono applicate le patch in un'unica operazione abbiano la stessa serie di patch approvate. Quando viene eseguita l'operazione di patch, Patch Manager controlla se una base di patch per il tipo di sistema operativo è contrassegnata con la stessa coppia di key value per BaselineTags
. Se c'è una corrispondenza, viene utilizzata questa base di patch personalizzata. Se non esiste una corrispondenza, una baseline delle patch viene identificata in base a qualsiasi gruppo di patch specificato per l'operazione di applicazione di patch. Se non ce n'è alcuna, la base di patch predefinita gestita da AWS viene utilizzata per tale sistema operativo.
Requisiti di permesso aggiuntivi
Se utilizzi AWS-RunPatchBaselineAssociation
nelle operazioni di applicazione di patch diverse da quelle configurate utilizzando Quick Setup, e desideri utilizzare l'opzione opzionale BaselineTags
, è necessario aggiungere le seguenti autorizzazioni al profilo dell'istanza per istanze Amazon Elastic Compute Cloud (Amazon EC2).
Nota
Quick Setup e AWS-RunPatchBaselineAssociation
non supportano server e macchine virtuali locali.
{ "Effect": "Allow", "Action": [ "ssm:DescribePatchBaselines", "tag:GetResources" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetPatchBaseline", "ssm:DescribeEffectivePatchesForPatchBaseline" ], "Resource": "
patch-baseline-arn
" }
Sostituisci patch-baseline-arn
con l'Amazon Resource Name (ARN) della base di patch a cui desideri fornire l'accesso, nel formato arn:aws:ssm:us-east-2:123456789012:patchbaseline/pb-0c10e65780EXAMPLE
.
Nome parametro: AssociationId
Utilizzo: obbligatorio.
AssociationId
è l'ID di un'associazione esistente in State Manager, una funzionalità di AWS Systems Manager. È usato da Patch Manager per aggiungere i dati di conformità a un'associazione specificata. Questa associazione è correlata a un'operazione Scan
di patch abilitata in una configurazione di gestione host creata in Quick Setup. Inviando i risultati dell'applicazione di patch come dati di conformità dell'associazione anziché dati di conformità dell'inventario, le informazioni di conformità dell'inventario esistenti per le istanze non vengono sovrascritte dopo un'operazione di applicazione di patch né per altri ID di associazione. Se non disponi già di un'associazione da utilizzare, è possibile crearla eseguendo il comando create-association. Per esempio:
Nome parametro: InstallOverrideList
Utilizzo: facoltativo.
Utilizzando InstallOverrideList
, è possibile specificare un URL https o un URL in stile percorso Amazon Simple Storage Service (Amazon S3) per un elenco delle patch da installare. Questo elenco di installazione delle patch, gestito in formato YAML, sostituisce le patch specificate dalla base di patch predefinita corrente. Ciò consente di avere un controllo più granulare su quali patch vengono installate nelle istanze.
Importante
Il nome del file InstallOverrideList
non consente la presenza dei seguenti caratteri: backtick (`), virgolette singole ('), virgolette doppie (“) e simbolo del dollaro ($).
Il comportamento dell'applicazione di patch quando si utilizza il parametro InstallOverrideList
, differisce tra nodi gestiti da Linux e macOS o da Windows Server. Su Linux e macOS, Patch Manager tenta di applicare le patch incluse nell'elenco InstallOverrideList
delle patch presenti in qualsiasi repository abilitato sul nodo, indipendentemente dal fatto che corrispondano o meno alle regole della baseline delle patch. Sui nodi di Windows Server, tuttavia, le patch nell'elenco InstallOverrideList
vengono applicate solo quando corrispondono anche alle regole della baseline delle patch.
I report di conformità rispecchiano gli stati delle patch in base a quanto specificato nella base di patch, non ciò che hai specificato in un elenco InstallOverrideList
di patch. In altre parole, le operazioni di scansione ignorano il parametro InstallOverrideList
. In questo modo si garantisce che i report di conformità rispecchino in modo omogeneo gli stati delle patch in base alla policy anziché in base a quanto era stato approvato per una specifica operazione di applicazione di patch.
Formati URL validi
Nota
Quando il file è archiviato in un bucket pubblicamente disponibile, è possibile specificare un formato URL https o un URL in stile percorso Amazon S3. Quando il file è archiviato in un bucket privato, è necessario specificare un URL in stile percorso Amazon S3.
-
Esempio di formato URL https:
https://s3.amazonaws.com/amzn-s3-demo-bucket/my-windows-override-list.yaml
-
Esempio di URL in stile percorso Amazon S3:
s3://amzn-s3-demo-bucket/my-windows-override-list.yaml
Formati dei contenuti YAML validi
I formati utilizzati per specificare le patch nell'elenco variano in base al sistema operativo dell'istanza. Il formato generale, tuttavia, è quello riportato di seguito:
patches: - id: '{patch-d}' title: '{patch-title}' {
additional-fields
}:{values
}
Benché sia possibile specificare altri campi nel file YAML, questi verranno ignorati durante le operazioni delle patch.
Inoltre, è consigliabile verificare che il formato del file YAML sia valido prima di aggiungere o aggiornare l'elenco nel bucket S3. Per ulteriori informazioni sul formato YAML, consulta yaml.org
-
Microsoft Windows
id
Il campo id è obbligatorio. Utilizzalo per specificare le patch utilizzando gli ID di Microsoft Knowledge Base (ad esempio KB2736693) e gli ID di Microsoft Security Bulletin (ad esempio MS17-023).
Tutti gli altri campi che intendi fornire in un elenco di patch per Windows sono facoltativi e hanno unicamente scopo informativo. È possibile utilizzare altri campi, come title, classification, severity o qualsiasi altro per fornire informazioni più dettagliate sulle patch specificate.
-
Linux
id
Il campo id è obbligatorio. Utilizzalo per specificare le patch con l'architettura e il nome del pacchetto. Ad esempio:
'dhclient.x86_64'
. Negli id, è possibile utilizzare i caratteri jolly per indicare più pacchetti. Ad esempio:'dhcp*'
ed'dhcp*1.*'
.titolo
Il campo titolo è facoltativo, ma nei sistemi Linux offre funzionalità di filtraggio aggiuntive. Quando utilizzi titolo, è necessario che il campo includa le informazioni sulla versione del pacchetto in uno dei seguenti formati:
YUM/SUSE Linux Enterprise Server (SLES):
{name}.{architecture}:{epoch}:{version}-{release}
APT
{name}.{architecture}:{version}
Per i titoli delle patch di Linux, è possibile utilizzare uno o più caratteri jolly in qualsiasi posizione per ampliare il numero di corrispondenze dei pacchetti. Ad esempio:
'*32:9.8.2-0.*.rc1.57.amzn1'
.Ad esempio:
-
Il pacchetto apt versione 1.2.25 è correntemente installato nell'istanza, ma ora è disponibile la versione 1.2.27.
-
È possibile aggiungere apt.amd64 versione 1.2.27 all'elenco delle patch. Dipende da apt-utils.amd64 versione 1.2.27, ma apt-utils.amd64 versione 1.2.25 viene specificato nell'elenco.
In questo caso, apt versione 1.2.27 non verrà installato e verrà indicato come "Failed-NonCompliant".
-
Altri campi
Tutti gli altri campi che intendi fornire in un elenco di patch per Linux sono facoltativi e hanno unicamente scopo informativo. È possibile utilizzare altri campi, come classification, severity o qualsiasi altro per fornire informazioni più dettagliate sulle patch specificate.
Elenchi di patch di esempio
-
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 parametro: RebootOption
Utilizzo: facoltativo.
Opzioni: RebootIfNeeded
| NoReboot
Default: RebootIfNeeded
avvertimento
L'opzione predefinita è RebootIfNeeded
. Assicurarsi di selezionare l'opzione corretta per il caso d'uso. Ad esempio, quando è necessario che le istanze vengano riavviate immediatamente per completare un processo di configurazione, scegli RebootIfNeeded
. Oppure, quando è necessario mantenere la disponibilità delle istanze fino a un orario di riavvio pianificato, scegli NoReboot
.
Importante
Non è consigliabile utilizzare Patch Manager per applicare patch a istanze cluster in Amazon EMR (precedentemente chiamato Amazon Elastic MapReduce). In particolare, non selezionare l'opzione RebootIfNeeded
per il parametro RebootOption
. (Questa opzione è disponibile nei documenti del comando SSM per l'applicazione di patch AWS-RunPatchBaseline
, AWS-RunPatchBaselineAssociation
e AWS-RunPatchBaselineWithHooks
).
I comandi sottostanti per applicare le patch tramite Patch Manager utilizzano i comandi yum
e dnf
. Pertanto, le operazioni generano incompatibilità a causa del modo in cui i pacchetti vengono installati. Per informazioni sui metodi preferiti per l'aggiornamento del software sui cluster Amazon EMR, consulta Utilizzo dell’AMI predefinita per Amazon EMR nella Guida per la gestione di Amazon EMR.
- RebootIfNeeded
-
Quando si sceglie l'opzione
RebootIfNeeded
, l'istanza viene riavviata in uno dei seguenti casi:-
Patch Manager installato uno o più patch.
Patch Manager non valuta se un riavvio è obbligatorio per la patch. Il sistema viene riavviato anche se la patch non richiede il riavvio.
-
Patch Manager rileva una o più patch con lo stato di
INSTALLED_PENDING_REBOOT
durante l'operazioneInstall
.Lo stato
INSTALLED_PENDING_REBOOT
indica che l'opzioneNoReboot
è stata selezionata l'ultima volta che l'operazioneInstall
è stata eseguita, o che una patch è stata installata all'esterno di Patch Manager dall'ultimo riavvio del nodo gestito.
Il riavvio delle istanze in questi due casi garantisce che i pacchetti aggiornati vengano svuotati dalla memoria e mantengano coerenti il comportamento di patch e di riavvio in tutti i sistemi operativi.
-
- NoReboot
-
Quando scegli l'opzione
NoReboot
, Patch Manager non riavvia l'istanza anche se ha installato patch durante l'operazione diInstall
Questa opzione è utile se le istanze non richiedono il riavvio dopo l'applicazione di patch, oppure nel caso di applicazioni o processi in esecuzione su un'istanza che non dovrebbero essere interrotti da un riavvio a seguito di un'operazione di applicazione di patch. È utile anche quando vuoi un maggiore controllo sui tempi dei riavvii dell'istanza, ad esempio utilizzando una finestra di manutenzione.
File di monitoraggio dell'installazione delle patch: per tenere traccia dell'installazione delle patch, in particolare delle patch installate dopo l'ultimo riavvio del sistema, Systems Manager mantiene un file nell'istanza gestita.
Importante
Non eliminare o modificare il file di monitoraggio. Quando questo file viene eliminato o danneggiato, il rapporto di conformità della patch per l'istanza non è accurato. In questo caso, riavvia l'istanza ed esegui un'operazione di scansione della patch per ripristinare il file.
Questo file di monitoraggio viene archiviato nei seguenti percorsi nelle istanze gestite:
-
Sistemi operativi Linux:
-
/var/log/amazon/ssm/patch-configuration/patch-states-configuration.json
-
/var/log/amazon/ssm/patch-configuration/patch-inventory-from-last-operation.json
-
-
Windows Server sistema operativo:
-
C:\ProgramData\Amazon\PatchBaselineOperations\State\PatchStatesConfiguration.json
-
C:\ProgramData\Amazon\PatchBaselineOperations\State\PatchInventoryFromLastOperation.json
-