仮想マシンの認定に関するトラブルシューティング

Azure Marketplace に仮想マシン (VM) イメージを公開する際に、Azure チームはそれを検証して、それが起動可能であること、セキュリティで保護されていること、および Azure との互換性があることを確認します。 VM イメージは、高品質のテストのいずれかに失敗した場合には公開されません。 問題を説明するエラー メッセージが表示されます。

この記事では、VM イメージの発行中に発生する一般的なエラー メッセージと、関連する解決策について説明します。

Note

この記事に関する質問または改善のための提案がある場合は、パートナー センターのサポートまでご連絡ください。

VM 拡張機能の失敗

イメージによって VM 拡張機能がサポートされているかどうかを確認します。

VM 拡張機能を有効にするには:

  1. Linux VM を選択します。

  2. [診断設定] に移動します。

  3. ストレージ アカウントを更新して、基本マトリックスを有効にします。

  4. [保存] を選択します。

    Screenshot that displays how to enable guest-level monitoring.

VM 拡張機能が正しくアクティブ化されていることを確認するには:

  1. VM 内で [VM 拡張機能] タブを選択し、[Linux Diagnostics 拡張機能] の状態を確認します。

  2. プロビジョニング状態を確認します。

    • 状態が [プロビジョニングに成功しました]場合、拡張機能のテスト ケースが成功します。
    • 状態が [プロビジョニングに失敗しました] の場合、拡張機能のテスト ケースは失敗し、セキュリティ強化フラグを設定する必要があります。

    Screenshot showing that provisioning succeeded.

    VM 拡張機能が失敗した場合は、[Linux Diagnostic Extension を使用して、メトリックとログを監視する] を参照して有効にします。 VM 拡張機能を有効にしない場合は、サポート チームに連絡して、それを無効にするように依頼してください。

VM プロビジョニングの問題

オファーを送信する前に、VM のプロビジョニング プロセスに従っていることを確認してください。 VM をプロビジョニングするための JSON 形式を確認するには、「仮想マシンのイメージをテストする」を参照してください。

プロビジョニングの問題としては、次のような失敗シナリオが考えられます。

シナリオ Error 理由 解決策
1 無効な仮想ハード ディスク (VHD) VHD フッターで指定された Cookie 値が正しくない場合、VHD は無効と見なされます。 イメージを再作成して、要求を送信します。
2 無効な BLOB の種類 使用された BLOB がページの種類ではなく、ブロックの種類であるため、VM のプロビジョニングが失敗しました。 ページの種類としてイメージを再作成し、要求を送信します。
3 プロビジョニングのタイムアウト、または正しく一般化されていない VM の一般化に問題があります。 一般化を使用してイメージを再作成し、要求を送信します。

Note

VM の一般化の詳細については、以下を参照してください。

Note

VM イメージのデプロイにカスタム ARM テンプレートが必要なためにプロビジョニングが失敗する場合は、パートナー センターの [技術的な構成] ページで、[Requires custom ARM template for deployment]\(デプロイにはカスタム ARM テンプレートが必要\) チェック ボックスをオンにします。 これにより、認定チームは、プロビジョニングの問題に対して失敗することなく、この要求に対して適切なアクションを実行できます。

Custom ARM template checkbox

VHD の仕様

'conectix' 文字列は VHD 仕様の一部です。 これは、ファイル作成者を識別する 8 バイトの Cookie として VHD フッターで定義されています。 Microsoft によって作成されたすべての VHD ファイルにこの Cookie があります。

VHD でフォーマットされた BLOB には、この形式の 512 バイトのフッターが必要です。

ハード ディスク フッターのフィールド サイズ (バイト)
クッキー 8
機能 4
File Format Version\(ファイル形式のバージョン\) 4
Data Offset\(データ オフセット\) 8
タイム スタンプ 4
Creator Application\(作成者のアプリケーション\) 4
Creator Version\(作成者のバージョン\) 4
Creator Host OS\(作成者のホスト OS\) 4
[元のサイズ] 8
現在のサイズ 8
Disk Geometry\(ディスク ジオメトリ\) 4
ディスクの種類 4
チェックサム 4
Unique ID 16
Saved State\(保存された状態\) 1
予約されています。 427

VHD の仕様

スムーズな公開エクスペリエンスを実現するために、VHD が次の条件を満たしていることを確認してください。

  • Cookie には文字列 'conectix.' が含まれています。
  • ディスクの種類が固定である。
  • VHD の仮想サイズが 20 MB 以上である。
  • VHD がアラインされている。 仮想サイズは 1 MB の倍数である必要があります。
  • VHD BLOB の長さは、仮想サイズに VHD フッターの長さ (512) を加えた値と等しくなります。

VHD の仕様はこちらからダウンロードしてください。

Windows のソフトウェア コンプライアンス

ソフトウェア コンプライアンスの問題が原因で Windows イメージ要求が拒否された場合は、インストールされている SQL Server インスタンスを使用して Windows イメージを作成した可能性があります。 代わりに、Azure Marketplace から関連する SQL Server バージョンの基本イメージを取得する必要があります。

