共用方式為


Azure VM Image Builder 的隔離式映像組建

隔離的映像組建是 Azure VM 映像產生器 (AIB) 的功能。 它會將 VM 映像自定義/驗證的核心程式從共用平臺基礎結構轉換為訂用帳戶中的專用 Azure 容器執行個體 (ACI) 資源,以提供計算和網路隔離。

隔離式映像組建的優點

隔離的映像組建藉由將組建 VM 的網路存取限制為僅限訂用帳戶,來啟用深度防禦。 隔離的映像組建也可讓您更透明地檢查 AIB 完成的處理,以自定義/驗證您的 VM 映射。 此外,隔離式映像組建可簡化即時建置記錄的檢視。 具體而言:

  1. 計算隔離: 隔離的映射組建會在訂用帳戶中的 ACI 資源中執行映射建置處理的主要部分,而不是在 AIB 的共享平臺資源上執行。 ACI 會為每個容器群組提供 Hypervisor 隔離,以確保容器會在隔離中執行,而不會共用核心。

  2. 網路隔離: 隔離映射組建會移除您組建 VM 與 AIB 服務後端元件之間的所有直接網路 WinRM/ssh 通訊。

    • 如果您要布建 AIB 範本,而不需要自己的子網來建置 VM,則映像建置階段的預備資源群組中不會再布建公用 IP 位址資源。
    • 如果您要為建置 VM 布建具有現有子網的 AIB 範本,則組建 VM 與 AIB 後端平臺資源之間不會再設定 Private Link 型通道。 相反地,ACI 與組建 VM 資源之間會設定通道,這兩者都位於訂用帳戶中的預備資源群組中。
    • 從 API 版本 2024-02-01 開始,除了組建 VM 的子網之外,您還可以指定第二個子網來部署 ACI。 如果指定,AIB 會在此子網上部署 ACI,而且不需要 AIB 設定 ACI 與建置 VM 之間的 Private Link 型通道。 如需第二個子網的詳細資訊,請參閱這裡一
  3. 透明度: AIB 建置在 HashiCorp Packer上。 隔離式映像組建會在訂用帳戶中的 ACI 中執行 Packer,這可讓您檢查 ACI 資源及其容器。 同樣地,在您的訂用帳戶中擁有整個網路通訊管線,可讓您檢查所有網路資源、其設定及其額度。

  4. 更好的實時記錄檢視: AIB 會將自訂記錄寫入訂用帳戶中預備資源群組中的儲存體帳戶。 隔離映射組建提供另一種方式,直接在 Azure 入口網站 中追蹤相同的記錄,這可藉由流覽至ACI資源的AIB容器來完成。

網路拓撲

隔離映像組建會部署訂用帳戶中預備資源群組中的 ACI 和組建 VM。 若要讓 AIB 自定義/驗證映像,ACI 中執行的容器實例必須具有組建 VM 的網路路徑。 根據您的自定義網路需求和原則,您可以設定 AIB 以針對此目的使用不同的網路拓撲:

不要自備組建 VM 子網

  • 您可以選取此拓撲,方法是不指定 vnetConfig 影像範本中的欄位,或指定欄位但不含 subnetIdcontainerInstanceSubnetId 子字段。
  • 在此情況下,AIB 會在預備資源群組中部署 虛擬網絡,以及兩個子網和網路安全組 (NSG)。 其中一個子網可用來部署 ACI,而另一個子網則用來部署組建 VM。 NSG 已設定為允許兩個子網之間的通訊。
  • 在此情況下,AIB 不會部署公用IP資源或私人連結型通訊管線。

攜帶您自己的組建 VM 子網,但不攜帶您自己的 ACI 子網

  • 您可以藉由指定 vnetConfig 欄位以及 subnetId 子欄位,而不是 containerInstanceSubnetId 影像範本中的子欄位,來選取此拓撲。
  • 在此情況下,AIB 會在預備資源群組中部署暫存 虛擬網絡,以及兩個子網和網路安全組 (NSG)。 其中一個子網可用來部署 ACI,而另一個子網則用來部署私人端點資源。 組建 VM 會部署在指定的子網中。 私人鏈接型通訊管線,由私人端點、Private Link 服務、Azure Load Balancer 和 Proxy 虛擬機組成,也會部署在預備資源群組中,以利 ACI 子網與組建 VM 子網之間的通訊。

自備組建 VM 子網,並攜帶您自己的 ACI 子網

  • 您可以藉由指定 vnetConfig 欄位以及 subnetId 影像範本中的和 containerInstanceSubnetId 子字段,來選取此拓撲。 此選項 (和 子欄位 containerInstanceSubnetId) 可從 API 版本 2024-02-01 開始使用。 您也可以更新現有的範本,以使用此拓撲。
  • 在此情況下,AIB 會將組建 VM 部署到指定的組建 VM 子網,並將 ACI 部署到指定的 ACI 子網。
  • AIB 不會在預備資源群組中部署任何網路資源,包括公用IP、虛擬網絡、子網、網路安全組、私人端點、Private Link服務、Azure Load Balancer和 Proxy 虛擬機。 如果您有配額限制或原則不允許部署這些資源,則可以使用此拓撲。
  • ACI 子網必須符合特定條件,才能搭配隔離映像組建使用。

您可以在樣本參考中看到這些欄位的詳細數據。 這裡會詳細討論網路選項。

回溯相容性

隔離的映像組建是平臺層級變更,不會影響 AIB 的介面。 因此,您現有的映像範本和觸發程式資源會繼續運作,而且您部署這些類型的新資源的方式不會有任何變更。 如果您想要使用 允許攜帶您自己的 ACI 子網的網路拓撲,則必須建立新的範本或更新現有的範本。

您的映射組建會自動移轉至隔離的映像組建,而且您不需要採取任何動作來選擇加入。 此外,自定義記錄會繼續在記憶體帳戶中使用。

根據映像範本中指定的網路拓撲,您可能會發現暫存資源群組中暫時出現一些新資源(例如 ACI、虛擬網絡、網路安全組和私人端點),而其他一些資源不再出現(例如公用 IP 位址)。 如先前所述,這些暫存資源只存在於建置期間,AIB 之後才會刪除它們。

重要

請確定您的訂用帳戶已向 Microsoft.ContainerInstance provider 註冊:

  • Azure CLI: az provider register -n Microsoft.ContainerInstance
  • PowerShell:Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance

成功註冊您的訂用帳戶之後,請確定您的訂用帳戶中沒有拒絕 ACI 資源部署的 Azure 原則。 只允許一組不受限制的資源類型,但不包括 ACI 的原則會導致隔離映射組建失敗。

請確定您的訂用帳戶也有足夠的 資源 配額,才能部署 ACI 資源。

重要

根據映像範本中指定的網路拓撲,AIB 可能需要在訂用帳戶中的預備資源群組中部署暫存網路相關資源。 請確定沒有任何 Azure 原則拒絕在資源群組中部署這類資源 (具有子網路的虛擬網路、網路安全性群組、私人端點)。

如果您有將 DDoS 保護方案套用至任何新建立虛擬網路的 Azure 原則,請放寬資源群組的原則,或確定範本受身份控識別具有加入方案的權限。 或者,您可以使用不需要由 AIB 部署新 虛擬網絡 的網路拓撲。

重要

請務必在使用 AIB 時遵循所有 最佳做法

注意

AIB 正在將此變更推出至所有位置和客戶。 其中一些詳細資料 (特別是關於部署新的網路相關資源) 可能會隨著流程根據服務遙測和意見反應進行微調而變更。 如需任何錯誤,請參閱 疑難解答指南

下一步