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 インスタンス、AWS IoT Greengrass コアのデバイス、および Amazon Linux 2 を実行する [on-premises virtual machines] (オンプレミスの仮想マシン) でサポートされます。

Kernel Live Patching の一般的な情報については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon Linux 2 で Kernel Live Patching を適用する」を参照してください。

Amazon Linux 2 マネージドノードで Kernel Live Patching を有効にした後、Patch Manager の一機能である AWS Systems Manager を使用すると、カーネルライブパッチをマネージドノードに適用できます。Patch Manager は、ノードで既存の yum ワークフローを使用して更新を適用する代わりに使用できます。

開始する前に

Patch Manager を使用してカーネルライブパッチを Amazon Linux 2 マネージドノードに適用するには、ノードが正しいアーキテクチャとカーネルバージョンに基づいていることを確認します。詳細については、Linux インスタンス用の 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 と報告されます。ただし、新しいカーネルバージョンのインストール時間は報告されません。

1 つのカーネルライブパッチ、複数の CVE

カーネルライブパッチが複数の CVE に対応していて、これらの CVE にさまざまな分類や重要度値がある場合、そのパッチに対してレポートされるのは、CVE の中から最も高い分類と重要度だけです。

このセクションの以降では、Patch Manager を使用して、これらの要件を満たすマネージドノードノードにカーネルライブパッチを適用する方法について説明します。

使用方法

AWS では、セキュリティ更新とバグ修正の 2 種類を Amazon Linux 2 用のカーネルライブパッチとしてリリースしています。これらのタイプのパッチを適用するには、次の表に示す分類と重要度のみを対象としたパッチベースラインドキュメントを使用します。

分類 重要度
Security Critical, Important
Bugfix All

これらのパッチのみを対象としたカスタムパッチベースラインを作成することも、定義済みの AWS-AmazonLinux2DefaultPatchBaseline パッチベースラインを使用することもできます。つまり、AWS-AmazonLinux2DefaultPatchBaseline が有効になっている Amazon Linux 2 マネージドノードで Kernel Live Patching を使用でき、カーネルライブアップデートが適用されます。

注記

この AWS-AmazonLinux2DefaultPatchBaseline 設定では、パッチがリリースまたは最後に更新されてからパッチが自動的にインストールされるまでに 7 日間の待機期間が指定されます。カーネルライブパッチが自動承認されるまで 7 日間待機しない場合は、カスタムパッチベースラインを作成して使用できます。パッチベースラインでは、自動承認待機期間を指定しない、または短期間や長期間を指定できます。詳しくは、「カスタムパッチベースラインの操作 (コンソール)」を参照してください。

カーネルライブアップデートでマネージドノードにパッチを適用するには、以下の戦略をお勧めします。

  1. Amazon Linux 2 マネージドノードの Kernel Live Patching を有効にします。

  2. AWS Systems Manager の一機能である Run Command を使用し、マネージドノードに対して Scan オペレーションを実行します。このとき、定義済みの AWS-AmazonLinux2DefaultPatchBaseline を使用するか、Critical および Important として重要度が分類される Security 更新と AllBugfix 重要度のみを対象としたカスタム パッチ ベースラインを使用します。

  3. スキャンされたマネージドノードについてパッチ適用の非準拠が報告されているかどうかを調べるには、AWS Systems Manager の一機能であるコンプライアンスを使用します。報告されている場合は、ノードのコンプライアンス 詳細を表示して、マネージドノードに適用されていないカーネルライブパッチがないかどうかを確認します。

  4. 適用されていないカーネルライブパッチをインストールするには、前に指定したものと同じパッチベースラインで Run Command を使用します。ただし今回は Install 操作ではなく Scan 操作を実行します。

    カーネルライブパッチは再起動しなくてもインストールされるため、この操作では再起動オプションとして NoReboot を選択できます。

    注記

    マネージドノードにインストールされている他のタイプのパッチに必要な場合や、新しいカーネルに更新する場合は、マネージドノードを再起動できます。このような場合は、再起動オプション RebootIfNeeded を代わりに選択します。

  5. Compliance に戻り、カーネルライブパッチがインストールされていることを確認します。

Run Command を使用して Kernel Live Patching をオンにする

Kernel Live Patching を有効にするには、お使いのマネージドノードで yum コマンドを実行するか、Run Command および作成するカスタム Systems Manager ドキュメント (SSM ドキュメント) を使用します。

マネージドノードで yum コマンドを直接実行して Kernel Live Patching を有効にする方法については、「Amazon EC2 Linux インスタンス用ユーザーガイド」の「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] を選択します。

    -または-

    AWS Systems Manager ホームページが最初に開いた際、メニューアイコン ( ) を選択してナビゲーションペインを開き、[Run Command] を選択します。

  3. [Run command (コマンドの実行)] を選択します。

  4. [コマンドドキュメント] リストで、カスタム SSM ドキュメント AWS-ConfigureKernelLivePatching を選択します。

  5. [Command parameters] (コマンドのパラメータ) セクションで、このオペレーションのパートとしてマネージドノードを再起動するかどうかを指定します。

  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
    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 User Guide for Linux Instances」 (Linux インスタンス用の Amazon EC2 ユーザーガイド) の 「Apply kernel live patches」 (カーネルライブパッチの適用) を参照してください。

Run Command を使用してカーネルライブパッチを適用するには (コンソール)

  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Run Command] を選択します。

    -または-

    AWS Systems Manager ホームページが最初に開いた際、メニューアイコン ( ) を選択してナビゲーションペインを開き、[Run Command] を選択します。

  3. [Run command (コマンドの実行)] を選択します。

  4. [Command document] リストで、SSM ドキュメント AWS-RunPatchBaseline を選択します。

  5. [コマンドのパラメータ] セクションで、次のいずれかの操作を行います。

    • 新しいカーネルライブパッチが利用可能かどうかをチェックする場合は、[オペレーション] で 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
    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
    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 Linux インスタンス用ユーザーガイド」の「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] を選択します。

    -または-

    AWS Systems Manager ホームページが最初に開いた際、メニューアイコン ( ) を選択してナビゲーションペインを開き、[Run Command] を選択します。

  3. [Run command (コマンドの実行)] を選択します。

  4. [Command document] リストで、SSM ドキュメント AWS-ConfigureKernelLivePatching を選択します。

  5. [Command parameters] セクションで、必須パラメータの値を指定します。

  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
    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」を参照してください。