次の方法で共有


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

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

この記事では、VM イメージの発行中の一般的なエラー メッセージと、関連するソリューションについて説明します。

手記

この記事に関する質問や改善の提案がある場合は、パートナー センターサポートにお問い合わせください。

VM 拡張機能の失敗

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

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

  1. Linux VM を選択します。

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

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

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

    ゲスト レベルの監視を有効にする方法を示すスクリーンショット。

VM 拡張機能が適切にアクティブ化されていることを確認するには、次の手順を実行します。

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

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

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

    プロビジョニングが成功したことを示すスクリーンショット。

    VM 拡張機能が失敗した場合は、「Linux 診断拡張機能を使用してメトリックとログを監視する を使用して有効にする」を参照してください。 VM 拡張機能を有効にしたくない場合は、サポート チームに問い合わせて、無効にするよう依頼してください。

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

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

プロビジョニングの問題には、次のエラー シナリオが含まれる場合があります。

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

手記

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

手記

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

[カスタム ARM テンプレートの ] チェックボックス

VHD の仕様

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

VHD 形式の BLOB には、次の形式の 512 バイトのフッターが必要です。

ハード ディスク フッター フィールド サイズ (バイト)
クッキー 8
顔立ち 4
ファイル形式のバージョン 4
データ オフセット 8
タイム スタンプ 4
Creator Application 4
Creator バージョン 4
Creator Host OS 4
元のサイズ 8
現在のサイズ 8
ディスク ジオメトリ 4
ディスクの種類 4
チェックサム 4
一意の ID 16
保存された状態 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 Certification Toolkitをダウンロードします。

Linux テスト ケース

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

シナリオ 試金石 形容
1 Bash の履歴 VM イメージを作成する前に、Bash 履歴ファイルをクリアする必要があります。
2 Linux エージェントのバージョン サポートされている最小バージョンの Azure Linux エージェント以降をインストールする必要があります。
3 必要なカーネル パラメーター 次のカーネル パラメーターが設定されていることを確認します。
console=ttyS0
earlyprintk=ttyS0
4 OS ディスク上のパーティションをスワップする スワップ パーティションが OS ディスクに作成されていないことを確認します。
5 OS ディスク上のルート パーティション OS ディスクの単一のルート パーティションを作成します。
6 OpenSSL バージョン OpenSSL バージョンは v0.9.8 以降である必要があります。
7 Python バージョン Python バージョン 2.6 以降を強くお勧めします。
8 クライアントアライブ間隔 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 (KB) を超える場合、エラーが発生します。 Bash 履歴ファイルに機密情報が含まれていないように、サイズは 1 KB に制限されています。 VHD を別の動作する VM にマウントして解決し、サイズを 1 KB 以下に変更します。 たとえば、.bash_history ファイルを削除します。
3 必須のカーネル パラメーター のテスト ケース このエラーは、console の値が ttyS0に設定されていない場合に発生します。 次のコマンドを実行して確認します。
cat /proc/cmdline
console の値を ttyS0に設定し、要求を再送信します。
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 Azure 環境では、IPv6 はまだサポートされていません。 アプリケーションはこの機能に依存しないようにする必要があります。
5 DHCP 動的ホスト構成プロトコル サーバーの役割はまだサポートされていません。 アプリケーションはこの機能に依存しないようにする必要があります。
6 リモート アクセス リモート アクセス (直接アクセス) サーバーの役割はまだサポートされていません。 アプリケーションはこの機能に依存しないようにする必要があります。
7 Rights Management サービス Rights Management サービス。 サーバー ロールはまだサポートされていません。 アプリケーションはこの機能に依存しないようにする必要があります。
8 Windows 展開サービス Windows 展開サービス。 サーバー ロールはまだサポートされていません。 アプリケーションはこの機能に依存しないようにする必要があります。
9 BitLocker ドライブ暗号化 BitLocker ドライブ暗号化はオペレーティング システムのハード ディスクではサポートされていませんが、データ ディスクで使用される場合があります。
10 インターネット ストレージ ネーム サーバー インターネット ストレージ ネーム サーバー機能はまだサポートされていません。 アプリケーションはこの機能に依存しないようにする必要があります。
11 マルチパス I/O マルチパス I/O。 このサーバー機能はまだサポートされていません。 アプリケーションはこの機能に依存しないようにする必要があります。
12 ネットワーク負荷分散 ネットワーク負荷分散。 このサーバー機能はまだサポートされていません。 アプリケーションはこの機能に依存しないようにする必要があります。
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
ウィンドウズ 30 GB から 250 GB

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

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

手記

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

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

