Amazon Linux 2의 커널 라이브 패치 - Amazon Elastic Compute Cloud

Amazon Linux 2의 커널 라이브 패치

Amazon Linux 2의 커널 라이브 패치를 사용하면 실행 중인 애플리케이션을 재부팅하거나 중단하지 않고 실행 중인 Linux 커널에 보안 취약성 및 중요 버그 패치를 적용할 수 있습니다. 이를 통해 서비스 및 애플리케이션 가용성을 향상하는 동시에 인프라를 최신 상태로 안전하게 유지할 수 있습니다.

AWS는 Amazon Linux 2에 대해 다음과 같은 2가지 유형의 커널 라이브 패치를 릴리스합니다.

  • 보안 업데이트 - Linux의 CVE(Common Vulnerabilities and Exposures)에 대한 업데이트가 포함되어 있습니다. 이러한 업데이트는 일반적으로 Amazon Linux 보안 권고 등급을 사용하여 중요 또는 매우 중요로 등급이 매겨지며, 대개 CVSS(Common Vulnerability Scoring System) 점수 7 이상에 매핑됩니다. 경우에 따라 CVE가 할당되기 전에 AWS에서 업데이트를 제공할 수 있습니다. 이러한 경우 패치가 버그 수정으로 나타날 수 있습니다.

  • 버그 수정 - CVE와 관련되지 않은 중요한 버그 및 안정성 문제에 대한 수정 사항이 포함되어 있습니다.

AWS는 릴리스 후 최대 3개월 동안 Amazon Linux 2 커널 버전에 대한 커널 라이브 패치를 제공합니다. 3개월 후 커널 라이브 패치를 계속 받으려면 최신 커널 버전으로 업데이트해야 합니다.

Amazon Linux 2 커널 라이브 패치는 기존 Amazon Linux 2 리포지토리에서 서명된 RPM 패키지로 사용할 수 있으며, 패치는 기존 yum 워크플로를 사용하여 개별 인스턴스에 설치하거나 AWS Systems Manager를 사용하여 관리형 인스턴스 그룹에 설치할 수 있습니다.

Amazon Linux 2의 커널 라이브 패치는 추가 비용 없이 제공됩니다.

지원되는 구성 및 사전 조건

커널 라이브 패치는 Amazon Linux 2를 실행하는 Amazon EC2 인스턴스 및 온프레미스 가상 머신에서 지원됩니다.

Amazon Linux 2에서 커널 라이브 패치를 사용하려면 다음을 사용해야 합니다.

  • x86_64 아키텍처의 커널 버전 4.14 또는 5.10

  • ARM64 아키텍처의 커널 버전 5.10

정책 요구 사항

Amazon Linux 리포지토리에서 패키지를 다운로드하려면 Amazon Elastic Compute Cloud가 서비스 소유 Amazon S3 버킷에 액세스할 수 있어야 합니다. 환경에서 Amazon S3용 Amazon Virtual Private Cloud(VPC) 엔드포인트를 사용하는 경우 VPC 엔드포인트 정책이 해당 퍼블릭 버킷에 대한 액세스를 허용하는지 확인해야 합니다.

이 표에서는 커널 라이브 패치를 위해 EC2가 액세스해야 할 수 있는 각 Amazon S3 버킷에 대해 설명합니다.

