Azure VM Image Builder のベスト プラクティス

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット

この記事では、Azure VM Image Builder (AIB) の使用時に従うべきベスト プラクティスについて説明します。

  • イメージ テンプレートが誤って削除されないようにするには、イメージ テンプレート リソース レベルでリソース ロックを使用します。 詳細については、「ロックを使用して Azure リソースを保護する」を参照してください。
  • AIB の信頼性に関する推奨事項に従って、イメージ テンプレートがディザスター リカバリー用に設定されていることを確認します。
  • AIB トリガーを設定して、イメージを自動的にリビルドし、これらが更新されるようにします。
  • AIB で VM ブート最適化を有効にして、VM の作成時間を短縮します。
  • サブスクリプション内の AIB によるネットワーク関連リソースのデプロイをより厳密に制御するために、独自のビルド VM と ACI サブネットを指定します。 これらのサブネットを指定することは、イメージのビルド時間の短縮にも繋がります。 テンプレート リファレンスを参照して、これらのオプションの指定の詳細について確認してください。
  • AIB リソースに関する最小特権の原則に従います。
    • イメージ テンプレート: イメージ テンプレートへのアクセス権を持つプリンシパルは、その実行、削除、改ざんを行うことができます。 このアクセス権を持つことにより、プリンシパルは逆に、そのイメージ テンプレートによって作成されたイメージを変更できるようになります。
    • ステージング リソース グループ: AIB は、サブスクリプション内のステージング リソース グループを使用して VM イメージをカスタマイズします。 このリソース グループは機密性の高いリソース グループであると考え、このリソース グループへのアクセス権は必要なプリンシパルのみに制限する必要があります。 イメージをカスタマイズするプロセスはこのリソース グループ内で行われるので、リソース グループへのアクセス権を持つプリンシパルは、(たとえば、イメージにマルウェアを注入することで) イメージのビルド プロセスを侵害することができます。 AIB は、テンプレート ID およびビルド VM ID に関連付けられている特権も、このリソース グループ内のリソースに委任します。 そのため、リソース グループへのアクセス権を持つプリンシパルは、これらの ID へのアクセス権を取得できます。 さらに、AIB はカスタマイザー成果物のコピーをこのリソース グループ内に保持します。 そのため、リソース グループへのアクセス権を持つプリンシパルは、これらのコピーの中身を確認できます。
    • テンプレート ID: テンプレート ID へのアクセス権を持つプリンシパルは、その ID がアクセス許可を持つすべてのリソースにアクセスできます。 これには、カスタマイザー成果物 (たとえば、シェル スクリプトや PowerShell スクリプトなど)、ディストリビューション ターゲット (たとえば、Azure Compute Gallery イメージ バージョンなど)、および仮想ネットワークが含まれます。 そのため、この ID に与える特権は必要最小限のものだけにする必要があります。
    • ビルド VM ID: ビルド VM ID へのアクセス権を持つプリンシパルは、その ID がアクセス許可を持つすべてのリソースにアクセスできます。 これには、この ID を使用してビルド VM 内から使用している可能性のあるすべての成果物と仮想ネットワークが含まれます。 そのため、この ID に与える特権は必要最小限のものだけにする必要があります。
  • Azure Compute Gallery (ACG) への配布を行う場合は、ACG リソースのベスト プラクティスにも従ってください。