IBM Cloud Docs
VHD イメージの暗号化

VHD イメージの暗号化

E2E Encryption 機能を使用するには、Virtual Hard Drive (VHD) イメージを、暗号化インスタンスをプロビジョンするためのイメージ・テンプレートにインポートする前に、vhd-util ツールを使用して暗号化する必要があります。 2 つのレベルの AES 暗号化がサポートされています。それらは AES 256 bit と AES 512 bit です。

暗号化 VHD イメージの要件

暗号化 VHD イメージは、以下の要件を満たしている必要があります。

  • VHD がフォーマット済みであること。
  • IBM Cloud® Console インフラストラクチャー環境と互換性があること。
  • サポートされる OS でプロビジョンされていること。
  • Cloud-init が有効であること。
  • vhd-util ツールを使用して暗号化されていること。

VHD イメージの暗号化

以下の手順に従って、暗号化 VHD イメージを作成します。

  1. バージョン 7 以上の CentOS システムを選択し、IBM Cloud のための仮想ディスク・イメージ (VHD ファイル) を暗号化します。 CentOS のインストールされた物理ハードウェアへのアクセス権限がない場合、パブリックまたは専用のホストを使用して、IBM Cloud 内の CentOS 7 がある仮想サーバー・インスタンスをプロビジョンできます。 VHD ファイルの暗号化に使用された CentOS システム自体は、暗号化しないことが必要です。

  2. 暗号化ツールを IBM Cloud からダウンロードしてから、VHD の暗号化に使用できるオプションの中の最適なオプションを使用します。

    オプション 1 CentOS システムを IBM Cloud で実行していない場合、カスタマー VPN にログインして接続します。 VPN のセットアップについて詳しくは、「SSL VPN 接続のセットアップ」を参照してください。 VPNに接続したら、 IBM Cloud のダウンロード・サイトにアクセスし、vhd-utilツールのRPMパッケージ・ファイルを選択します: vhd-util-standalone-3.5.0-xs.2+1.0_71.2.2.x86_64.rpm

    オプション 2 RPM パッケージ・ファイルを CentOS システムに直接ダウンロードできない場合は、カスタマー VPN に接続し、そのファイルを作業中のワークステーションにダウンロードします。 その後、セキュア・コピー (scp) コマンドを使用して、それを CentOS システムにアップロードします。 IBM Cloud で仮想サーバー・インスタンスを使用している場合、以下のコマンドを使用して、アップロード用にシステムのパブリック IP アドレスを使用します。

    scp vhd-util-standalone-3.5.0-xs.2+1.0_71.2.2.x86_64.rpm root@<vsi_public_ip>:
    

    オプション 3 ステップ 1 で CentOS 仮想サーバー・インスタンスを IBM Cloud 内にプロビジョンすることを選択した場合、カスタマー VPN への接続なしで以下の curl コマンドを使用できます。

    curl -O http://downloads.service.softlayer.com/citrix/xen/vhd-util-standalone-3.5.0-xs.2+1.0_71.2.2.x86_64.rpm
    
  3. 以下のコマンドを使用して、RPM をインストールします。

    rpm -iv vhd-util-standalone-3.5.0-xs.2+1.0_71.2.2.x86_64.rpm
    
  4. 暗号化する必要のある AES データ暗号鍵を識別して選択し、ディスク・イメージを復号して鍵ファイルに書き込みます。 この DEK は、環境の準備で鍵管理サービスが提供するカスタマー・ルート鍵と共にラップしたものと同じ base64 でエンコードされた DEK です。 鍵ファイルに書き込む鍵素材は、アンラップしたもので、エンコードしていないものであることが必要です。

    鍵ファイルは base64 でエンコードされたものではないので、標準の ASCII 文字を使用してコマンド・ラインから鍵ファイルの内容を出力したり表示したりすることはできません。

    以下のコマンドを使用して、AES 256 bit または AES 512 bit の暗号鍵により、鍵ファイルを作成します。

    echo <data_key> | base64 -d - > <keyfile_name>
    

    コマンド例:

    echo Nrfen98EpMxF2B+wdgLfagzrqvgUZfMK4vL2T0NsT20ihrsNC9pUUHtizF6218pze8RLCgQ6kwxuE58IWLzgDA== | base64 -d - > aes512.dek
    
  5. 以下のコマンドを使用して、直前のステップで作成した鍵ファイルを検証します。

    vhd-util key -C -k <keyfile_name>
    

    以下はコマンドと出力の例です。

    vhd-util key -C -k aes512.dek
    vhd_util_read_key: using keyfile aes512.dek, Size (bytes) 64
    21681bba94f04b33b112f5f90a0faa885a6d1dbf1bd68ed16c5b995143088eda
    

    直前のコマンド例からの出力で、最初の行は aes512.dek という名前の鍵ファイルに 64-byte 鍵が含まれることを示します。 2 番目の行にリストされた数字は対応する暗号鍵の SHA256 ハッシュまたはセキュリティー・ハッシュです。 AES 256-bit 暗号鍵を含むファイルからの出力は 32 バイト鍵を示します。

  6. 以下のコマンドを使用して、VHD ファイルの暗号化コピーを作成します。target_vhd は、source_vhd の暗号化バージョンを含むファイルの名前を表します。

    vhd-util copy -n <source_vhd> -N <target_vhd> -k <keyfile_name>
    

    コマンド例:

    vhd-util copy -n debian8-ne.vhd -N debian8-aes512.vhd -k aes512.dek
    
  7. 以下のコマンドを使用して、VHD ファイルが暗号化されていることを検証します。

    vhd-util key -p -n <vhd_filename>
    

    以下はコマンドと出力の例です。

    vhd-util key -p -n debian8-aes512.vhd
    0000000000000000000000000000000000000000000000000000000000000000
    21681bba94f04b33b112f5f90a0faa885a6d1dbf1bd68ed16c5b995143088eda
    

VHD ファイルが暗号化されている場合は、直前の例に示されているように、出力に 2 つのハッシュ値が含まれます。 最初のハッシュはすべてゼロです。 2 番目のハッシュは、AES 暗号鍵が VHD の暗号化と復号に使用する SHA256 ハッシュです。 VHD ファイル用の SHA256 ハッシュがステップ 5 に示されているハッシュと同じであることを確認してください。

ステップ 7 にあるコマンド例は、「debian8-aes512.vhd」という名前の新しい暗号化 VHD ファイルを作成します。 これは、「aes512.dek」という名前の鍵ファイルにある AES 512-bit 暗号鍵によって暗号化されます。 この暗号化の SHA256 ハッシュは 21681bba94f04b33b112f5f90a0faa885a6d1dbf1bd68ed16c5b995143088eda です。