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
Exceto quando uma operação de patch usa uma política de patch, usar o parâmetro BaselineOverride
nã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
.
No entanto, quando uma operação de patch usa uma política de patch, o sistema passa o parâmetro de substituição do bucket do S3 associado e o valor de conformidade é atualizado para o nó gerenciado. Para obter mais informações sobre comportamentos de políticas de patch, consulte Usar políticas de patch da Quick Setup.
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": [] } ]