Amazon Linux 2 관리형 노드에서 Kernel Live Patching 사용 - AWS Systems Manager

Amazon Linux 2 관리형 노드에서 Kernel Live Patching 사용

Amazon Linux 2용 Kernel Live Patching을 사용하면 실행 중인 애플리케이션을 재부팅하거나 중단하지 않고 실행 중인 Linux 커널에 보안 취약성 및 중요 버그 패치를 적용할 수 있습니다. 이를 통해 서비스 및 애플리케이션 가용성을 향상하는 동시에 인프라를 최신 상태로 안전하게 유지할 수 있습니다. Kernel Live Patching은 Amazon EC2 인스턴스와 Amazon Linux 2를 실행하는 AWS IoT Greengrass 코어 디바이스, 온프레미스 가상 머신에서 지원됩니다.

Kernel Live Patching에 대한 일반적인 내용은 Amazon EC2 사용 설명서Amazon Linux 2의 Kernel Live Patching을 참조하세요.

Amazon Linux 2 관리형 노드에서 Kernel Live Patching을 설정한 후 AWS Systems Manager의 기능인 Patch Manager를 사용하여 커널 라이브 패치를 인스턴스에 적용할 수 있습니다. 노드에서 기존 yum 워크플로를 사용하여 업데이트를 적용하는 대신 Patch Manager를 사용할 수 있습니다.

시작하기 전 준비 사항

Patch Manager를 사용하여 커널 라이브 패치를 Amazon Linux 2 관리형 노드에 적용하려면 노드가 올바른 아키텍처와 커널 버전을 기반으로 해야 합니다. 자세한 내용은 Amazon EC2 사용 설명서지원되는 구성 및 사전 조건을 참조하세요.

Kernel Live Patching 및 Patch Manager 정보

커널 버전 업데이트

커널 라이브 패치 업데이트를 적용한 후 관리형 노드를 재부팅할 필요가 없습니다. 그러나 AWS는 릴리스 후 최대 3개월 동안 Amazon Linux 2 커널 버전에 대한 커널 라이브 패치를 제공합니다. 3개월 후 커널 라이브 패치를 계속 받으려면 최신 커널 버전으로 업데이트해야 합니다. 유지 관리 기간을 사용하여 커널 버전 업데이트를 요청하는 메시지를 표시하도록 최소 3개월에 한 번 노드 재부팅을 예약하는 것이 좋습니다.

커널 라이브 패치 제거

커널 라이브 패치는 Patch Manager를 사용하여 제거할 수 없습니다. 대신 Kernel Live Patching을 해제하여 적용된 커널 라이브 패치에 대한 RPM 패키지를 제거할 수 있습니다. 자세한 내용은 Run Command를 사용하여 Kernel Live Patching을 해제하려면 단원을 참조하십시오.

커널 규정 준수

경우에 따라 현재 커널 버전에 대한 라이브 패치에서 모든 CVE 수정 사항을 설치하면 해당 커널이 최신 커널 버전과 동일한 규정 준수 상태가 될 수 있습니다. 이 경우 최신 버전은 Installed으로 보고되고 관리형 노드는 Compliant로 보고됩니다. 그러나 최신 커널 버전에서는 설치 시간이 보고되지 않습니다.

하나의 커널 라이브 패치, 여러 CVE

커널 라이브 패치가 여러 CVE를 해결하고 해당 CVE가 다양한 분류 및 심각도 값을 갖는 경우, CVE에서 가장 높은 분류 및 심각도만 해당 패치에 대해 보고됩니다.

이 섹션의 나머지 부분에서는 Patch Manager를 사용하여 이러한 요구 사항을 충족하는 관리형 노드에 커널 라이브 패치를 적용하는 방법을 설명합니다.

작동 방식

AWS는 Amazon Linux 2를 위한 2가지 유형의 커널 라이브 패치인 보안 업데이트와 버그 수정 사항을 릴리스합니다. 이러한 유형의 패치를 적용하려면 다음 표에 나열된 분류 및 심각도만 대상으로 하는 패치 기준 문서를 사용합니다.

분류 심각도
Security Critical, Important
Bugfix All

