Amazon Linux 2 インスタンスでのカーネルライブパッチの使用 - AWS Systems Manager

Amazon Linux 2 インスタンスでのカーネルライブパッチの使用

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

カーネルライブパッチの一般情報については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon Linux 2 のカーネルライブパッチ」を参照してください。

Amazon Linux 2 インスタンスでカーネルライブパッチを有効にした後は、Patch Managerを使用してカーネルライブパッチをインスタンスに適用できます。Patch Managerは、インスタンスで既存の yum ワークフローを使用して更新を適用する代わりに使用できます。

開始する前に

Patch Managerを使用してカーネルライブパッチを Amazon Linux 2 インスタンスに適用するには、インスタンスが正しいアーキテクチャとカーネルバージョンに基づいていることを確認します。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「サポートされている構成と前提条件」を参照してください。

カーネルライブパッチとPatch Managerについて

カーネルバージョンの更新

カーネルライブパッチ更新を適用した後、インスタンスを再起動する必要はありません。ただし AWS では、リリース後最長 3 か月間、Amazon Linux 2 カーネルバージョンのカーネルライブパッチが提供されます。3 か月が過ぎた後にカーネルライブパッチを引き続き入手するには、新しいカーネルバージョンに更新する必要があります。メンテナンスウィンドウを使用して、少なくとも 3 か月に一度、インスタンスの再起動をスケジュールし、カーネルバージョンの更新を促すことをお勧めします。

カーネルライブパッチのアンインストール

カーネルライブパッチは、Patch Managerを使用してアンインストールすることはできません。代わりにカーネルライブパッチを無効にすることができます。これにより、適用されたカーネルライブパッチの RPM パッケージが削除されます。詳細については、「カーネルライブパッチの使用による Run Command の無効化」を参照してください。

カーネルのコンプライアンス

場合によっては、現在のカーネルバージョンのライブパッチからすべての CVE 修正をインストールすると、そのカーネルが新しいカーネルバージョンと同じコンプライアンス状態になることがあります。この場合は、新しいバージョンが Installed と報告され、インスタンスは Compliant と報告されます。ただし、新しいカーネルバージョンのインストール時間は報告されません。

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

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

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

仕組み

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

分類 重要度
Security CriticalImportant
Bugfix All

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

注記

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

カーネルライブアップデートでインスタンスにパッチを適用するには、以下の方法をお勧めします。

  1. Amazon Linux 2 インスタンスでカーネルライブパッチを有効にします。

  2. Run Command を使用して、インスタンスに対して Scan 操作を実行します。このとき、定義済みの AWS-AmazonLinux2DefaultPatchBaseline を指定するか、Critical および Important として分類される Security 更新と AllBugfix 重要度のみを対象としたカスタムパッチベースラインを指定します。

  3. https://console.aws.amazon.com/systems-manager/compliance で [Systems Manager コンプライアンス] を開き、スキャンされたいずれかのインスタンスについて、パッチ適用に関するコンプライアンス違反が報告されていないか確認します。報告されている場合は、インスタンスのコンプライアンス詳細を表示して、インスタンスに適用されていないカーネルライブパッチがないかどうかを確認します。

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

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

    注記

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

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

Run Command の使用によるカーネルライブパッチの有効化

カーネルライブパッチを有効にするには、インスタンスで yum コマンドを実行するか、Run Command および作成したカスタムの Systems Manager ドキュメントを使用します。

インスタンスで直接 yum コマンドを実行してカーネルライブパッチを有効にする方法については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「カーネルライブパッチの有効化」を参照してください。

注記

カーネルライブパッチを有効にしたときに、インスタンスですでに実行されているカーネルが kernel-4.14.165-131.185.amzn2.x86_64 (サポートされている最小バージョン) より前の場合、プロセスは、利用可能な最新のカーネルバージョンをインストールしてインスタンスを再起動します。インスタンスがすでに kernel-4.14.165-131.185.amzn2.x86_64 以降を実行している場合、プロセスは、新しいバージョンをインストールせず、インスタンスを再起動しません。

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

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

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

    -または-

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

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

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

  5. [コマンドのパラメータ] セクションで、この操作の一環としてインスタンスを再起動するかどうかを指定します。

  6. このページの残りのコントロールを操作する方法については、「コンソールからコマンドを実行する」を参照してください。

  7. [Run (実行)] を選択します。

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

  • ローカルマシンで次のコマンドを実行します。

    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 Command Referenceの「send-command」を参照してください。

Run Command の使用によるカーネルライブパッチの適用

カーネルライブパッチを適用するには、インスタンスで yum コマンドを実行するか、Run Command および Systems Manager ドキュメント AWS-RunPatchBaseline を使用します。

インスタンスで直接 yum コマンドを実行してカーネルライブパッチを適用する方法については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「カーネルライブパッチの適用」を参照してください。

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

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

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

    -または-

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

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

  4. [コマンドドキュメント] リストで、Systems Manager ドキュメント AWS-RunPatchBaseline を選択します。

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

    • 新しいカーネルライブパッチが利用可能かどうかをチェックする場合は、[操作] で Scan を選択します。[Reboot Option (再起動オプション)] で、この操作後にインスタンスを再起動しない場合は、NoReboot を選択します。操作が完了したら、[Systems Manager コンプライアンス] で新しいパッチとコンプライアンスのステータスを確認できます。

    • パッチコンプライアンスをすでにチェック済みであり、利用可能なカーネルライブパッチを適用する準備ができている場合は、[操作] で Install を選択します。[Reboot Option (再起動オプション)] で、この操作後にインスタンスを再起動しない場合は、NoReboot を選択します。

  6. このページの残りのコントロールを操作する方法については、「コンソールからコマンドを実行する」を参照してください。

  7. [Run (実行)] を選択します。

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

  1. [Systems Manager コンプライアンス] で結果を確認する前に Scan 操作を実行するには、ローカルマシンで次のコマンドを実行します。

    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 Command Referenceの「send-command」を参照してください。

  2. [Systems Manager コンプライアンス] で結果を確認した後に Install 操作を実行するには、ローカルマシンで次のコマンドを実行します。

    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 Command Referenceの「send-command」を参照してください。

カーネルライブパッチの使用による Run Command の無効化

カーネルライブパッチを無効にするには、インスタンスで yum コマンドを実行するか、Run Command およびカスタムの Systems Manager ドキュメント AWS-ConfigureKernelLivePatching を使用します。

注記

カーネルライブパッチを使用する必要がなくなった場合は、いつでも無効にできます。ほとんどの場合、この機能を無効にする必要はありません。

インスタンスで直接 yum コマンドを実行してカーネルライブパッチを無効にする方法については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「カーネルライブパッチの有効化」を参照してください。

注記

カーネルライブパッチ適用を無効にすると、プロセスは、カーネルライブパッチプラグインをアンインストールしてインスタンスを再起動します。

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

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

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

    -または-

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

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

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

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

  6. このページの残りのコントロールを操作する方法については、「コンソールからコマンドを実行する」を参照してください。

  7. [Run (実行)] を選択します。

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

  • 以下のようなコマンドを使用します。

    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 Command Referenceの「send-command」を参照してください。