Amazon Linux 2 のカーネルライブパッチ - Amazon Elastic Compute Cloud

Amazon Linux 2 のカーネルライブパッチ

Amazon Linux 2 のカーネルライブパッチを使用すると、実行中のアプリケーションを再起動や中断せずに、実行中の Linux カーネルにセキュリティの脆弱性や重大なバグのパッチを適用することができます。これにより、インフラストラクチャを安全かつ最新に保つとともに、サービスとアプリケーションの可用性を向上させることができます。

AWS は、2 種類の Amazon Linux 2 のカーネルライブパッチをリリースします。

  • セキュリティ更新プログラム—Linux の CVE (Common Vulnerabilities and Exposures) の更新プログラムが含まれます。これらの更新プログラムは、通常、Amazon Linux Security Advisory の評価で Important または Critical と評価されます。これらは、通常、共通脆弱性評価システム (CVSS) の 7 以上のスコアに該当します。場合によっては、CVE が割り当てられる前に AWS から更新プログラムが提供されることがあります。そのような場合、パッチはバグ修正プログラムとして提供される場合があります。

  • バグ修正プログラム—CVE に関連付けられていない重大なバグや安定性の問題の修正プログラムが含まれます。

AWS は、Amazon Linux 2 カーネルバージョンのリリースから 3 か月間、カーネルライブパッチを提供します。3 か月が過ぎた後にカーネルライブパッチを引き続き入手するには、新しいカーネルバージョンに更新する必要があります。

Amazon Linux 2 のカーネルライブパッチは、既存の Amazon Linux 2 リポジトリから署名付きの RPM パッケージとして入手できます。パッチを個別のインスタンスにインストールするには、既存の yum ワークフローを使用できます。パッチをマネージドインスタンスのグループにインストールするには、AWS Systems Manager を使用できます。

Amazon Linux 2 のカーネルライブパッチは、追加料金なしで提供されます。

サポートされている構成と前提条件

カーネルライブパッチは、Amazon EC2 インスタンスおよび Amazon Linux 2 が実行されているオンプレミスの仮想マシンでサポートされています。

Amazon Linux 2 でカーネルライブパッチを使用するには、以下を使用する必要があります。

  • Amazon Linux 2 でサポートされている 64 ビット (x86_64) アーキテクチャ

  • カーネルバージョン 4.14.165-131.185 以降の Amazon Linux 2

注記

64 ビット ARM (arm64) アーキテクチャはサポートされていません。

カーネルライブパッチの使用

個別のインスタンスでカーネルライブパッチを有効にして使用するには、インスタンス自体でコマンドラインを使用できます。マネージドインスタンスのグループでカーネルライブパッチを有効にして使用するには、AWS Systems Manager を使用できます。

以下のセクションでは、コマンドラインを使用して、カーネルライブパッチを有効にして個別のインスタンスで使用する方法について説明します。

マネージドインスタンスのグループでカーネルライブパッチを有効にして使用する方法の詳細については、AWS Systems Manager ユーザーガイドの「Amazon Linux 2 インスタンスでカーネルライブパッチを使用する」を参照してください。

カーネルライブパッチの有効化

Amazon Linux 2 では、カーネルライブパッチはデフォルトでは無効になっています。ライブパッチを使用するには、カーネルライブパッチの yum プラグインをインストールして、ライブパッチ機能を有効にする必要があります。

Prerequisites

カーネルライブパッチには binutils が必要です。binutils がインストールされていない場合は、以下のコマンドを使用してインストールします。

$ sudo yum install binutils

カーネルライブパッチを有効にするには

  1. カーネルライブパッチは、カーネルバージョン 4.14.165-131.185 以降の Amazon Linux 2 で使用できます。カーネルバージョンを確認するには、次のコマンドを実行します。

    $ 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 を含むリストを返します。

  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 のカーネルライブパッチを含むカーネルライブパッチリポジトリを設定します。

    $ sudo amazon-linux-extras enable livepatch

利用可能なカーネルライブパッチの表示

Amazon Linux のセキュリティアラートは、Amazon Linux Security Center に公開されます。カーネルライブパッチのアラートを含む Amazon Linux 2 のセキュリティアラートの詳細については、Amazon Linux Security Center を参照してください。カーネルライブパッチには、ALASLIVEPATCH というプレフィックスが付きます。Amazon Linux Security Center では、バグに対応するカーネルライブパッチは一覧に表示されていない場合があります。

アドバイザリおよび CVE に対する利用可能なカーネルライブパッチは、コマンドラインを使用して見つけることもできます。

アドバイザリに対する利用可能なすべてのカーネルライブパッチを一覧表示するには

次のコマンドを使用します。

$ yum updateinfo list

出力例を次に示します。

Loaded plugins: extras_suggestions, kernel-livepatch, langpacks, priorities, update-motd ALAS2LIVEPATCH-2020-002 important/Sec. kernel-livepatch-4.14.165-133.209-1.0-3.amzn2.x86_64 ALAS2LIVEPATCH-2020-005 medium/Sec. kernel-livepatch-4.14.165-133.209-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-4.14.165-133.209-1.0-3.amzn2.x86_64 CVE-2019-20096 important/Sec. kernel-livepatch-4.14.165-133.209-1.0-3.amzn2.x86_64 CVE-2020-8648 medium/Sec. kernel-livepatch-4.14.165-133.209-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 カーネルバージョン 4.14.165-133.209 のカーネルライブパッチを適用します。

    $ sudo yum install kernel-livepatch-4.14.165-133.209-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 (4.14.165-133.209.amzn2.x86_64) livepatch_CVE_2019_20096 (4.14.165-133.209.amzn2.x86_64) livepatch_CVE_2020_8648 (4.14.165-133.209.amzn2.x86_64)
注記

1 つのカーネルライブパッチには、複数のライブパッチが含まれていてインストールされる場合があります。

カーネルライブパッチの無効化

カーネルライブパッチを使用する必要がなくなった場合は、いつでも無効にできます。

カーネルライブパッチを無効にするには

  1. 適用されたカーネルライブパッチの RPM パッケージを削除します。

    $ sudo yum kernel-livepatch disable
  2. カーネルライブパッチの yum プラグインをアンインストールします。

    $ sudo yum remove yum-plugin-kernel-livepatch
  3. インスタンスを再起動します。

    $ sudo reboot

Limitations

カーネルライブパッチには以下の制限があります。

  • カーネルライブパッチの適用中は、休止を実行したり、高度なデバッグツール (SystemTap、kprobes、eBPF ベースのツールなど) を使用したり、カーネルライブパッチを適用したインフラストラクチャで使用されている ftrace の出力ファイルにアクセスしたりすることはできません。

  • 64 ビット ARM (arm64) アーキテクチャの Amazon Linux 2 インスタンスはサポートされていません。

よくある質問

Amazon Linux 2 のカーネルライブパッチに関するよくある質問については、「Amazon Linux 2 に関するよくある質問」を参照してください。