次の方法で共有


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

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ ユニフォーム スケール セット

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

イメージ テンプレートにリソース ロックを使用する

イメージ テンプレートが誤って削除されないようにするには、それらに対してリソース ロックを使用します。 詳細については、「 Azure リソースをロックしてインフラストラクチャを保護する」を参照してください

ディザスター リカバリー用のイメージ テンプレートを設定する

VM Image Builder の信頼性に関する推奨事項に従って、イメージ テンプレートがディザスター リカバリー用に設定されていることを確認します。

トリガーを設定する

VM Image Builder トリガーを 設定して、イメージを自動的に再構築し、更新された状態を維持します。

VM ブートの最適化を有効にする

VM イメージ ビルダーで 仮想マシン (VM) のブート最適化 を有効にして、VM の作成時間を短縮します。

独自のサブネットを持ち込む

サブスクリプション内の VM Image Builder によるネットワーク関連リソースのデプロイをより厳密に制御するために、独自のビルド VM サブネット (subnetId) と Azure Container Instances サブネット (containerInstanceSubnetId) を指定します。 これらのサブネットを指定すると、より高速で信頼性の高いイメージ ビルドも作成されます。

このネットワーク トポロジの詳細については、「 分離イメージ ビルド」セクションを参照してください

最小特権の原則に従う

VM Image Builder リソース の最小特権の原則 に従います。

イメージ テンプレート

イメージ テンプレートにアクセスできるプリンシパルは、それを実行、削除、または改ざんできます。 このアクセスにより、プリンシパルはイメージ テンプレートによって作成されたイメージを変更できるようになります。

必要なプリンシパルのみがイメージ テンプレートにアクセスできることを確認します。

ステージング リソース グループ

VM Image Builder では、サブスクリプション内のステージング リソース グループを使用して VM イメージをカスタマイズします。 このリソース グループを機密性の高いリソース グループと見なし、必要なプリンシパルのみにアクセスを制限する必要があります。 次のリスクに留意してください。

  • イメージをカスタマイズするプロセスはこのリソース グループで行われるため、リソース グループにアクセスできるプリンシパルがイメージ構築プロセスを侵害する可能性があります。 たとえば、このようなプリンシパルは、イメージにマルウェアを挿入できます。

  • VM Image Builder は、テンプレート ID とビルド VM ID に関連付けられている特権を、このリソース グループ内のリソースに委任します。 リソース グループにアクセスできるプリンシパルは、これらの ID にアクセスできます。

  • VM Image Builder では、このリソース グループにカスタマイザー成果物のコピーが保持されます。 リソース グループにアクセスできるプリンシパルは、これらのコピーを検査できます。

テンプレートのアイデンティティ

テンプレート ID にアクセスできるプリンシパルは、ID にアクセス許可を持つすべてのリソースにアクセスできます。 この一連のリソースには、カスタマイザー成果物 (シェルスクリプトや PowerShell スクリプトなど)、ディストリビューション ターゲット (Azure Compute Gallery イメージ バージョンなど)、仮想ネットワークが含まれます。

この ID には、最低限必要な特権のみを指定する必要があります。

VM ID の構築

ビルド VM ID にアクセスできるプリンシパルは、ID にアクセス許可を持つすべてのリソースにアクセスできます。 この一連のリソースには、この ID を介してビルド VM 内から使用している可能性のある成果物と仮想ネットワークが含まれます。

この ID には、最低限必要な特権のみを指定する必要があります。

Credentials

イメージ テンプレートや、シェル、PowerShell、およびファイル カスタマイザーおよびバリデーターに使用されるファイルには、資格情報を入力しないでください。 例えば次が挙げられます。

  • カスタマイザーと検証コントロールにインライン コマンドを指定する場合は、パスワードやその他のログイン資格情報を指定しないでください。 代わりに、このような資格情報を Azure Key Vault に格納し、ビルド VM ID を使用してビルド VM からアクセスする必要があります。
  • カスタマイザーとバリデーターでファイルを提供する場合は、ファイルに資格情報を指定しないでください。 代わりに、このような資格情報を Azure Key Vault に格納し、ビルド VM ID を使用してビルド VM からアクセスする必要があります。
  • イメージ テンプレートでカスタマイザーとバリデーターのスクリプトまたはソース URI を指定する場合は、資格情報 (個人用アクセス トークンなど) を使用して SAS URI または URI を指定しないでください。 代わりに、このようなファイルを Azure Storage アカウントに格納し、テンプレート ID を使用してアクセスします。

Azure VM Image Builder ではこのような資格情報の指定は禁止されていませんが、このような使用は強くお勧めします。 このような資格情報が実際に指定されている場合は、特権リソースへのアクセスを提供せず、できるだけ早くローテーションされるようにします。

Azure コンピューティング ギャラリーに配布する場合は、Azure コンピューティング ギャラリー リソースのベスト プラクティスにも従ってください。