Windows インスタンスの クレデンシャルガード
AWS Nitro System はアマゾン エラスティックコンピュートクラウド (アマゾン EC2) Windows インスタンスの クレデンシャルガード をサポートしています。クレデンシャルガード は Windows 仮想化ベースのセキュリティ (VBS) 機能です。これにより、Windows カーネルの保護だけでなく、Windows ユーザー認証情報やコードインテグリティの適用などのセキュリティ資産を保護するための隔離環境を構築できます。EC2 Windows インスタンスを実行すると、クレデンシャルガード は AWS Nitro System を使用して、Windows ログイン認証情報がオペレーティングシステムのメモリから抽出されないように保護します。
前提条件
クレデンシャルガード を使用するにはWindows インスタンスが 次の前提条件を満たす必要があります。
- アマゾン マシンイメージ (AMI)
-
NitroTPM と UEFI 安全ブート を有効にするにはAMI を事前に設定しておく必要があります。サポートされている AMI の詳細についてはアマゾン EC2 インスタンスで NitroTPM を使用するための要件を参照してください。
注記
クレデンシャルガード は以下ではサポートされていません。
- メモリインテグリティ
-
ハイパーバイザー保護コードインテグリティ (HVCI) またはハイパーバイザー強制コードインテグリティとも呼ばれるメモリーインテグリティはサポートされていません。認証情報ガードを有効にする前に、この機能が無効になっていることを確認する必要があります。詳細についてはメモリインテグリティの無効化を参照してください。
- インスタンスタイプ
-
次のインスタンスタイプは特段の記載がない限り、すべてのサイズで クレデンシャルガード をサポートしています:
C5
、C5d
、C5n
、C6i
、C6id
、C6in
、C7i
、C7i-flex
、M5
、M5d
、M5dn
、M5n
、M5zn
、M6i
、M6id
、M6idn
、M6in
、M7i
、M7i-flex
、R5
、R5b
、R5d
、R5dn
、R5n
、R6i
、R6id
、R6idn
、R6in
、R7i
、R7iz
、T3
。注記
-
NitroTPM には共通して必須インスタンスタイプがいくつかありますが、クレデンシャルガード をサポートするにはインスタンスタイプが上記のインスタンスタイプのいずれかである必要があります。
-
クレデンシャルガード は以下ではサポートされていません。
-
ベアメタルインスタンス。
-
次のインスタンスタイプ:
C7i.48xlarge
、M7i.48xlarge
、R7i.48xlarge
。
-
インスタンスタイプの詳細についてはアマゾン EC2 インスタンスタイプガイドを参照してください。
-
サポートされているインスタンスを起動する
アマゾン EC2 コンソールまたは AWS Command Line Interface (AWS CLI) を使用して、クレデンシャルガード をサポートしているインスタンスを起動できます。インスタンスを起動するにはAWS リージョン ごとに固有の互換性のある AMI ID が必要です。
ヒント
以下のリンクを使用すると、アマゾン EC2 コンソールで アマゾン が提供する AMI と互換性のあるインスタンスを検出して起動できます。
メモリインテグリティの無効化
サポートされているシナリオではローカルグループポリシーエディタを使用してメモリインテグリティを無効にできます。次のガイダンスは[仮想化ベースのコードインテグリティ保護] で各構成設定に適用できます。
-
ロックなしで有効 — メモリインテグリティを無効にするには設定を [無効] に変更します。
-
UEFI ロックで有効 — メモリインテグリティは UEFI ロックで有効になっています。UEFI ロックで一度有効にすると、メモリの整合性を無効にすることはできません。メモリインテグリティを無効にして新しいインスタンスを作成し、サポートされていないインスタンスが使用されていない場合は終了することをお勧めします。
ローカルグループポリシーエディタでメモリの整合性を無効にするには
-
リモートデスクトッププロトコル (RDP) を使用して、管理者権限を持つユーザーアカウントとしてインスタンスに接続します。詳細についてはRDP クライアントを使用して Windows インスタンスに接続するを参照してください。
-
スタートメニューを開き、
cmd
を検索してコマンドプロンプトを起動します。 -
次のコマンドを実行して、ローカルグループポリシーエディタ
gpedit.msc
を開きます。 -
ローカルグループポリシーエディタで、[コンピュータの構成]、[管理用テンプレート]、[システム]、[デバイスガード] の順に選択してください。
-
[仮想化ベースのセキュリティを有効にする] を選択してから、[ポリシー設定の編集] を選択してください。
-
[仮想化ベースのコードインテグリティ保護] の設定ドロップダウンを開き、[無効] を選択し、[適用] を選択してください。
-
インスタンスを再起動して、変更を適用します。
クレデンシャルガード を有効にする
サポートされているインスタンスタイプと互換性のある AMI を使用して Windows インスタンスを起動し、メモリの整合性が無効になっていることを確認すると、認証情報ガードを有効にできます。
重要
次の手順を実行して クレデンシャルガード を有効にするには管理者権限が必要です。
クレデンシャルガード を有効にするには
-
リモートデスクトッププロトコル (RDP) を使用して、管理者権限を持つユーザーアカウントとしてインスタンスに接続します。詳細についてはRDP クライアントを使用して Windows インスタンスに接続するを参照してください。
-
スタートメニューを開き、
cmd
を検索してコマンドプロンプトを起動します。 -
次のコマンドを実行して、ローカルグループポリシーエディタ
gpedit.msc
を開きます。 -
ローカルグループポリシーエディタで、[コンピュータの構成]、[管理用テンプレート]、[システム]、[デバイスガード] の順に選択してください。
-
[仮想化ベースのセキュリティを有効にする] を選択してから、[ポリシー設定の編集] を選択してください。
-
[仮想化ベースのセキュリティを有効にする] メニューで [有効] を選択してください。
-
[プラットフォームセキュリティレベルの選択] では[安全ブート と DMA 保護] を選択してください。
-
[クレデンシャルガード の設定] では[UEFI ロックで有効] を選択してください。
注記
残りのポリシー設定は クレデンシャルガード を有効にするために必要ないため、[未構成] のままにしておくことができます。
以下の画像は前述のように構成された VBS 設定を示しています。
-
インスタンスを再起動して、設定を適用します。
クレデンシャルガード が実行されていることを確認する
Microsoft システム情報 (Msinfo32.exe
) ツールを使用して、クレデンシャルガード が実行されていることを確認できます。
重要
クレデンシャルガード を有効にするために必要なポリシー設定の適用を完了するにはまずインスタンスを再起動する必要があります。
クレデンシャルガード が実行されていることの確認するには
-
リモートデスクトッププロトコル (RDP) を使用してインスタンスに接続します。詳細についてはRDP クライアントを使用して Windows インスタンスに接続するを参照してください。
-
インスタンス用の RDP セッションで、スタートメニューを開いて、
cmd
を検索して、コマンドプロンプトを開始します。 -
次のコマンドを実行して、システム情報を開きます:
msinfo32.exe
-
Microsoft システム情報ツールにはVBS 設定の詳細が一覧表示されます。仮想化ベースのセキュリティサービスの横に、[クレデンシャルガード] が [実行中] と表示されていることを確認します。
次の画像はVBS が前述のように実行されていることを示しています。