1
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

VM Encryption 用に Docker の KMS サーバーを検証してみた

はじめに

今回は、検証用に無償かつローカルで稼働できる KMS を構築して、VM Encryption のテストをしたいと思います。

VM Encyription の機能を有効化するためには、「サードパーティのキー管理サーバー(Key Management Server (KMS))」が必要になります。
そのため、VMware 基盤とは別に用意しておく必要があります。

KMIP for VMware on IBM Cloud を使って VM Encryption を有効化する - Qiita : https://qiita.com/khayama/items/e47f83d6709c0564d970

OS バージョン確認

今回は以下の OS の Docker 上で KMS サーバーを起動させます。

cat /etc/system-release
CentOS Linux release 7.5.1804 (Core) 

Docker インストール

検証用 KMS サーバーに必要な Docker をインストールします。

必要なパッケージのインストール

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

レポジトリの追加

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

最新版 Docker のインストール

sudo yum install docker-ce

Docker サービスの開始

sudo systemctl start docker

動作確認

こちらのコマンドで正しく表示されれば、 OK です。

sudo docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Option : OS 起動時に Docker を自動起動にする設定

オプションですが、設定しておきましょう。

sudo systemctl enable docker

KMS サーバーの起動・設定

公開されている Docker image を元に KMS サーバーをローカルに立ち上げて設定していきます。

コンテナイメージのダウンロード

ダウンロードはこれだけです。

docker pull lamw/vmwkmip
Using default tag: latest
latest: Pulling from lamw/vmwkmip
93b3dcee11d6: Pull complete 
0f5812e39a48: Pull complete 
e3ea6cd8b75c: Pull complete 
6babfb2795ad: Pull complete 
cc1693f97254: Pull complete 
ef543cab6bd7: Pull complete 
ab84cc116cf0: Pull complete 
Digest: sha256:ceed15cde1176109d88b9f5dc3878f80a0c155c8778e41c49d5629b2a22b4162
Status: Downloaded newer image for lamw/vmwkmip:latest

コンテナをバックグラウンドで起動

すぐに起動させられます。

docker run -d --rm -it -p 5696:5696 lamw/vmwkmip
0fac953dafedb84875550108f543004b079bcc2f6bb24fd2c9f5cfb96d006ad8

「-d」なしで起動すると以下の注意喚起が表示されます。
本番用途は想定していない、暗号鍵は再起動ごとに消去されることに留意して使いましょう。
再起動後は、新規に別コンテナを立ち上げ、以下同様の作業を行えばよいようです。

******* DO NOT RUN THIS IN PRODUCTION *******
*** ENCRYPTION KEYS ARE LOST UPON RESTART ***

vCenter での設定

vCenter Server インスタンスの「構成」をクリックし、「キー管理サーバー」をクリックします。
KMS の追加をクリックし、ウィザードに KMS 情報を指定して、OK をクリックします。

Kobito.DKlNDZ.png

初回の場合、デフォルトの KMS サーバーに設定するか聞かれますが、どちらでも構いません。

Kobito.4uUoaw.png

証明書を「信頼」します。

Kobito.xvliTo.png

「キー管理サーバー」の欄で、正しく接続がされていれば、 OK です。

Kobito.3zyqO3.png

めちゃめちゃ簡単に構築できてしまいました...笑

VM Encryption のテスト

仮想マシンのストレージポリシーから「VM Encryption」を有効化してみます。
Kobito.dIwk4D.png
Kobito.DQv0i0.png

ちなみに「パワーオフ」の状態でないと怒られるので、シャットダウンしてから「VM Encryption」を有効化することになります。

Kobito.fb77oM.png

ディスク領域の定義が Thin Provision で 40 GB、 Storage Usage が 約 10 GB のボリュームに対して、約 5 分で完了しました。
Kobito.r3kRwt.png

まとめ

vSphere 6.5 を持っている方は「VM Encryption」の新機能を、これだけ簡単にテストできてしまいます!
他の既存機能との互換性など、チェックしてみてはいかがでしょうか。
コンテナって便利ですね!

Reference

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?