LoginSignup
8
2

More than 3 years have passed since last update.

ShieldedVMとは何か

Last updated at Posted at 2019-12-01

GCPにはShielded VMという機能があります。あまり使っているという話は聞きませんが、簡単に使えてセキュリティ強化ができる機能です。

使い方

使い方は簡単で、対応したOSイメージを選択し、Shielded VMを有効化して起動するだけです。オプション費用はかかりません。
2019年12月2日現在対応しているイメージは以下の通り。

  • CentOS 7
  • RHEL 7
  • Container Optimized OS 6.9, 7.3, 7.7, dev, beta, stable
  • Ubuntu 18.04
  • Windows Server 2012r2, 2016, 1803, 1809, 2019

Images

GCP Consoleから起動する場合は、SecurityタブからShielded VM機能を有効化します。
ShieldedVM Menu.png

Shielded VMを有効化すると、通常のBIOSではなくUEFI経由で起動するようになるので、dmesgの実行結果にもUEFI経由で起動したというメッセージが出力されます。

[    0.000000] efi: EFI v2.70 by EDK II
[    0.000000] efi:  ACPI=0x259fa000  ACPI 2.0=0x259fa014  SMBIOS=0x259cd000  MEMATTR=0x24d0c018  TPMEventLog=0x2406d018
[    0.000000] secureboot: Secure boot enabled

Shielded VMの目的

Shielded VMの目的は大きく分けると

  • 各インスタンスのブートローダーやOSの改ざん検知、システムの整合性確認
  • APIリクエストなどが自分たちのインスタンスで行われたことの検証

の二つです。

前者はSecure Boot, Measured Bootによってコンポーネントの改ざんを検知することで、ルートキットなどによるブートローダーやOSなどへの攻撃を防止できます。こちらは対応しているOSイメージで設定を有効化するだけで利用できます。

後者はTPMに格納されているEndorsement Keyと呼ばれる鍵のペアを利用します。このEndorsement KeyはTPMごとに固有で、秘密鍵は取り出せませんが、公開鍵はGetShieldedInstanceIdentity APIで取得可能です。

リクエスターは秘密鍵でリクエストを署名し、APIサーバではGetShieldedInstanceIdentityで取得した公開鍵で検証することで、リクエスターが正当なサーバなのか検証できます。

まとめ

Shielded VMは設定の手間も少なく、サーバのマルウェア対策の一つとして有効で、マイクロサービス間の攻撃対策としても利用できるので、ぜひ有効にしてみましょう。

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2