手記

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

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 未定
RHEL-SAP 7.5 未定
SLES SLES11SP4 (SAP を含む) 3.0.101-108.95.2
SAP のSLES12SP1 3.12.74-60.64.115.1
SAP のSLES12SP2 4.4.121-92.114.1
SLES12SP3 4.4180-4.31.1 (kernel-azure)
SAP のSLES12SP3 4.4.180-94.97.1
SLES12SP4 4.12.14-6.15.2 (kernel-azure)
SAP のSLES12SP4 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)
オラクル 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 (セキュリティ) 3.16.68-2
jessie バックポート 4.9.168-1+deb9u3
stretch (セキュリティ) 4.9.168-1+deb9u3
Debian GNU/Linux 10 (buster) Debian 6.3.0-18+deb9u1
buster、sid (ストレッチ バックポート) 4.19.37-5

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

Azure 上のすべての VHD は、仮想サイズが 1 MB (MB) の倍数に揃えられている必要があります。 VHD が推奨される仮想サイズに準拠していない場合、要求が拒否される可能性があります。

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

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

VM でテスト ケースを実行するための アクセス拒否 の問題は、特権が不十分であることが原因である可能性があります。

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

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

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

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

    • オファー名
    • 発行元名
    • プラン ID/SKU とバージョン
  3. 認定要求を再送信します。

手記

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

[ロックダウン] チェック ボックスを

ダウンロードエラー

SHARED Access Signature (SAS) URL を使用して VM イメージをダウンロードするときに発生する問題については、次の表を参照してください。

