

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AL2023 のカーネルライブパッチ
<a name="live-patching"></a>

AL2023 のカーネルライブパッチにより、実行中のアプリケーションを再起動や中断せずに、実行中の Linux カーネルに特定のセキュリティの脆弱性や重大なバグのパッチを適用することができます。また、カーネルライブパッチを利用することで、システムを再起動できるまで修正を適用しながらアプリケーションの可用性を向上させることができます。

AWS は、次の 2 種類の AL2023 のカーネルライブパッチをリリースします。
+ **セキュリティ更新** – Linux の共通脆弱性とエクスポージャー (CVE) の更新プログラムが含まれます。これらの更新プログラムは、通常、Amazon Linux Security Advisory の評価で *Important* または *Critical* と評価されます。これらは、通常、共通脆弱性評価システム (CVSS) の 7 以上のスコアに該当します。場合によっては、CVE が割り当てられる前に AWS から更新プログラムが提供されることがあります。そのような場合、パッチはバグ修正プログラムとして提供される場合があります。
+ **バグ修正** – CVE に関連付けられていない重大なバグや安定性の問題の修正プログラムが含まれます。

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

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

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

**Topics**
+ [制限](#live-patching-limitations)
+ [サポートされている構成と前提条件](#live-patching-prereq)
+ [カーネルライブパッチを使用する](#working-with-live-patching)

## 制限
<a name="live-patching-limitations"></a>

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

**注記**  
技術的な制限により、ライブパッチの適用では一部の問題に対処できません。このため、これらの修正はカーネルライブパッチパッケージに含まれず、ネイティブカーネルパッケージの更新でのみ提供されます。ネイティブカーネルパッケージをインストールし、システムを[更新および再起動](https://docs.aws.amazon.com/linux/al2023/ug/updating.html)して通常どおりパッチをアクティブ化できます。

## サポートされている構成と前提条件
<a name="live-patching-prereq"></a>

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

AL2023 でカーネルライブパッチを使用するには、以下を使用する必要があります。
+ 64 ビット `x86_64` または `ARM64` アーキテクチャ
+ カーネルバージョン `6.1` または `6.12`

### ポリシーの要件
<a name="policy-requirements"></a>

AL2023 リポジトリからパッケージをダウンロードするには、Amazon EC2 からサービス所有の Amazon S3 バケットにアクセスする必要があります。環境で Amazon S3 用に Amazon Virtual Private Cloud (VPC) エンドポイントを使用している場合、VPC エンドポイントポリシーがそれらのパブリックバケットへのアクセスを許可する必要があります。次の表は、Amazon EC2 が Kernel Live Patching のためにアクセスが必要となる可能性がある Amazon S3 バケットを示しています。


| S3 バケット ARN | 説明 | 
| --- | --- | 
|  arn:aws:s3:::al2023-repos-*region*-de612dc2/\$1  |  AL2023 リポジトリを含む Amazon S3 バケット  | 

## カーネルライブパッチを使用する
<a name="working-with-live-patching"></a>

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

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

マネージドインスタンスのグループでカーネルライブパッチを有効にして使用する方法の詳細については、「*AWS Systems Manager ユーザーガイド*」の「[AL2023 インスタンスでカーネルライブパッチを使用する](https://docs.aws.amazon.com/systems-manager/latest/userguide/kernel-live-patching.html)」を参照してください。

**Topics**
+ [カーネルライブパッチの有効化](#live-patching-enable)
+ [利用可能なカーネルライブパッチを表示する](#live-patching-view-available)
+ [カーネルライブパッチを適用する](#live-patching-apply)
+ [適用されたカーネルライブパッチの表示](#live-patching-view)
+ [カーネルライブパッチの無効化](#live-patching-disable)

### カーネルライブパッチの有効化
<a name="live-patching-enable"></a>

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

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

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

   ```
   $ sudo dnf list kernel
   ```

1. カーネルライブパッチの **DNF** プラグインをインストールします。

   ```
   $ sudo dnf install -y kpatch-dnf
   ```

1. カーネルライブパッチの **DNF** プラグインを有効にします。

   ```
   $ sudo dnf kernel-livepatch -y auto
   ```

   このコマンドは、設定されているリポジトリから最新バージョンのカーネルライブパッチの RPM もインストールします。

1. カーネルライブパッチの **DNF** プラグインが正常にインストールされたことを確認するには、以下のコマンドを実行します。

   カーネルライブパッチを有効にすると、空のカーネルライブパッチの RPM が自動的に適用されます。カーネルライブパッチが正常に有効になっていれば、このコマンドは最初の空のカーネルライブパッチの RPM (およびライブパッチを含む DNF リポジトリを設定するもうひとつの RPM)を含むリストを返します。

   ```
   $ sudo rpm -qa | grep kernel-livepatch
   kernel-livepatch-repo-s3-2023.7.20250428-0.amzn2023.noarch
   kernel-livepatch-6.1.134-150.224-1.0-0.amzn2023.x86_64
   ```

1. **kpatch** パッケージをインストールします。

   ```
   $ sudo dnf install -y kpatch-runtime
   ```

1. 既にインストール済みの場合は、**kpatch** サービスを更新します。

   ```
   $ sudo dnf upgrade kpatch-runtime
   ```

1. **kpatch** サービスを起動します。このサービスは、初期化時または起動時にすべてのカーネルライブパッチをロードします。

   ```
   $ sudo systemctl enable kpatch.service && sudo systemctl start kpatch.service
   ```

### 利用可能なカーネルライブパッチを表示する
<a name="live-patching-view-available"></a>

Amazon Linux のセキュリティアラートは、Amazon Linux Security Center に公開されます。カーネルライブパッチのアラートを含む AL2023 のセキュリティアラートの詳細については、「[Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html)」を参照してください。カーネルライブパッチには、`ALASLIVEPATCH` というプレフィクスが付きます。Amazon Linux Security Center では、バグに対応するカーネルライブパッチは一覧に表示されていない場合があります。

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

**アドバイザリに対する利用可能なすべてのカーネルライブパッチを一覧表示するには**  
次のコマンドを使用します。

```
$ sudo dnf updateinfo list
Last metadata expiration check: 1:06:23 ago on Mon 13 Feb 2023 09:28:19 PM UTC.
ALAS2LIVEPATCH-2021-123   important/Sec. kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
ALAS2LIVEPATCH-2022-124   important/Sec. kernel-livepatch-6.1.12-17.42-1.0-3.amzn2023.x86_64
```

**CVE に対する利用可能なすべてのカーネルライブパッチを一覧表示するには**  
次のコマンドを使用します。

```
$ sudo dnf updateinfo list cves
Last metadata expiration check: 1:07:26 ago on Mon 13 Feb 2023 09:28:19 PM UTC.
CVE-2022-0123    important/Sec. kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
CVE-2022-3210    important/Sec. kernel-livepatch-6.1.12-17.42-1.0-3.amzn2023.x86_64
```

### カーネルライブパッチを適用する
<a name="live-patching-apply"></a>

カーネルライブパッチは、**DNF** パッケージマネージャーを使用して、通常の更新プログラムを適用するのと同じ方法で適用します。カーネルライブパッチの **DNF** プラグインは、適用可能なカーネルライブパッチを管理します。

**ヒント**  
システムを再起動できるようになるまで、重要かつ重大なセキュリティ修正を確実に適用するために、カーネルライブパッチを利用してカーネルを定期的に更新することをお勧めします。ライブパッチとしてデプロイ追加の修正がネイティブのカーネルパッケージに含まれているかどうかも確認し、その場合はカーネルを[更新および再起動](https://docs.aws.amazon.com/linux/al2023/ug/updating.html)してください。

特定のカーネルライブパッチを適用するか、利用可能なカーネルライブパッチを定期的なセキュリティ更新プログラムと一緒に適用するかを選択できます。

**特定のカーネルライブパッチを適用するには**

1. 「[利用可能なカーネルライブパッチを表示する](#live-patching-view-available)」で説明されているコマンドのいずれかを使用して、カーネルライブパッチのバージョンを取得します。

1. AL2023 カーネルのカーネルライブパッチを適用します。

   ```
   $ sudo dnf install kernel-livepatch-kernel_version-package_version.amzn2023.x86_64
   ```

   例えば、以下のコマンドは、AL2023 カーネルバージョン `6.1.12-17.42` のカーネルライブパッチを適用します

   ```
   $ sudo dnf install kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
   ```

**利用可能なカーネルライブパッチを定期的なセキュリティ更新プログラムと一緒に適用する方法**  
次のコマンドを使用します。

```
$ sudo dnf upgrade --security
```

バグ修正プログラムを含めるには、`--security` オプションを省略します。

**重要**  
カーネルライブパッチを適用しても、カーネルバージョンは更新されません。バージョンは、インスタンスを再起動した後でのみ新しいバージョンに更新されます。
AL2023 カーネルは、カーネルライブパッチを 3 か月間入手できます。その後は、そのカーネルバージョンの新しいカーネルライブパッチはリリースされなくなります。
3 か月が過ぎた後にカーネルライブパッチを引き続き入手するには、インスタンスを再起動して新しいカーネルバージョンに移行する必要があります。インスタンスは、更新後 3 か月間は引き続きカーネルライブパッチを受け取ります。
お使いのカーネルバージョンのサポート期間を確認するには、以下のコマンドを実行します。  

  ```
  $ sudo dnf kernel-livepatch support
  The current version of the Linux kernel you are running will no longer receive live patches after 2025-07-22.
  ```

### 適用されたカーネルライブパッチの表示
<a name="live-patching-view"></a>

**適用されたカーネルライブパッチを表示するには**  
次のコマンドを使用します。

```
$ sudo kpatch list
Loaded patch modules:
livepatch_CVE_2022_36946 [enabled]

Installed patch modules:
livepatch_CVE_2022_36946 (6.1.57-29.131.amzn2023.x86_64)
livepatch_CVE_2022_36946 (6.1.57-30.131.amzn2023.x86_64)
```

このコマンドは、ロードおよびインストールされたセキュリティ更新プログラムのカーネルライブパッチのリストを返します。出力例を次に示します。

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

### カーネルライブパッチの無効化
<a name="live-patching-disable"></a>

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

  1. プラグインの無効化: 

     ```
     $ sudo dnf kernel-livepatch manual
     ```

  1. kpatch サービスの無効化: 

     ```
     $ sudo systemctl disable --now kpatch.service
     ```
+ livepatch ツールの完全削除:

  1. プラグインの削除:

     ```
     $ sudo dnf remove kpatch-dnf
     ```

  1. kpatch-runtime の削除:

     ```
     $ sudo dnf remove kpatch-runtime
     ```

  1. インストールされているすべての livepatches の削除:

     ```
     $ sudo dnf remove kernel-livepatch\*
     ```