이러한 패치만 대상으로 하는 사용자 지정 패치 기준을 생성하거나, 미리 정의된 AWS-AmazonLinux2DefaultPatchBaseline 패치 기준을 사용할 수 있습니다. 즉, Kernel Live Patching이 설정된 Amazon Linux 2 관리형 노드에서 AWS-AmazonLinux2DefaultPatchBaseline을 사용할 수 있으며 커널 라이브 업데이트가 적용됩니다.

참고

AWS-AmazonLinux2DefaultPatchBaseline 구성은 패치가 릴리스되거나 마지막으로 업데이트된 후 자동으로 설치되기 전에 7일의 대기 기간을 지정합니다. 7일 동안 커널 라이브 패치 자동 승인을 기다리지 않으려면 사용자 정의 패치 기준선을 생성하여 사용합니다. 패치 기준에서 자동 승인 대기 기간을 지정하거나 더 짧거나 긴 대기 기간을 지정할 수 있습니다. 자세한 내용은 사용자 정의 패치 기준 작업 단원을 참조하십시오.

커널 라이브 업데이트로 관리형 노드를 패치하려면 다음 전략을 사용하는 것이 좋습니다.

  1. Amazon Linux 2 관리형 노드에서 Kernel Live Patching 활성화

  2. AWS Systems Manager의 기능인 Run Command를 사용하여 미리 정의된 AWS-AmazonLinux2DefaultPatchBaseline 또는 심각도가 CriticalImportant로 분류되었고 Bugfix 심각도가 AllSecurity 업데이트만 대상으로 하는 사용자 정의 패치 기준을 사용하여 관리형 노드에서 Scan 작업을 실행합니다.

  3. AWS Systems Manager의 기능인 규정 준수(Compliance)를 사용하여 스캔된 관리형 노드에 대해 패치 규정 미준수가 보고되는지 검토합니다. 그렇다면 노드 규정 준수 세부 정보를 보고, 관리형 노드에서 누락된 커널 라이브 패치가 있는지 확인합니다.

  4. 누락된 커널 라이브 패치를 설치하려면 이전에 지정한 것과 동일한 패치 기준에서 Run Command을 사용합니다. 하지만 이번에는 Scan 작업 대신 Install 작업을 실행합니다.

    커널 라이브 패치는 재부팅할 필요 없이 설치되므로 이 작업에 대해 NoReboot 재부팅 옵션을 선택할 수 있습니다.

    참고

    노드에 설치된 다른 유형의 패치가 필요하거나 최신 커널로 업데이트하려는 경우에도 관리형 노드를 재부팅할 수 있습니다. 이러한 경우 RebootIfNeeded 재부팅 옵션을 대신 선택합니다.

  5. 규정 준수로 돌아가서 커널 라이브 패치가 설치되었는지 확인합니다.

Run Command를 사용하여 Kernel Live Patching 설정

Kernel Live Patching을 설정하기 위해 관리형 노드에서 yum 명령을 실행하거나 Run Command와 생성한 사용자 정의 Systems Manager 문서(SSM 문서)를 사용할 수 있습니다.

관리형 노드에서 직접 yum 명령을 실행하여 Kernel Live Patching을 켜는 것에 대한 자세한 내용은 Amazon EC2 사용 설명서Kernel Live Patching 활성화를 참조하세요.

참고

커널 라이브 패칭을 설정할 때 관리형 노드에서 이미 실행 중인 커널이 kernel-4.14.165-131.185.amzn2.x86_64(지원되는 최소 버전)보다 이전 버전이면 프로세스가 사용 가능한 최신 커널 버전을 설치하고 관리형 노드를 재부팅합니다. 노드가 kernel-4.14.165-131.185.amzn2.x86_64 이상을 이미 실행하고 있는 경우 프로세스가 최신 버전을 설치하지 않고 노드를 재부팅하지 않습니다.