エラー 理由 解決
BLOB が見つかりません VHD は削除されるか、指定した場所から移動される可能性があります。
使用中の BLOB VHD は、別の内部プロセスによって使用されます。 VHD のソース BLOB ストレージは、発行の進行中に変更されます。 SAS URL を使用してダウンロードする場合、VHD は使用済み状態にしないでください。 また、発行が進行中の場合は、VHD を使用または変更しないでください。
無効な SAS URL VHD に関連付けられている SAS URL が正しくありません。 正しい SAS URL を取得します。
無効な署名 VHD に関連付けられている SAS URL が正しくありません。 正しい SAS URL を取得します。
HTTP 条件付きヘッダー SAS 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 の空き領域を保持する方法 (2,048 セクター、各セクター 512 バイト)

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

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

    [次へ: ディスク] コマンド ボタンが強調表示されている [仮想マシンの作成] ページを示すスクリーンショット。

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

    仮想マシンの作成フローの [データ ディスク] ページのスクリーンショット画像。

  3. VM を作成したら、左側のウィンドウで [ディスク選択します。

    VM のディスクを選択する方法を示すスクリーンショット。

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

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

      データ ディスクを V H D に追加する方法を示すスクリーンショット。

      V H D のデータ ディスクを選択する方法を示すスクリーンショット。

    2. VHD ストレージ アカウントを見つけます。

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

    4. [OK]選択します。

      アンマネージド ディスクのアタッチ ページのスクリーンショット。

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

  5. VM を再起動します。

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

    sudo -i コマンドを示す Putty クライアントのコマンド ライン スクリーンショット。

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

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

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

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

      Putty クライアントのコマンド ライン スクリーンショット。既存のパーティションを削除するためのコマンドが示されています。

    4. n を入力して新しいパーティションを作成し、(プライマリ パーティション) の p を選択します。

    5. 最初のセクター 値として「2048」入力します。 最後 セクター は既定値のままにしておくことができます。

      大事な

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

      消去されたデータのコマンドと出力を示す Putty クライアントのコマンド ライン スクリーンショット。

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

      パーティションを作成するためのコマンドを示す Putty クライアントのコマンド ライン スクリーンショット。

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

      Putty クライアントのコマンド ライン スクリーンショット。2048 オフセットを作成するためのコマンドが示されています。

  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の場合は、を使用して Windows イメージを一般化します。

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

DataDisk エラー

データ ディスクに関連するエラーの解決策については、次の表を使用します。

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

リモート アクセスの問題

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

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

Bash 履歴に失敗しました

送信されたイメージの Bash 履歴のサイズが 1 KB (KB) を超える場合、このエラーが表示されます。 ファイルに機密情報が含まれる可能性を制限するために、サイズは 1 KB に制限されています。

Bash 履歴を削除するには:

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

    左側のウィンドウに [コマンドの実行] オプションがある Azure portal のスクリーンショット。

  2. RunShellScript 最初のオプションを選択し、コマンドを実行します:

    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 を再デプロイします。 再デプロイが完了したら、VM の状態が [実行中の] であり、Netcat コマンドを使用して NIC ポート 22 に到達可能であることを確認します。 再起動後に VM が起動しない場合は、NVA イメージに問題がある可能性があります。

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

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

セットアップの準備ができたら、VM2 から Netcat コマンドを使用して、NVA VM1 上の NIC のプライベート IP に到達できることを確認します。
NVA VM1 に VM2 から到達できない場合は、VNET ピアリングが正しく構成されていることを確認してから、もう一度やり直してください。 それでも機能しない場合は、NVA イメージに問題がある可能性があります。
高速ネットワーク (AN) NVA と 1 AN が有効な NICを使用して VM をデプロイします。 VM の作成時に NIC で AN を有効にすることも、VM の作成後に NIC プロパティで有効にすることもできます。 VM が稼働していることを確認します。 デプロイが失敗した場合は、NVA イメージで高速ネットワークがサポートされていることを確認します。
Multi-NIC Basic 動的 IP 割り当て方法と基本的な SKU を使用して、3 つの NIC を持つ NVA を使用して 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 をデプロイするためにカスタム Azure Resource Manager (ARM) テンプレートを必要とする VM イメージを発行します。 この場合は、認定チームが検証に使用 パートナー センター サポート でカスタム テンプレートを送信します。

例外シナリオに関する情報

いずれかのシナリオ 例外を要求するには、パートナー センター サポート に問い合わせて、次の情報を含めます。

  • パブリッシャー IDを します。 パートナー セントラル ポータルのパブリッシャー ID を入力します。

  • プラン ID/名前を します。 オファー ID または名前を入力します。

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

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

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

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

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

  • 添付ファイルの。 添付された重要な証拠文書:

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

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

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

このセクションでは、いずれかの VM イメージで脆弱性または悪用が検出されたときに新しい VM イメージを提供する方法について説明します。 これは、Azure Marketplace に発行された Azure VM オファーにのみ適用されます。

手記

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

次のいずれかの操作を行います。

  • 脆弱な VM イメージを置き換える新しい VM イメージがある場合は、「固定 VM イメージを提供する」を参照してください。
  • プラン内の唯一の VM イメージを置き換える新しい VM イメージがない場合、またはプランを使用した場合は、プランの配布を停止
  • オファー内の唯一の VM イメージを置き換える予定がない場合は、オファーの配布を停止 することをお勧めします。

固定 VM イメージを指定する

脆弱性または悪用された VM イメージを置き換える固定 VM イメージを提供するには:

  1. セキュリティの脆弱性または悪用に対処するための新しい VM イメージを提供します。
  2. セキュリティの脆弱性または悪用を含む VM イメージを削除します。
  3. オファーを再発行します。

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

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

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

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

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

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

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

    手記

    一度に 1 つのプランに追加できる VM イメージは 1 つだけです。 複数の VM イメージを追加するには、次の VM イメージを追加する前に最初のイメージを発行します。

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

  7. [下書き保存] を選択します。

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

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

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

次に、オファーを再発行します。

オファーを再発行する

  1. [確認 選択し、を発行します。
  2. 認定チームに情報を提供する必要がある場合は、Notes for certification ボックスに追加します。
  3. [発行 を選択します。

発行プロセスを完了するには、オファーの確認と発行に関するページを参照してください。

VM オファーの TLS 関連の脆弱性に対処する

このセクションでは、いずれかの VM イメージで TLS 関連の脆弱性が検出されたときに新しい VM イメージを提供する方法について説明します。 これは、Azure Marketplace に発行された Azure VM オファーにのみ適用されます。

修復手順

これらの脆弱性を解決するには、次の手順に従ってください。

TLS 1.0 および 1.1 プロトコルの使用を無効にし、VM イメージで TLS バージョン 1.2 以降がサポートされていることを確認します。 これは、VM イメージで適切なレジストリ キーまたは構成設定を設定することで実現できます。

Linux の場合は、次のコマンドを使用して手動でテストし、これらのバージョンが無効になっていることを確認します。

  • TLS 1.0 の :

    openssl s_client -connect ip:port -tls1
    
  • TLS 1.1 の :

    openssl s_client -connect ip:port -tls1_1
    

Windows の場合は、TLS レジストリ設定の公式ドキュメントを参照して、レジストリ キーを更新。 TLS 設定を構成するには、次の PowerShell コマンドを使用します。

パス 名前 価値
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client "有効" 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server "有効" 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client "有効" 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server "有効" 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client "有効" 1
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server "有効" 1

上位バージョンの有効化 (省略可能)

上位のバージョン (TLS 1.3 など) を有効にする場合は、これらのバージョンの対応するパスと値で上記の手順を繰り返します。

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

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

SSH disabled(for Linux) または RDP disabled (for 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 フッター用に予約されていることに注意してください。 そのため、イメージの整合性を確認するときに無視します。

  • VM オファーのプロパティの構成
  • アクティブなマーケットプレースの報酬 を する
  • 改善に関する質問やフィードバックがある場合は、パートナー センターサポート にお問い合わせください