はじめに

Google Compute Engine (GCE) で Windows Server VM を利用する際、Microsoft のライセンス認証が必要です。特定のケースでは、外部 IP アドレスを持たない Windows Server VM を使用することがあります。この記事では、そのような環境下でもライセンス認証を行う方法について解説します。

※本記事は、Google Cloudのオンデマンド ライセンスに関するものとなります。

Windows Server VM における Microsoft のライセンス

Google Cloud では、Windows Server VM が Windows Key Management Service (KMS) Server と通信することでライセンス認証ができます。

Google Cloud における KMS Server の情報は以下のとおりです。

項目
Endpoint kms.windows.googlecloud.com
IP Address 35.190.247.13/32
Protocol TCP
Port 1688

ライセンス認証に向けた対応

1.アクセス条件を確認

以下のいずれかの条件を満たしているか確認します。

なお、KMS Server へのアクセスに Cloud NAT は利用できない仕様であることに注意が必要です。
ルーティングの要件として、以下の点が明記されています。

Windows インスタンスのアクティブ化にインスタンス ベースの NAT ゲートウェイや Cloud NAT を使用することはできません。kms.windows.googlecloud.com では、Compute Engine インスタンスであることが確認された IP アドレス以外からのアクティベーション リクエストは拒否されるからです。

2.VPC のルート設定を確認

以下のいずれかの条件を満たしているか確認します。

  • デフォルトゲートウェイ (0.0.0.0/0) を Default Internet Gateway へ向けていること
  • kms.windows.googlecloud.com (35.190.247.13/32) のネクストホップを Default Internet Gateway へ向けていること

3.ファイアウォール ルールの確認

以下の条件を満たしているか確認します。

  • 厳格なファイアウォールルールを設定していない場合は、デフォルトで「暗黙の許可」が適用されるため問題ありません。
  • 厳格なファイアウォールルールを設定している場合は、前述した KMS Server の情報の通信を許可する下りのルールを追加します。

4. 手動によるライセンス認証

トラブルシューティングに記載されている手順に従い、Windows Server VM 内でコマンドを実行します。

  1. コマンドプロンプトを管理者として実行する
  2. 以下のコマンドを実行し、結果を確認する
    • KMS Server への接続が可能 (TcpTestSucceeded : True) であることを確認
      powershell.exe Test-NetConnection 35.190.247.13 -Port 1688
  3. 以下のコマンドを実行し、結果を確認する
    • ライセンス認証の状況を確認 (手動認証実行前)
      cscript \windows\system32\slmgr.vbs /dlv
    • KMS Server の IP アドレスを指定
      cscript \windows\system32\slmgr.vbs /skms 35.190.247.13:1688
    • ライセンス認証を手動実行
      cscript \windows\system32\slmgr.vbs /ato
    • ライセンス認証の状況を確認 (手動認証実行後)
      cscript \windows\system32\slmgr.vbs /dlv 

おわりに

今回は外部 IP アドレスを持たない Windows Server VM における、Microsoft のライセンス認証方法について解説しました。

この記事が同様の環境で Windows Server VM を利用する皆様のお役に立てれば幸いです。