Run Command를 사용하여 Kernel Live Patching을 설정하려면(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Run Command를 선택합니다.

  3. Run command(Run 명령)를 선택합니다.

  4. [Command 문서(Command document)] 목록에서 사용자 정의 SSM 문서 AWS-ConfigureKernelLivePatching을 선택합니다.

  5. 명령 파라미터 섹션에서 이 작업의 일부로 관리형 노드를 재부팅할지 여부를 지정합니다.

  6. 이 페이지의 나머지 컨트롤 작업에 대한 자세한 내용은 콘솔에서 명령 실행 섹션을 참조하세요.

  7. Run(실행)을 선택합니다.

Kernel Live Patching을 설정하려면(AWS CLI)
  • 로컬 시스템에서 다음 명령을 실행합니다.

    Linux & macOS
    aws ssm send-command \ --document-name "AWS-ConfigureKernelLivePatching" \ --parameters "EnableOrDisable=Enable" \ --targets "Key=instanceids,Values=instance-id"
    Windows Server
    aws ssm send-command ^ --document-name "AWS-ConfigureKernelLivePatching" ^ --parameters "EnableOrDisable=Enable" ^ --targets "Key=instanceids,Values=instance-id"

    instance-id를 기능을 설정할 Amazon Linux 2 관리형 노드의 ID로 바꿉니다(예: i-02573cafcfEXAMPLE). 여러 관리형 노드에서 기능을 설정하기 위해 다음 형식 중 하나를 사용할 수 있습니다.

    • --targets "Key=instanceids,Values=instance-id1,instance-id2"

    • --targets "Key=tag:tag-key,Values=tag-value"

    명령에서 사용할 수 있는 기타 옵션에 대한 자세한 내용은 AWS CLI 명령 레퍼런스의 send-command 를 참조하세요.

Run Command을 사용하여 커널 라이브 패치 적용

커널 라이브 패치를 적용하기 위해 관리형 노드에서 yum 명령을 실행하거나, Run Command 및 SSM 문서 AWS-RunPatchBaseline을 사용할 수 있습니다.

관리형 노드에서 직접 yum 명령을 실행하여 커널 라이브 패치를 적용하는 것에 대한 자세한 내용은 Amazon EC2 사용 설명서커널 라이브 패치 적용을 참조하세요.

Run Command을 사용하여 커널 라이브 패치를 적용하려면(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Run Command를 선택합니다.

  3. Run command(Run 명령)를 선택합니다.

  4. [Command 문서(Command document)] 목록에서 SSM 문서 AWS-RunPatchBaseline을 선택합니다.

  5. 명령 파라미터 섹션에서 다음 중 하나를 수행합니다.

    • 새 커널 라이브 패치가 사용 가능한지 확인하려는 경우 [작업(Operation)]에서 [Scan]을 선택합니다. 이 작업 후에 관리형 노드를 재부팅하지 않으려면 재부팅 옵션(Reboot Option)에서 NoReboot를 선택합니다. 작업이 완료되면 Compliance에서 새 패치 및 규정 준수 상태를 확인할 수 있습니다.

    • 패치 규정 준수를 이미 확인하고 사용 가능한 커널 라이브 패치를 적용할 준비가 된 경우 작업에서 Install를 선택합니다. 이 작업 후에 관리형 노드를 재부팅하지 않으려면 재부팅 옵션(Reboot Option)에서 NoReboot를 선택합니다.

  6. 이 페이지의 나머지 컨트롤 작업에 대한 자세한 내용은 콘솔에서 명령 실행 섹션을 참조하세요.

  7. Run(실행)을 선택합니다.

Run Command을 사용하여 커널 라이브 패치를 적용하려면(AWS CLI)
  1. Compliance에서 결과를 확인하기 전에 Scan 작업을 수행하려면 로컬 시스템에서 다음 명령을 실행합니다.

    Linux & macOS
    aws ssm send-command \ --document-name "AWS-RunPatchBaseline" \ --targets "Key=InstanceIds,Values=instance-id" \ --parameters '{"Operation":["Scan"],"RebootOption":["RebootIfNeeded"]}'
    Windows Server
    aws ssm send-command ^ --document-name "AWS-RunPatchBaseline" ^ --targets "Key=InstanceIds,Values=instance-id" ^ --parameters {\"Operation\":[\"Scan\"],\"RebootOption\":[\"RebootIfNeeded\"]}

    명령에서 사용할 수 있는 기타 옵션에 대한 자세한 내용은 AWS CLI 명령 레퍼런스의 send-command 를 참조하세요.

  2. Compliance에서 결과를 확인한 후 Install 작업을 수행하려면 로컬 시스템에서 다음 명령을 실행합니다.

    Linux & macOS
    aws ssm send-command \ --document-name "AWS-RunPatchBaseline" \ --targets "Key=InstanceIds,Values=instance-id" \ --parameters '{"Operation":["Install"],"RebootOption":["NoReboot"]}'
    Windows Server
    aws ssm send-command ^ --document-name "AWS-RunPatchBaseline" ^ --targets "Key=InstanceIds,Values=instance-id" ^ --parameters {\"Operation\":[\"Install\"],\"RebootOption\":[\"NoReboot\"]}

앞의 두 명령 모두에서 instance-id를 커널 라이브 패치를 적용할 Amazon Linux 2 관리형 노드의 ID로 바꿉니다(예: i-02573cafcfEXAMPLE). 여러 관리형 노드에서 기능을 설정하기 위해 다음 형식 중 하나를 사용할 수 있습니다.

  • --targets "Key=instanceids,Values=instance-id1,instance-id2"

  • --targets "Key=tag:tag-key,Values=tag-value"

이러한 명령에서 사용할 수 있는 기타 옵션에 대한 자세한 내용은 AWS CLI 명령 레퍼런스의 send-command 를 참조하세요.

Run Command를 사용하여 Kernel Live Patching을 해제하려면

Kernel Live Patching을 해제하기 위해 관리형 노드에서 yum 명령을 실행하거나, Run Command 및 사용자 정의 SSM 문서 AWS-ConfigureKernelLivePatching을 사용할 수 있습니다.

참고

커널 라이브 패치를 더 이상 사용할 필요가 없는 경우 언제든지 해제할 수 있습니다. 대부분의 경우 이 기능을 해제할 필요가 없습니다.

관리형 노드에서 직접 yum 명령을 실행하여 Kernel Live Patching 설정을 비활성화하는 것에 대한 자세한 내용은 Amazon EC2 사용 설명서Kernel Live Patching 활성화를 참조하세요.

참고

Kernel Live Patching을 해제하면 프로세스가 Kernel Live Patching 플러그인을 제거하고 관리형 노드를 재부팅합니다.

Run Command를 사용하여 Kernel Live Patching을 해제하려면(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Run Command를 선택합니다.

  3. Run command(Run 명령)를 선택합니다.

  4. [Command 문서(Command document)] 목록에서 SSM 문서 AWS-ConfigureKernelLivePatching을 선택합니다.

  5. 명령 파라미터 섹션에서 필요한 파라미터의 값을 지정합니다.

  6. 이 페이지의 나머지 컨트롤 작업에 대한 자세한 내용은 콘솔에서 명령 실행 섹션을 참조하세요.

  7. Run(실행)을 선택합니다.

Kernel Live Patching을 해제하려면(AWS CLI)
  • 다음과 유사한 명령을 실행합니다.

    Linux & macOS
    aws ssm send-command \ --document-name "AWS-ConfigureKernelLivePatching" \ --targets "Key=instanceIds,Values=instance-id" \ --parameters "EnableOrDisable=Disable"
    Windows Server
    aws ssm send-command ^ --document-name "AWS-ConfigureKernelLivePatching" ^ --targets "Key=instanceIds,Values=instance-id" ^ --parameters "EnableOrDisable=Disable"

    instance-id를 기능을 비활성화할 Amazon Linux 2 관리형 노드의 ID로 바꿉니다(예: i-02573cafcfEXAMPLE). 여러 관리형 노드에서 기능을 비활성화하기 위해 다음 형식 중 하나를 사용할 수 있습니다.

    • --targets "Key=instanceids,Values=instance-id1,instance-id2"

    • --targets "Key=tag:tag-key,Values=tag-value"

    명령에서 사용할 수 있는 기타 옵션에 대한 자세한 내용은 AWS CLI 명령 레퍼런스의 send-command 를 참조하세요.