SQL Server がインストールされている独自の Windows イメージを作成しないでください。 Azure Marketplace からの承認された SQL Server 基本イメージ (Enterprise、Standard、Web) を使用してください。

Visual Studio、または Office のライセンスされた製品をインストールしようとしている場合は、事前承認についてサポート チームにお問い合わせください。

承認済みのベースの選択の詳細については、承認済みのベースからの仮想マシンの作成に関する記事を参照してください。

ツールキットのテスト ケースの実行に失敗しました

Microsoft 認定ツールキットを使用すると、テスト ケースを実行し、VHD またはイメージに Azure 環境との互換性があることを確認できます。

Microsoft 認定ツールキットをダウンロードします。

Linux のテスト ケース

次の表に、ツールキットが実行される Linux テスト ケースを示します。 テストの検証は、説明に記載されています。

シナリオ テスト ケース 説明
1 Bash 履歴 VM イメージを作成する前に、Bash 履歴ファイルをクリアする必要があります。
2 Linux エージェントのバージョン サポートされている最小バージョン以上の Azure Linux エージェントをインストールする必要があります。
3 必須のカーネル パラメーター 次のカーネル パラメーターが設定されていることを確認します。
console=ttyS0
earlyprintk=ttyS0
4 OS ディスク上のスワップ パーティション OS ディスクにスワップ パーティションが作成されていないことを確認します。
5 OS ディスク上のルート パーティション OS ディスクの単一のルート パーティションを作成します。
6 OpenSSL のバージョン OpenSSL のバージョンは、0.9.8 以降である必要があります。
7 Python バージョン Python バージョン 2.6 以降を強くお勧めします。
8 クライアント Alive 間隔 ClientAliveInterval を 180 に設定します。 アプリケーションで必要な場合は、30 から 235 の範囲で設定できます。 エンド ユーザーに対して SSH を有効にする場合は、説明に従ってこの値を設定する必要があります。
9 OS アーキテクチャ 64 ビットのオペレーティング システムのみがサポートされています。
10 自動更新 Linux エージェントの自動更新が有効になっているかどうかを特定します。

一般的なテストケース エラー

テスト ケースの実行時に発生する可能性がある一般的なエラーについては、次の表を参照してください。

