Usar o parâmetro BaselineOverride - AWS Systems Manager

Usar o parâmetro BaselineOverride

Defina as preferências da aplicação de patches no runtime usando o recurso de substituição da lista de referência no Patch Manager, um recurso do AWS Systems Manager. Faça isso especificando um bucket do Amazon Simple Storage Service (Amazon S3) que contenha um objeto JSON com uma lista de referência de patches. A operação de patch usa as linhas de base fornecidas no objeto JSON que correspondem ao sistema operacional host em vez de aplicar as regras da linha de base do patch padrão.

nota

Usar oBaselineOverridenão substitui a conformidade do patch da linha de base fornecida no parâmetro. Os resultados de saída são registrados nos logs Stdout deRun Command, um recurso doAWS Systems Manager. Os resultados apenas imprimem pacotes marcados comoNON_COMPLIANT. Isso significa que o pacote está marcado comoMissing,Failed,InstalledRejected, ouInstalledPendingReboot.

Usando a substituição da linha de base do patch com parâmetros Id de Snapshot ou Lista de Sobreposição de Instalação

Há dois casos em que a substituição da linha de base do patch tem um comportamento digno de nota.

Usando substituição de linha de base e ID de Snapshot ao mesmo tempo

Os IDs do snapshot garantem que todos os nós gerenciados em um determinado comando de patch apliquem a mesma coisa. Por exemplo, se você corrigir 1.000 nós gerenciados ao mesmo tempo, os patches serão os mesmos.

Ao usar um ID de Snapshot e uma substituição de linha de base de patch, o ID de Snapshot tem precedência sobre a substituição de linha de base do patch. As regras de substituição de linha de base ainda serão usadas, mas elas serão avaliadas apenas uma vez. No exemplo anterior, os patches em seus 1.000 nós gerenciados continuarão sempre os mesmos. Se, no meio da operação de patch, você alterou o arquivo JSON no bucket S3 referenciado para ser algo diferente, os patches aplicados continuarão sendo os mesmos. Isso ocorre porque o ID do Snapshot foi fornecido.

Usando substituição de linha de base e Lista de Substituição de Instalação ao mesmo tempo

Você não pode usar esses dois parâmetros ao mesmo tempo. O documento de patch falhará se ambos os parâmetros forem fornecidos e não executará nenhuma verificação ou instalação em seu nó gerenciado.

Exemplos de código

O exemplo de código a seguir para Python mostra como gerar a substituição de linha de base do patch.

import boto3 import json ssm = boto3.client('ssm') s3 = boto3.resource('s3') s3_bucket_name = 'my-baseline-override-bucket' s3_file_name = 'MyBaselineOverride.json' baseline_ids_to_export = ['pb-0000000000000000', 'pb-0000000000000001'] baseline_overrides = [] for baseline_id in baseline_ids_to_export: baseline_overrides.append(ssm.get_patch_baseline( BaselineId=baseline_id )) json_content = json.dumps(baseline_overrides, indent=4, sort_keys=True, default=str) s3.Object(bucket_name=s3_bucket_name, key=s3_file_name).put(Body=json_content)

Isso produz uma substituição de linha de base de patch, como a seguir.

[ { "ApprovalRules": { "PatchRules": [ { "ApproveAfterDays": 0, "ComplianceLevel": "UNSPECIFIED", "EnableNonSecurity": false, "PatchFilterGroup": { "PatchFilters": [ { "Key": "PRODUCT", "Values": [ "*" ] }, { "Key": "CLASSIFICATION", "Values": [ "*" ] }, { "Key": "SEVERITY", "Values": [ "*" ] } ] } } ] }, "ApprovedPatches": [], "ApprovedPatchesComplianceLevel": "UNSPECIFIED", "ApprovedPatchesEnableNonSecurity": false, "GlobalFilters": { "PatchFilters": [] }, "OperatingSystem": "AMAZON_LINUX_2", "RejectedPatches": [], "RejectedPatchesAction": "ALLOW_AS_DEPENDENCY", "Sources": [] }, { "ApprovalRules": { "PatchRules": [ { "ApproveUntilDate": "2021-01-06", "ComplianceLevel": "UNSPECIFIED", "EnableNonSecurity": true, "PatchFilterGroup": { "PatchFilters": [ { "Key": "PRODUCT", "Values": [ "*" ] }, { "Key": "CLASSIFICATION", "Values": [ "*" ] }, { "Key": "SEVERITY", "Values": [ "*" ] } ] } } ] }, "ApprovedPatches": [ "open-ssl*" ], "ApprovedPatchesComplianceLevel": "UNSPECIFIED", "ApprovedPatchesEnableNonSecurity": false, "GlobalFilters": { "PatchFilters": [] }, "OperatingSystem": "CENTOS", "RejectedPatches": [ "python*" ], "RejectedPatchesAction": "ALLOW_AS_DEPENDENCY", "Sources": [] } ]