S3 버킷 ARN 설명
arn:aws:s3:::packages.region.amazonaws.com/*

Amazon Linux AMI 패키지가 포함된 Amazon S3 버킷

arn:aws:s3:::repo.region.amazonaws.com/*

Amazon Linux AMI 리포지토리가 포함된 Amazon S3 버킷

arn:aws:s3:::amazonlinux.region.amazonaws.com/*

Amazon Linux 2 리포지토리가 포함된 Amazon S3 버킷

arn:aws:s3:::amazonlinux-2-repos-region/*

Amazon Linux 2 리포지토리가 포함된 Amazon S3 버킷

다음 정책은 조직에 속한 아이덴티티와 리소스에 대한 액세스를 제한하고 커널 라이브 패치에 필요한 Amazon S3 버킷에 대한 액세스를 제공하는 방법을 보여줍니다. region, principal-org-idresource-org-id를 해당 조직의 값으로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRequestsByOrgsIdentitiesToOrgsResources", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "principal-org-id", "aws:ResourceOrgID": "resource-org-id" } } }, { "Sid": "AllowAccessToAmazonLinuxAMIRepositories", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::packages.region.amazonaws.com/*", "arn:aws:s3:::repo.region.amazonaws.com/*", "arn:aws:s3:::amazonlinux.region.amazonaws.com/*", "arn:aws:s3:::amazonlinux-2-repos-region/*" ] } ] }

커널 라이브 패치 작업

인스턴스 자체의 명령줄을 사용하여 개별 인스턴스에서 커널 라이브 패치를 사용하도록 설정하고 사용할 수 있습니다. 또는 AWS Systems Manager를 사용하여 관리형 인스턴스 그룹에서 커널 라이브 패치를 사용하도록 설정하고 사용할 수 있습니다.

다음 섹션에서는 명령줄을 사용하여 개별 인스턴스에서 커널 라이브 패치를 활성화하고 사용하는 방법에 대해 설명합니다.

관리형 인스턴스 그룹에서 커널 라이브 패치를 사용하도록 설정하고 사용하는 방법에 대한 자세한 내용은 AWS Systems Manager 사용 설명서에서 Amazon Linux 2 인스턴스에서 커널 라이브 패치 사용을 참조하세요.

커널 라이브 패치 활성화

커널 라이브 패치는 Amazon Linux 2에서 기본적으로 비활성화되어 있습니다. 라이브 패치를 사용하려면 커널 라이브 패치용 yum 플러그인을 설치하고 라이브 패치 기능을 활성화해야 합니다.

필수 조건

커널 라이브 패치는 binutils가 필요합니다. binutils가 설치하지 않은 경우 다음 명령을 사용하여 설치합니다.

$ sudo yum install binutils
커널 라이브 패치를 활성화하려면
  1. 커널 라이브 패치는 다음 Amazon Linux 2 커널 버전에 적용됩니다.

    • x86_64 아키텍처의 커널 버전 4.14 또는 5.10

    • ARM64 아키텍처의 커널 버전 5.10

    커널 버전을 확인하려면 다음 명령을 실행합니다.

    $ sudo yum list kernel
  2. 지원되는 커널 버전을 이미 사용하는 경우 이 단계를 건너뜁니다. 지원되는 커널 버전을 사용하지 않는 경우 다음 명령을 실행하여 커널을 최신 버전으로 업데이트하고 인스턴스를 재부팅합니다.

    $ sudo yum install -y kernel
    $ sudo reboot
  3. 커널 라이브 패치용 yum 플러그인을 설치합니다.

    $ sudo yum install -y yum-plugin-kernel-livepatch
  4. 커널 라이브 패치용 yum 플러그인을 활성화합니다.

    $ sudo yum kernel-livepatch enable -y

    또한 이 명령은 구성된 리포지토리에서 최신 버전의 커널 라이브 패치 RPM을 설치합니다.

  5. 커널 라이브 패치용 yum 플러그인이 성공적으로 설치되었는지 확인하려면 다음 명령을 실행합니다.

    $ rpm -qa | grep kernel-livepatch

    커널 라이브 패치를 활성화하면 빈 커널 라이브 패치 RPM이 자동으로 적용됩니다. 커널 라이브 패치가 성공적으로 활성화된 경우 이 명령에서 빈 커널 라이브 패치 RPM을 포함하는 목록이 반환됩니다. 출력의 예는 다음과 같습니다.

    yum-plugin-kernel-livepatch-1.0-0.11.amzn2.noarch kernel-livepatch-5.10.102-99.473-1.0-0.amzn2.x86_64
  6. kpatch 패키지를 설치합니다.

    $ sudo yum install -y kpatch-runtime
  7. kpatch 서비스가 이전에 설치된 경우 업데이트합니다.

    $ sudo yum update kpatch-runtime
  8. kpatch 서비스를 시작합니다. 이 서비스는 초기화 또는 부팅 시 모든 커널 라이브 패치를 로드합니다.

    $ sudo systemctl enable kpatch.service
  9. Amazon Linux 2 Extras Library의 커널 라이브 패치 주제를 사용합니다. 이 주제에는 커널 라이브 패치가 포함되어 있습니다.

    $ sudo amazon-linux-extras enable livepatch

사용 가능한 커널 라이브 패치 보기

Amazon Linux 보안 알림은 Amazon Linux 보안 센터에 게시됩니다. 커널 라이브 패치에 대한 알림을 포함한 Amazon Linux 2 보안 알림에 대한 자세한 내용은 Amazon Linux 보안 센터를 참조하십시오. 커널 라이브 패치에는 ALASLIVEPATCH라는 접두사가 붙습니다. Amazon Linux 보안 센터에는 버그를 해결하는 커널 라이브 패치가 나열되지 않을 수 있습니다.

명령줄을 사용하여 권고 및 CVE와 관련된 사용 가능한 커널 라이브 패치를 찾을 수도 있습니다.

권고와 관련된 사용 가능한 모든 커널 라이브 패치를 나열하려면

다음 명령을 사용합니다.

$ yum updateinfo list

다음은 출력의 예입니다.

Loaded plugins: extras_suggestions, kernel-livepatch, langpacks, priorities, update-motd ALAS2LIVEPATCH-2020-002 important/Sec. kernel-livepatch-5.10.102-99.473-1.0-3.amzn2.x86_64 ALAS2LIVEPATCH-2020-005 medium/Sec. kernel-livepatch-5.10.102-99.473-1.0-4.amzn2.x86_64 updateinfo list done
CVE와 관련된 사용 가능한 모든 커널 라이브 패치를 나열하려면

다음 명령을 사용합니다.

$ yum updateinfo list cves

다음은 출력의 예입니다.

Loaded plugins: extras_suggestions, kernel-livepatch, langpacks, priorities, update-motdamzn2-core/2/x86_64 | 2.4 kB 00:00:00 CVE-2019-15918 important/Sec. kernel-livepatch-5.10.102-99.473-1.0-3.amzn2.x86_64 CVE-2019-20096 important/Sec. kernel-livepatch-5.10.102-99.473-1.0-3.amzn2.x86_64 CVE-2020-8648 medium/Sec. kernel-livepatch-5.10.102-99.473-1.0-4.amzn2.x86_64 updateinfo list done

커널 라이브 패치 적용

yum 패키지 관리자를 사용하여 정기적인 업데이트를 적용하는 것과 같은 방식으로 커널 라이브 패치를 적용합니다. 커널 라이브 패치용 yum 플러그인을 사용하면 적용할 커널 라이브 패치가 관리되며 재부팅할 필요가 없습니다.

작은 정보

커널을 최신 상태로 안전하게 유지하도록 커널 라이브 패치를 사용하여 정기적으로 업데이트하는 것이 좋습니다.

특정 커널 라이브 패치를 적용하거나 정기 보안 업데이트와 함께 사용 가능한 커널 라이브 패치를 적용하도록 선택할 수 있습니다.

특정 커널 라이브 패치를 적용하려면
  1. 사용 가능한 커널 라이브 패치 보기에 설명된 명령 중 하나를 사용하여 커널 라이브 패치 버전을 가져옵니다.

  2. Amazon Linux 2 커널에 커널 라이브 패치를 적용합니다.

    $ sudo yum install kernel-livepatch-kernel_version.x86_64

    예를 들어, 다음 명령은 Amazon Linux 2 커널 버전 5.10.102-99.473에 커널 라이브 패치를 적용합니다.

    $ sudo yum install kernel-livepatch-5.10.102-99.473-1.0-4.amzn2.x86_64
정기 보안 업데이트와 함께 사용 가능한 커널 라이브 패치를 적용하려면

다음 명령을 사용합니다.

$ sudo yum update --security

버그 수정을 포함하려면 --security 옵션을 생략하세요.

중요
  • 커널 버전은 커널 라이브 패치를 적용한 후에 업데이트되지 않으며, 인스턴스를 재부팅한 후에만 새 버전으로 업데이트됩니다.

  • Amazon Linux 2 커널은 3개월 동안 커널 라이브 패치를 받습니다. 3개월이 경과한 후에는 해당 커널 버전에 대한 새로운 커널 라이브 패치가 릴리스되지 않습니다. 3개월 후에도 계속 커널 라이브 패치를 받으려면 인스턴스를 재부팅하여 새 커널 버전으로 전환해야 합니다. 그러면 다음 3개월 동안 커널 라이브 패치가 계속 수신됩니다. 커널 버전에 대한 지원 기간을 확인하려면 yum kernel-livepatch supported를 실행합니다.

적용된 커널 라이브 패치 보기

적용된 커널 라이브 패치를 보려면

다음 명령을 사용합니다.

$ kpatch list

이 명령은 로드되고 설치된 보안 업데이트 커널 라이브 패치 목록을 반환합니다. 다음은 예시 출력입니다.

Loaded patch modules: livepatch_cifs_lease_buffer_len [enabled] livepatch_CVE_2019_20096 [enabled] livepatch_CVE_2020_8648 [enabled] Installed patch modules: livepatch_cifs_lease_buffer_len (5.10.102-99.473.amzn2.x86_64) livepatch_CVE_2019_20096 (5.10.102-99.473.amzn2.x86_64) livepatch_CVE_2020_8648 (5.10.102-99.473.amzn2.x86_64)
참고

단일 커널 라이브 패치에 여러 개의 라이브 패치가 포함되어 설치될 수 있습니다.

커널 라이브 패치 비활성화

커널 라이브 패치를 더 이상 사용할 필요가 없는 경우 언제든지 비활성화할 수 있습니다.

커널 라이브 패치를 비활성화하려면
  1. 적용된 커널 라이브 패치의 RPM 패키지를 제거합니다.

    $ sudo yum kernel-livepatch disable
  2. 커널 라이브 패치용 yum 플러그인을 제거합니다.

    $ sudo yum remove yum-plugin-kernel-livepatch
  3. 인스턴스를 재부팅합니다.

    $ sudo reboot

제한 사항

커널 라이브 패치에는 다음과 같은 제한 사항이 있습니다.

  • 커널 라이브 패치를 적용하는 동안 최대 절전 모드를 실행하거나, 고급 디버깅 도구(예: SystemTap, kprobes 및 eBPF 기반 도구)를 사용하거나, 커널 라이브 패치 인프라에 사용되는 ftrace 출력 파일에 액세스할 수 없습니다.

FAQ

Amazon Linux 2용 커널 라이브 패치에 대한 자주 묻는 질문은 Amazon Linux 2 커널 라이브 패치 FAQ를 참조하십시오.