シナリオ テスト ケース エラー 解決策
1 Linux エージェント バージョンのテスト ケース サポートされている最小バージョン以上の Azure Linux エージェントをインストールする必要があります。](https://learn.microsoft.com/troubleshoot/azure/virtual-machines/support-extensions-agent-version) Linux エージェントのバージョンを更新してください。 詳細については、Linux エージェントのバージョン更新ページを参照してください。
2 Bash 履歴テスト ケース 送信したイメージ内の Bash 履歴のサイズが 1 キロバイト (KB) を超えていると、エラーが発生します。 Bash 履歴ファイルに潜在的な機密情報が含まれることのないようにするため、このサイズは 1 KB に制限されています。 別の作業用 VM に VHD をマウントし、サイズが 1 KB 以下に減少するように変更を加えて解決してください。 たとえば、.bash_history ファイルを削除します。
3 必要なカーネル パラメーターのテスト ケース このエラーは、値 console が 〘 に設定されていない場合に ttyS0表示されます。 次のコマンドを実行して確認します。
cat /proc/cmdline
の値 consolettyS0設定し、要求を再送信します。
4 ClientAlive 間隔のテスト ケース ツールキットで、このテスト ケースに対して失敗の結果が返された場合は、ClientAliveInterval の値が不適切です。 ClientAliveInterval を 235 以下に設定し、要求を再送信します。
5 smoke_test カーネル パニックのためにイメージを起動または再起動できない場合、エラーが発生します。 'エラーの説明' からカーネル パニックの呼び出しトレース情報を取得できます。 呼び出しトレース全体とシリアル ログを表示する場合は、イメージを使用して Azure に VM をデプロイし、Azure portal の VM リソースに "シリアル コンソール" をチェックできます。 Azure で VM を作成する場合は、Azure portal からシリアル コンソール ログをダウンロードできます (シリアル コンソールの https://learn.microsoft.com/en-us/troubleshoot/azure/virtual-machines/serial-console-linux 詳細については、こちらをご覧ください)
6 verify_dns_name_resolution このテスト ケースチェック、command:ping bing.com -c 5 -i 0.5 -O を実行して DNS 名解決を行います。 パブリック Web アドレス 'bing.com' に ping を実行できない場合、エラーが発生します。 正しい設定を https://learn.microsoft.com/en-us/azure/virtual-machines/linux/azure-dns 追加する方法を参照してください
7 verify_no_pre_exist_users 一部のユーザーのパスワードが検出された場合、または一部のユーザーのキーが検出されると、エラー "ユーザー XXXX のパスワードが検出されました" が表示されます /etc/shadow ファイルをチェックして、一部のユーザーのパスワードがあるかどうかを確認します。その場合は、パスワードを削除し、エラー メッセージの後に '{user's home directory}/.ssh/authorized_keys' ファイルを削除する必要があります
8 validate_netvsc_reload "failed" というエラーが表示されます。 SSHException: SSH セッションがアクティブではありません。' 次のコマンドを実行した後に VM を接続できない場合は〘。 "xx のノードからカーネル パニックが見つかりました" というエラーが表示されます。 コマンドの実行後に VM からカーネル パニックが見つかった場合: 'modprobe -r hv_netvsc;modprobe hv_netvsc;ip link set eth0 down;ip link set eth0 up;dhclient -r eth0;dhclient eth0 ' シリアル コンソールで、上記のコマンドの実行中にエラーが発生したかどうかを確認します。 ネットワーク仮想サービス クライアント (NetVSC) の詳細については、以下をご覧 https://learn.microsoft.com/en-us/windows-hardware/drivers/network/sr-iov-synthetic-data-path ください。

Windows のテスト ケース

次の表に、ツールキットが実行する Windows テスト ケースと、テスト検証の説明を示します。

シナリオ テスト ケース 説明
1 OS アーキテクチャ Azure では 64 ビットのオペレーティング システムのみがサポートされています。
2 ユーザー アカウントの依存関係 アプリケーションの実行は、管理者アカウントに依存することはできません。
3 フェールオーバー クラスター Windows Server のフェールオーバー クラスタリング機能はまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
4 IPV6 IPv6 は、Azure 環境ではまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
5 [DHCP] 動的ホスト構成プロトコルのサーバー ロールは、まだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
6 [リモート アクセス] リモート アクセス (直接アクセス) のサーバー ロールはまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
7 Rights Management サービス Rights Management サービス。 このサーバー ロールはまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
8 Windows Deployment Services Windows 展開サービス。 このサーバー ロールはまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
9 BitLocker ドライブ暗号化 BitLocker ドライブ暗号化は、オペレーティング システムのハード ディスクではサポートされていませんが、データ ディスクでは使用できます。
10 インターネット記憶域ネーム サーバー インターネット記憶域ネーム サーバー機能はまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
11 マルチパス I/O マルチパス I/O。 このサーバー機能はまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
12 Network Load Balancing ネットワーク負荷分散。 このサーバー機能はまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
13 ピア名解決プロトコル ピア名解決プロトコル。 このサーバー機能はまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
14 SNMP サービス 簡易ネットワーク管理プロトコル (SNMP) サービス機能は、まだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
15 Windows インターネット ネーム サービス Windows インターネット ネーム サービス。 このサーバー機能はまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。
16 ワイヤレス LAN サービス ワイヤレス LAN サービス。 このサーバー機能はまだサポートされていません。 アプリケーションがこの機能に依存しないようにする必要があります。

前述のテスト ケースでエラーが発生した場合、解決策については、表の [説明] 列を参照してください。 詳細については、サポート チームにお問い合わせください。

データ ディスク サイズの検証

1023 ギガバイト (GB) を超えるサイズのデータ ディスク要求は承認されません。 このルールは、Linux と Windows の両方に適用されます。

1023 GB 以下のサイズで要求を再送信してください。

OS ディスク サイズの検証

OS ディスク サイズの制限については、次のルールを参照してください。 要求を送信するときに、OS ディスク サイズが Linux または Windows の制限内であることを確認します。

OS 推奨される VHD サイズ
Linux 1 GB から 1023 GB
Windows 30 GB から 250 GB

VM を使用すると基になるオペレーティング システムにアクセスできるため、VHD のサイズが VHD に対して十分な大きさであることを確認します。 ディスクはダウンタイムなしでは展開できません。 30 GB から 50 GB のディスク サイズを使用します。

VHD サイズ 実際の占有サイズ 解決策
>500 テビバイト (TiB) 該当なし 例外の承認については、サポート チームにお問い合わせください。
250-500 TiB BLOB サイズとの差異が > 200 ギビバイト (GiB) 例外の承認については、サポート チームにお問い合わせください。

Note

ディスク サイズが大きいほどコストが高くなり、セットアップとレプリケーションのプロセス中に遅延が発生します。 この遅延とコストのために、サポート チームでは、例外の承認に対する正当な理由を求める場合があります。

Windows 用 WannaCry パッチ検証テスト

WannaCry ウイルスに関連する潜在的な攻撃を防ぐには、すべての Windows イメージ要求が最新の修正プログラムで更新されているようにします。

イメージ ファイルのバージョンは、C:\windows\system32\drivers\srv.sys または srv2.sys で確認できます。

次の表は、修正プログラムが適用された Windows Server の最小バージョンを示しています。

OS バージョン
Windows Server 2008 R2 6.1.7601.23689
Windows Server 2012 6.2.9200.22099
Windows Server 2012 R2 6.3.9600.18604
Windows Server 2016 10.0.14393.953
Windows Server 2019 NA

Note

WindowsServer2019 には、必須のバージョン要件はありません。

SACK 脆弱性パッチの検証

Linux イメージを送信するときに、カーネル バージョンの問題のために要求が拒否されることがあります。

承認されたバージョンでカーネルを更新し、要求を再送信します。 次の表で、承認されたカーネルのバージョンを確認できます。 バージョン番号は、ここに示されている番号以上である必要があります。

次のいずれかのカーネル バージョンでイメージがインストールされていない場合は、適切な修正プログラムを使用してそれを更新してください。 次の必要な修正プログラムを使用してイメージを更新した後で、サポート チームに必要な承認を要求します。

  • CVE-2019-11477
  • CVE-2019-11478
  • CVE-2019-11479
OS ファミリ バージョン カーネル
Ubuntu 14.04 LTS 4.4.0-151
14.04 LTS 4.15.0-1049-*-azure
16.04 LTS 4.15.0-1049
18.04 LTS 4.18.0-1023
18.04 LTS 5.0.0-1025
18.10 4.18.0-1023
19.04 5.0.0-1010
19.04 5.3.0-1004
RHEL と Cent OS 6.10 2.6.32-754.15.3
7.2 3.10.0-327.79.2
7.3 3.10.0-514.66.2
7.4 3.10.0-693.50.3
7.5 3.10.0-862.34.2
7.6 3.10.0-957.21.3
7.7 3.10.0-1062.1.1
8.0 4.18.0-80.4.2
8.1 4.18.0-147
"7-RAW" (7.6)
"7-LVM" (7.6) 3.10.0-957.21.3
RHEL-SAP 7.4 TBD
RHEL-SAP 7.5 TBD
SLES SLES11SP4 (SAP を含む) 3.0.101-108.95.2
SLES12SP1 for SAP 3.12.74-60.64.115.1
SLES12SP2 for SAP 4.4.121-92.114.1
SLES12SP3 4.4180-4.31.1 (kernel-azure)
SLES12SP3 for SAP 4.4.180-94.97.1
SLES12SP4 4.12.14-6.15.2 (kernel-azure)
SLES12SP4 for SAP 4.12.14-95.19.1
SLES15 4.12.14-5.30.1 (kernel-azure)
SLES15 for SAP 4.12.14-5.30.1 (kernel-azure)
SLES15SP1 4.12.14-5.30.1 (kernel-azure)
Oracle 6.10 UEK2 2.6.39-400.312.2
UEK3 3.8.13-118.35.2
RHCK 2.6.32-754.15.3
7.0-7.5 UEK3 3.8.13-118.35.2
UEK4 4.1.12-124.28.3
RHCK は上記の RHEL に従う
7.6 RHCK 3.10.0-957.21.3
UEK5 4.14.35-1902.2.0
CoreOS Stable 2079.6.0 4.19.43*
Beta 2135.3.1 4.19.50*
Alpha 2163.2.1 4.19.50*
Debian jessie (security) 3.16.68-2
jessie backports 4.9.168-1+deb9u3
stretch (security) 4.9.168-1+deb9u3
Debian GNU/Linux 10 (buster) Debian 6.3.0-18+deb9u1
buster、sid (stretch backports) 4.19.37-5

画像のサイズはメガバイトの倍数にする必要があります

Azure 上のすべての VHD の仮想サイズは、1 メガバイト (MB) の倍数に調整されている必要があります。 VHD が推奨される仮想サイズに従っていない場合、要求が拒否される可能性があります。

Raw ディスクから VHD に変換するときのガイドラインに従ってください。 Raw ディスクのサイズが 1 MB の倍数であることを確認します。 詳細については、「保証されていないディストリビューションの情報」を参照してください

VM アクセスが拒否されました

VM でのテスト ケース実行に関する "アクセス拒否" の問題の原因として、十分な権限がないことが考えられます。

セルフテスト ケースが実行されているアカウントに対して適切なアクセスを有効にしていることを確認します。 テスト ケースを実行するためのアクセスを有効にします (有効になっていない場合)。 アクセスを有効にしない場合は、セルフテスト ケースの結果をサポート チームと共有することができます。

SSH が無効になっているイメージを使用して認定プロセスの要求を送信するには:

  1. イメージに対して Azure VM を対象にした最新の認定テスト ツールを実行します。

  2. サポート チケットを作成します。 必ずツールキット レポートを添付し、オファーの詳細を提供してください。

    • プラン名
    • 公開元名
    • プラン ID、SKU、バージョン
  3. 認定要求を再送信します。

Note

ssh が無効または制限されているロックダウンされた VM イメージを発行する場合は、パートナー センターの [技術的な構成] ページで チェック ボックスの [リモート デスクトップまたは SSH が無効] を有効にします。 これにより、認定チームは、これが仕様であり、制限付きアクセスに失敗することなく、イメージに対して適切な検証を実行することを通知します。

Locked-down checkbox

ダウンロードエラー

共有アクセス署名 (SAS) URL を使用して VM イメージをダウンロードするときに発生する問題については、次の表を参照してください。

Error 理由 解決策
見つからない BLOB VHD が削除されているか、指定された場所から移動されている可能性があります。
BLOB が使用中 VHD は別の内部プロセスによって使用されています。 VHD のソース BLOB ストレージは、発行の進行中に変更されます。 SAS URL を使用してダウンロードする場合、VHD は使用済み状態にしないでください。 また、発行が進行中の場合は、VHD を使用または変更しないでください。
無効な SAS URL その VHD に関連付けられている SAS URL は正しくありません。 正しい SAS URL を取得してください。
無効な署名 その VHD に関連付けられている SAS URL は正しくありません。 正しい SAS URL を取得してください。
HTTP 条件ヘッダー SASL URL が無効です。 正しい SAS URL を取得してください。
無効な VHD 名 VHD 名にパーセント記号 (%) や引用符 (") などの特殊文字が含まれているかどうかを確認します。 特殊文字を削除して VHD ファイルの名前を変更します。

VM イメージには、1 MB (メガバイト)の空き領域が必要です

(GPT パーティションを使用して) イメージを Azure に発行する場合は、OS ディスクの最初の 2,048 セクター (1 MB (メガバイト)) を空のままにすることを強くお勧めします これは、重要なメタデータを Azure がイメージに追加するために必要です (例には、顧客の起動時間、課金、その他の詳細を改善するためのメタデータが含まれます)。 これは、承認済みの基本イメージを既に使用していて、イメージに有効な課金タグがある場合のベスト プラクティスの推奨事項です。 ただし、イメージに有効な課金タグがない場合は、OS ディスクの最初の 1 MB (メガバイト)が空でない場合、発行が失敗する可能性があります。

有効な課金タグがない独自のイメージをビルドする場合は、OS ディスクの最初の 2,048 セクター (1 MB (メガバイト)) が空であることを確認します。 これを行わないと、発行は失敗します。 この要件は、(データ ディスクではなく) OS ディスクにのみ適用されます。 承認済みのベースからイメージをビルドする場合は、既に最初の 1 MB (メガバイト)空になります。 そのため、個別に作業する必要はありません。

OS ディスクで最初の 1 MB を空けておくには、次のセクションの手順を実行します。

空の VHD の最初の部分に 1 MB の空き領域 (512 バイトのセクター 2,048 個) を確保する方法

これらの手順は Linux のみに適用されます。

  1. Ubuntu、CentOS など、任意の種類の Linux VM を作成します。 必須フィールドに入力し、[次へ: ディスク] を選択します。

    Screenshot that shows the Create a virtual machine page with the Next: Disks command button highlighted.

  2. VM 用にアンマネージド ディスクを作成します。 既定値を使用するか、[OS ディスク サイズ][OS ディスクの種類][暗号化の種類] などのフィールドに任意の値を指定します。

    Screenshot image of the Data disks page in the Create a virtual machine flow.

  3. VM 作成後、左側のペインで [ディスク] を選択します。

    Screenshot showing how to select disks for a V M.

  4. パーティション テーブルを作成するために、VHD をデータ ディスクとして VM にアタッチします。

    1. [既存のディスクのアタッチ] を選択します。

      Screenshot showing how to add a data disk to your V H D.

      Screenshot showing how to select the data disk for your V H D.

    2. VHD ストレージ アカウントを検索します。

    3. [コンテナー] を選択し、VHD を選択します。

    4. [OK] を選択します。

      Screenshot of the attach unmanaged disk page.

      VHD がデータ ディスク LUN 0 として追加されます。

  5. VM を再起動します。

  6. VM を再起動した後、Putty または別のクライアントを使用して VM にログインし、sudo -i コマンドを実行してルート アクセスを取得します。

    Putty client command-line screenshot showing the sudo -i command.

  7. VHD にパーティションを作成します。

    1. fdisk /dev/sdb コマンドを入力します。

    2. VHD の既存パーティション一覧を表示するには、「p」と入力します。

    3. d」を入力して、VHD 内の使用可能なすべての既存パーティションを削除します。 この手順は必要なければスキップできます。

      Putty client command-line screenshot showing the commands for deleting existing partitions.

    4. 新しいパーティションを作成するために「n」と入力し、p (プライマリ パーティションを表す) を選択します。

    5. first sector の値として「2048」を入力します。 last sector は既定値のままにすることができます。

      重要

      既存のデータは 2048 セクター (各セクター 512 バイト) まで消去されます。 新しいパーティションを作成する前に、VHD をバックアップしてください。

      Putty client command-line screenshot showing the commands and output for erased data.

    6. w」を入力して、パーティションの作成を確認します。

      Putty client command-line screenshot showing the commands for creating a partition.

    7. コマンド n fdisk /dev/sdb を実行して「p」を入力することで、パーティション テーブルを検証できます。 パーティションがオフセット値 2048 で作成されていることがわかります。

      Putty client command-line screenshot showing the commands for creating the 2048 offset.

  8. VM から VHD をデタッチし、VM を削除します。

既定の資格情報

送信される VHD と共に既定の資格情報を送信しないでください。 既定の資格情報を追加すると、VHD がセキュリティ上の脅威に対してより脆弱になります。 代わりに、VHD を送信するときには独自の資格情報を作成します。

DataDisk が正しくマップされていません

順序どおりになっていない複数のデータ ディスクを使用して要求が送信されると、マッピングの問題が発生する可能性があります。 たとえば、3 つのデータ ディスクの番号付け順序は 0、1、2 である必要があります。 その他の順序は、マッピングの問題として扱われます。

データ ディスクの適切なシーケンス処理を使用して要求を再送信してください。

OS マッピングが正しくありません

イメージが作成されるときに、間違った OS ラベルにマップされたり割り当てられたりすることがあります。 たとえば、イメージの作成中に OS 名の一部として Windows を選択した場合、その OS ディスクのインストールは、Windows を使用してのみ行う必要があります。 Linux にも同じ要件が適用されます。

VM が一般化されていない

Azure Marketplace から取得したすべてのイメージを再利用する場合は、オペレーティング システムの VHD を一般化する必要があります。

  • Linux の場合、次のプロセスでは、Linux VM を一般化して別の VM として再デプロイします。

    SSH ウィンドウで、コマンド sudo waagent -deprovision+user を入力します。

  • Windows の場合、sysreptool を使用して Windows イメージを一般化します。

    sysreptool ツールの詳細については、「Sysprep (システム準備) の概要」を参照してください。

DataDisk エラー

データ ディスクに関連するエラーの解決策については、次の表を参照してください。

Error 理由 解決策
DataDisk- InvalidUrl: このエラーは、オファー送信時に論理ユニット番号 (LUN) が無効なことが原因で発生する可能性があります。 データ ディスクの LUN 番号シーケンスがパートナー センターにあることを確認します。
DataDisk- NotFound: このエラーは、指定された SAS URL にデータ ディスクがないことが原因で発生する可能性があります。 データ ディスクが、指定されている SAS URL にあることを確認します。

リモート アクセスの問題

このエラーが発生するのは、リモート デスクトップ プロトコル (RDP) オプションが Windows イメージに対して有効になっていない場合です。

送信する前に、Windows イメージに対して RDP アクセスを有効にします。

Bash 履歴に失敗しました

このエラーは、送信したイメージ内の Bash 履歴のサイズが 1 キロバイト (KB) を超えた場合に表示されます。 潜在的な機密情報がファイルに含まれないように制限するために、サイズは 1 KB に制限されています。

Bash 履歴を削除するには:

  1. VM をデプロイし、Azure portal の [実行コマンド] オプションを選択します。

    Screenshot of the Azure portal with the 'Run Command' option in the left pane.

  2. 最初のオプション [RunShellScript] を選択し、cat /dev/null > ~/.bash_history && history -c コマンドを実行します。

    Screenshot of 'Run Command Script' page on the Azure portal.

  3. コマンドが正常に実行されたら、VM を再起動します。

  4. VM を汎用化し、イメージ VHD を取得して VM を停止します。

  5. 汎用化されたイメージを再送信します。

ネットワーク仮想アプライアンスの検証

Marketplace イメージ認定の間、ネットワーク仮想アプライアンス (NVA) である VM オファーは、すべての VM オファーに汎用のテストと、次の表に示す NVA テスト ケースを使用して検証されます。 これらの NVA 固有の検証の目的は、NVA イメージが SDN スタックとどれだけ適切に調整されるかを確認することです。

テスト ケース テスト ケースを実行する手順 解決策
VHD アクセス VHD の正しい SAS URL が指定され、アクセスを許可するアクセス許可が設定され、NVA イメージが一般化されていることを確認します。 NVA イメージと指定された URL を確認します。
NVA のデプロイ 1 つの NIC で NVA を使用して VM をデプロイします。 デプロイが 20 分で完了したことを確認します。 デプロイが 20 分以内に完了しない場合は、NVA イメージを確認します。
NVA 再起動 1 つの NIC で NVA を使用して VM をデプロイします。 次に、Azure portal で VM に移動し、左側のウィンドウの [サポートとトラブルシューティング] セクションで [再デプロイと再適用] を選択し、VM を再デプロイします。 再デプロイが完了したら、Netcat コマンドを使用して、VM の状態が "実行中" であり、NIC ポート 22 に到達可能であることを確認します。 再起動後に VM が起動しない場合は、NVA イメージに問題がある可能性があります。

Netcat テストが失敗した場合は、再起動後に、VM は実行されていたにもかかわらず NIC の起動に失敗した可能性があります。 数分待ってから、もう一度やり直してください。 20 分後も失敗した場合は、NVA イメージに問題がある可能性があります
NVA の再デプロイ 1 つの NIC で NVA を使用して VM をデプロイします。 その後、VM を再デプロイします。 Netcat コマンドを使用して、VM の状態が "実行中" であり、NIC ポート 22 に到達可能なことを確認します。 再デプロイが 15 分以内に完了しない場合は、NVA イメージに問題がある可能性があります。

Netcat テストが失敗した場合は、再起動後に、VM は実行されていたにもかかわらず NIC の起動に失敗した可能性があります。 数分待ってから、もう一度やり直してください。 20 分後も失敗した場合は、NVA イメージに問題がある可能性があります
高可用性 1 つの NIC で NVA を使用して VM をデプロイします。 NIC にパブリック IP をアタッチすべきでないか、パブリック IP がアタッチされている場合は SKU を標準にし、IP 割り当て方法は静的である必要があります。 同じ仮想ネットワークで、次の構成を使用して Azure 内部 ロード バランサー を設定します。
- Standard SKU を使用するロード バランサー
- プライベート IP 割り当て方法を動的として使用するフロントエンド IP
- TCP を使用した正常性プローブ (ポート 22 で再試行間隔 15 秒)
- プロトコルを all として使用し、フローティング IP を False に設定した負荷分散規則。
- NVA VM を指すバックエンド プール。

セットアップの準備ができたら、Netcat コマンドを使用して、ロード バランサー全体で NVA VM に到達可能なことを確認します。
ロード バランサー全体で NVA に到達できない場合は、VM、ロード バランサー、HA ポート機能のセットアップを確認します。 すべてが正確な場合は、NVA イメージに問題がある可能性があります。
VNET ピアリング 仮想ネットワーク VNET1 に 1 つの NIC を使用して、NVA イメージを使用して仮想マシン VM1 をデプロイします。 別の仮想ネットワーク VNET2 では、任意の Linux イメージ (ubuntu など) を使用して仮想マシン VM2 をデプロイし、1 つの NIC と VM 設定を動的 IP 割り当て方法と基本 SKU としてデプロイします。 VNET1 と VNET2 の間に VNET ピアリングを作成し、リモート仮想ネットワークへのトラフィック許可 (既定) として構成します

セットアップの準備ができたら、Netcat コマンドを使用して、VM2 から NVA VM1 上の NIC のプライベート IP に到達可能なことを確認します。
VM2 から NVA VM1 に到達できない場合は、VNET ピアリングが正しく構成されていることを確認してから、もう一度やり直してください。 それでも機能しない場合は、NVA イメージに問題がある可能性があります。
高速ネットワーク (AN) NVA と AN 対応の 1 つの NIC を使用して VM をデプロイします。 VM の作成時に NIC 上で AN を有効にするか、VM の作成後に NIC プロパティで AN を有効にできます。 システムが稼働することを確認します。 デプロイが失敗した場合は、NVA イメージで高速ネットワークがサポートされていることを確認します。
マルチ NIC Basic NIC が 3 つの NVA を使用して、動的 IP 割り当て方法と Basic SKU を使用する VM をデプロイします。 すべての NIC のプライベート IP と MAC アドレスを取得します (手順については、ネットワーク インターフェイスの表示に関するページを参照してください)。 次に、VM を再デプロイし、すべての NIC のプライベート IP と MAC アドレスが再デプロイ前と同じままであることを確認します。 再デプロイ後にすべての NIC のプライベート IP アドレスと MAC アドレスが変更された場合は、NVA イメージに問題がある可能性があります。
ネットワークの中断 1 つの NIC で NVA を使用して VM をデプロイします。 次に、ネットワーク セキュリティ グループ (NSG) を作成して適用し、NVA VM へのすべてのトラフィックをブロックします。 その後、VM の状態が "実行中" であることを確認します。 NSG の適用後に VM がダウンした場合は、NVA イメージに問題がある可能性があります。

詳細または質問については、Azure サポート ケースを開きます。

Netcat の概要:

Netcat は、2 台のコンピューター間に TCP または UDP 接続を確立できるコマンドです。つまり、開いているポートを経由して書き込みと読み取りができます。 NVA 検証中に、NVA VM と同じ仮想ネットワーク内にある VM から Netcat コマンドを実行して、TCP ポート 22 に到達できるかどうかをテストします。 コマンド構文は nc <destination_ip_address> <destination_port> で、各項目は次のとおりです

  • destination_ip_address は、VM の NIC に割り当てられたプライベート IP アドレスです。
  • destination_port は、NVA 上のポート番号です。 NVA のテスト ケースでは 22 を使用しています。

たとえば、nc 192.168.1.1 22 のように指定します。

選択したテストの VM イメージで例外を要求する

公開元は、VM の認定時に実行されるいくつかのテストに例外を求めることができます。 例外は、その要求をサポートする証拠を公開元が提出したときに、まれなケースで提供されます。 認定チームは、常に、例外を拒否または承認する権利を留保します。

このセクションでは、公開元が例外を要求する一般的なシナリオと、その要求方法について説明します。

例外のシナリオ

公開元は通常、次の場合に例外を要求します。

  • 1 つ以上のテスト ケースの例外。 テスト ケースの例外を要求するには、パートナー センターのサポートに連絡してください。

  • ロックダウンされた VM、ルート アクセスなし。 一部の公開元には、VM にインストールされたファイアウォールなどのソフトウェアが含まれているために、その VM をロックすることが必要なシナリオがあります。 この場合は、認定テスト ツールをダウンロードし、パートナー センターのサポートでレポートを送信してください。

  • カスタム テンプレート。 一部の公開元が公開する VM イメージには、VM をデプロイするためのカスタム Azure Resource Manager (ARM) テンプレートが必要です。 この場合は、認定チームが検証に使用するカスタム テンプレートをパートナー センター のサポート提出します。

例外のシナリオのために提供する情報

いずれかのシナリオで例外を要求するには、パートナー センターのサポートに連絡し、次の情報を含めてください。

  • 公開元 ID。 パートナー センター ポータルの公開元 ID を入力します。

  • オファー ID または名前。 オファーの ID または名前を入力します。

  • SKU またはプラン ID。 VM オファーのプラン ID または SKU を入力します。

  • バージョン. 例外を必要とする VM オファーのバージョンを入力します。

  • 例外の種類。 テスト、ロックダウンされた VM、カスタム テンプレートから選択します。

  • 要求の理由。 例外要求の理由と、テストの除外に関する情報を含めます。

  • タイムライン。 例外の終了日を入力します。

  • 添付ファイル。 添付された重要な証拠ドキュメント:

    • ロックダウンされた VM の場合は、テスト レポートを添付します。
    • カスタム テンプレートの場合は、カスタム ARM テンプレートを添付ファイルとして提供します。

    これらの添付ファイルを含めなかった場合、要求は拒否されます。

VM オファーの脆弱性または悪用に対処する

このセクションでは、自分の VM イメージの 1 つで脆弱性または悪用が検出された場合に、新しい VM イメージを提供する方法を説明します。 Azure Marketplace に公開される Azure VM オファーのみに適用されます。

Note

プランからは最後の VM イメージを削除したり、オファーの最後のプランを販売停止にしたりすることはできません。

次のいずれかのアクションを実行します。

修正した VM イメージを提供する

脆弱性がある、または悪用された VM イメージの代わりとなる修正した VM イメージを提供するには:

  1. セキュリティの脆弱性または悪用に対処した新しい VM イメージを提供します。
  2. セキュリティの脆弱性があるまたは悪用された VM イメージを削除します。
  3. オファーを再公開します。

セキュリティの脆弱性または悪用に対処した新しい VM イメージを提供する

これらの手順を完了するには、追加する VM イメージの技術資産を準備します。 詳細については、承認済みベースを使用した仮想マシンの作成または独自イメージを使用した仮想マシンの作成に関するページ、および VM イメージの SAS URI の生成に関するページを参照してください。

  1. パートナー センターにサインインします。

  2. ホーム ページで、[Marketplace offers]\(Marketplace のオファー\) タイルを選択します。

  3. [オファーのエイリアス] 列で、オファーを選択します。

  4. [プランの概要] タブを選択して、適切なプランを選択します。

  5. [技術的な構成] タブの [VM イメージ] で、[+ VM イメージの追加] を選択します。

    Note

    プランには一度に 1 つの VM イメージのみ追加できます。 複数の VM イメージを追加するには、最初のものを公開してから、次の VM イメージを追加します。

  6. 表示されるボックスに、新しいディスクのバージョンと仮想マシン イメージを指定します。

  7. [Save draft (ドラフトを保存)] を選択します。

次に、セキュリティの脆弱性がある VM イメージを削除します。

セキュリティの脆弱性があるまたは悪用された VM イメージを削除する

  1. パートナー センターにサインインします。
  2. ホーム ページで、[Marketplace offers]\(Marketplace のオファー\) タイルを選択します。
  3. [オファーのエイリアス] 列で、オファーを選択します。
  4. [プランの概要] タブを選択して、適切なプランを選択します。
  5. [技術的な構成] タブの [VM イメージ] の下の削除する VM イメージの横で [VM イメージの削除] を選択します。
  6. ダイアログ ボックスで [続行] を選択します。
  7. [Save draft (ドラフトを保存)] を選択します。

次に、オファーを再公開します。

オファーを再公開する

  1. [レビューと公開] を選択します。
  2. 認定チームに何らかの情報を提供する必要がある場合は、それを [認定の注意書き] ボックスに追加します。
  3. 公開を選択します。

公開のプロセスを完了するには、オファーのレビューと公開に関するページを参照してください。

アクセスが制限されているかカスタム テンプレートが必要な VM イメージ

ロック ダウン (または) SSH 無効のオファー

SSH 無効 (Linux の場合) または RDP 無効 (Windows の場合) で公開されているイメージは、ロック ダウンされた VM として扱われます。 公開元がアクセスを許可しない、または少数のユーザーにのみ制限付きアクセスを許可する、特殊なビジネス シナリオが存在します。

検証チェック中に、ロック ダウンされた VM では、特定の認証コマンドの実行を許可しない場合があります。

カスタム テンプレート

一般に、1 つの VM オファーで公開されるすべてのイメージは、デプロイ用の標準 ARM テンプレートに従います。 ただし、公開元が VM をデプロイする際にカスタマイズが必要になる場合があります (複数の NIC を構成する必要があるなど)。

次のシナリオ (空き時間なし) に応じて、パブリッシャーは VM のデプロイにカスタム テンプレートを使用します。

  • VM には追加のネットワーク サブネットが必要です。
  • ARM テンプレートに挿入するその他のメタデータ。
  • ARM テンプレートの実行の前提条件となるコマンド。

VM 拡張機能

Azure 仮想マシン (VM) 拡張機能は、Azure VM でのデプロイ後の構成と自動タスクを提供する複数の小さなアプリケーションです。 たとえば、仮想マシンでソフトウェアのインストールやウイルス対策保護が必要な場合、あるいは、仮想マシン内でスクリプトを実行するために、VM 拡張機能を使用できます。

Linux VM 拡張機能の検証には、次のものがイメージの一部である必要があります。

詳細については、VM 拡張機能を参照してください

イメージの整合性の検証

イメージを作成し、イメージの整合性を確認するためにイメージからディスクを作成する場合は、最初の 1 つのMB (メガバイト)が最適化されたパフォーマンスのために予約され、最後の 512 バイトが VHD フッター用に予約されていることに注意してください。 そのため、イメージの整合性を確認するときに無視します。

次のステップ