Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
コンテンツコンテンツ
仮想化ガイド
  1. 前書き
  2. I 概要
    1. 1 仮想化技術
    2. 2 仮想化シナリオ
    3. 3 Xen 仮想化の紹介
    4. 4 KVM 仮想化の紹介
    5. 5 仮想化ツール
    6. 6 仮想化コンポーネントのインストール
  3. II libvirt を利用した仮想マシンの管理
    1. 7 libvirt デーモン
    2. 8 VM ホストサーバ の準備
    3. 9 ゲストのインストール
    4. 10 基本的な VM ゲスト の管理
    5. 11 接続と認可
    6. 12 高度なストレージ設定
    7. 13 仮想マシンマネージャ を利用した仮想マシンの設定
    8. 14 virsh を利用した仮想マシンの設定
    9. 15 AMD SEV-SNP による仮想マシンのセキュリティ強化
    10. 16 VM ゲスト の移行
    11. 17 Xen から KVM への移行ガイド
  4. III 全ハイパーバイザ共通の機能
    1. 18 ディスクのキャッシュモード
    2. 19 VM ゲスト の時刻設定
    3. 20 libguestfs
    4. 21 QEMU ゲストエージェント
    5. 22 ソフトウエア TPM エミュレータ
    6. 23 VM ゲスト に対するクラッシュダンプの作成
  5. IV Xen を利用した仮想マシンの管理
    1. 24 仮想マシンホストの設定
    2. 25 仮想ネットワーク
    3. 26 仮想環境の管理
    4. 27 Xen 内でのブロックデバイス
    5. 28 仮想化: オプション設定
    6. 29 管理作業
    7. 30 XenStore: ドメイン間で共有される設定データベース
    8. 31 Xen の高可用性仮想化ホストとしての使用
    9. 32 Xen: 準仮想化 (PV) ゲストから完全仮想化 (FV/HVM) ゲストへの変換
  6. V QEMU を利用した仮想マシンの管理
    1. 33 QEMU の概要
    2. 34 KVM VM ホストサーバ の構築
    3. 35 ゲストのインストール
    4. 36 qemu-system-ARCH を利用した仮想マシンの実行
    5. 37 QEMU モニタを利用した仮想マシンの管理
  7. VI トラブルシューティング
    1. 38 内蔵ヘルプとパッケージのドキュメンテーション
    2. 39 システム情報とログの収集
  8. 用語集
  9. A NVIDIA カードに対する GPU パススルー の設定
  10. B GNU ライセンス
ナビゲーション
適用先 openSUSE Leap 15.7

22 ソフトウエア TPM エミュレータ Edit source

22.1 概要 Edit source

Trusted Platform Module (TPM) は暗号処理を行うプロセッサで、暗号鍵を利用してハードウエアの機密を保持するための仕組みです。 TPM は開発者向けにセキュリティ機能を提供しますので、 TPM を擬似的に再現するエミュレータが存在すると、より安全性の高い仮想環境を構築できるようになります。また、ハードウエア TPM デバイスとは異なり、ゲスト側からのアクセス数に制限がありません。このほか、 TPM バージョン 1.2 と 2.0 を簡単に切り替えて使用することもできます。 QEMU では swtpm パッケージで提供されるソフトウエア TPM エミュレータに対応しています。

22.2 事前要件 Edit source

ソフトウエア TPM エミュレータをインストールして使用するには、まず libvirt 仮想化環境をインストールする必要があります。 6.2項 「仮想化コンポーネントのインストール」 を参照して、提供されている仮想化ソリューションの中からいずれかをインストールしてください。

22.3 インストール Edit source

ソフトウエア TPM エミュレータを使用するには、 swtpm パッケージをインストールします:

> sudo zypper install swtpm

22.4 QEMU での swtpm の使用 Edit source

swtpm は 3 種類のインターフェイスを提供しています。それぞれ socket , chardev , cuse と呼ばれます。下記の手順では socket インターフェイスを使用するものとします。

  1. VM のディレクトリ内に mytpm0 というディレクトリを作成して、ここに TPM の状態を保存します。たとえば VM のディレクトリが /var/lib/libvirt/qemu/sle15sp3 であれば、下記のようになります:

    > sudo mkdir /var/lib/libvirt/qemu/sle15sp3/mytpm0
  2. あとは swtpm を起動します。起動を行うと QEMU (例: /var/lib/libvirt/qemu/sle15sp3) が使用するソケットファイルが作成されます:

     > sudo swtpm socket
      --tpmstate dir=/var/lib/libvirt/qemu/sle15sp3/mytpm0 \
      --ctrl type=unixio,path=/var/lib/libvirt/qemu/sle15sp3/mytpm0/swtpm-sock \
      --log level=20
    ヒント
    ヒント: TPM バージョン 2.0 について

    既定では swtpm は TPM バージョン 1.2 エミュレータを起動し、その状態を tpm-00.permall ディレクトリ内に保存します。 TPM 2.0 インスタンスを作成したい場合は、下記のように入力して実行します:

     > sudo swtpm socket
      --tpm2
      --tpmstate dir=/var/lib/libvirt/qemu/sle15sp3/mytpm0 \
      --ctrl type=unixio,path=/var/lib/libvirt/qemu/sle15sp3/mytpm0/swtpm-sock \
      --log level=20

    TPM 2.0 の場合、状態は tpm2-00.permall ディレクトリ内に保存されます。

  3. あとは qemu-system-アーキテクチャ コマンドに対して、下記のようなコマンドラインパラメータを追加します:

    > qemu-system-x86_64 \
    [...]
    -chardev socket,id=chrtpm,path=/var/lib/libvirt/qemu/sle15sp3/mytpm0/swtpm-sock \
    -tpmdev emulator,id=tpm0,chardev=chrtpm \
    -device tpm-tis,tpmdev=tpm0
  4. 最後にゲスト側で、 TPM デバイスが利用可能になっているかどうかを確認します。具体的には下記のコマンドを入力して実行します:

    > tpm_version
    TPM 1.2 Version Info:
    Chip Version:        1.2.18.158
    Spec Level:          2
    Errata Revision:     3
    TPM Vendor ID:       IBM
    TPM Version:         01010000
    Manufacturer Info:   49424d00

22.5 libvirt での swtpm の使用 Edit source

libvirt で swtpm を使用する場合は、ゲストの XML 設定内に TPM デバイスの情報を追加します:

<devices>
 <tpm model='tpm-tis'>
  <backend type='emulator' version='2.0'/>
 </tpm>
</devices>

libvirt の場合、 swtpm はゲストの起動と共に自動的に開始されます。事前に起動しておく必要はありません。 permall 状態ファイルは /var/lib/libvirt/swtpm/VM_UUID ディレクトリ内に保存されます。

22.6 OVMF ファームウエアでの TPM の完全性計測 Edit source

ゲスト側で Open Virtual Machine Firmware (OVMF) を使用している場合、 TPM の完全性計測が行われます。イベントログを読む場合は、 /sys/kernel/security/tpm0/binary_bios_measurements ファイルを参照してください。

22.7 各種情報 Edit source

このページを印刷