共用方式為


Azure 登陸區域 - Terraform 模組設計考慮

本文討論使用 Azure 登陸區域 Terraform 模組時要考慮的重要區域。 此課程模組提供根據 Azure 登陸區域概念架構來部署及操作 Azure 平臺的有意見方法,如 雲端採用架構 (CAF) 中所述。

Terraform 是 HashiCorp 所建立的開放原始碼基礎結構即程式代碼 (IaC) 工具,使用宣告式語法來部署基礎結構資源。 它是可延伸的,具有跨平台支援,並透過狀態追蹤來啟用不可變的基礎結構。


重要

模組可在 Terraform Registry 上 取得:Azure 登陸區域 Terraform 模組。 您可以使用它作為起點,並根據您的需求進行設定。

注意

數種部署技術的實 作,包括入口網站型、ARM 範本和 Terraform 模組。 部署技術的選擇不應影響產生的 Azure 登陸區域部署。

ALZ Terraform Accelerator

若要使用 Terraform 快速開始部署 ALZ,您可以利用 設計為做為範本的 ALZ Terraform Accelerator 。 此存放庫提供 Azure 登陸區域 Terraform 模組的支持實作,以及 Azure DevOps 管線和 GitHub 動作工作流程。

ALZ Terraform Accelerator 遵循 3 階段方法:

  1. 必要條件:設定認證和訂用帳戶的指示。
  2. 啟動程式:執行 PowerShell 腳本以產生持續傳遞環境。
  3. 執行:更新模組(如有需要),以符合組織的需求,並透過持續傳遞進行部署。

從使用者指南開始,逐步引導您的 Azure 登陸區域環境啟動並執行。

設計

顯示 Azure 登陸區域概念架構的圖表。

架構會利用 Terraform 的可設定本質,並是由主要協調流程模組所組成。 此課程模組會封裝 Azure 登陸區域概念架構的多個功能。 您可以個別或部分地部署每個功能。 例如,您可以只部署中樞網路,或只部署 Azure DDoS 保護,或只部署 DNS 資源。 這樣做時,您必須考慮功能具有相依性。

此架構會利用協調器方法來簡化部署體驗。 您可能偏好使用一或多個專用模塊實例來實作每項功能,其中每個實例都專用於架構的特定部分。 使用正確的設定,這一切都可能

模組

Terraform 的核心概念是使用模組。 模組可讓您將部署組織成邏輯群組。 透過模組,您可以封裝部署的複雜詳細數據,以改善 Terraform 檔案的可讀性。 您也可以輕鬆地對不同的部署重複使用模組。

在定義和部署登陸區域時,重複使用模組的能力提供真正的好處。 它可在程式代碼中啟用可重複且一致的環境,同時減少大規模部署所需的工作。

Azure 登陸區域的 Terraform 實作是使用作為協調流程層的單一模組來傳遞。 協調流程層可讓您選取使用模組部署和管理的資源。 模組可以在相同的環境中多次使用,以彼此獨立部署資源。 這在負責不同功能或子資源集合的組織中很有用。

圖層和預備

實作著重於 Azure 登陸區域概念架構中央資源階層。 此設計以下列功能為中心:

  • 核心資源
  • 管理資源
  • 聯機資源
  • 身分識別資源

模組會將資源分組為這些功能,因為它們是要一起部署。 這些群組會形成實作的邏輯階段。

您可以使用功能旗標來控制這些功能的部署。 這種方法的優點是能夠隨著時間累加地新增至您的環境。 例如,您可以從少數功能開始。 您可以在稍後準備好時新增其餘功能。

核心資源

模組的核心資源功能與 雲端採用架構 的資源組織設計區域一致。 它會為 Azure 登陸區域部署概念架構的基礎資源

此圖顯示 Terraform 模組所部署的核心 Azure 登陸區域架構。

原型

核心資源功能內的重要概念是包含原型。

原型提供可重複使用的程式碼型方法,以定義哪些原則定義、原則集定義、原則指派、角色定義和角色指派必須在指定範圍套用。 在 Terraform 實作中,這些決策會封裝為 原型定義

若要建立登陸區域,管理群組會與原型定義相關聯。 在下列公司登陸區域的範例中,archetype_config具有「es_corp」原型定義的指標。 該定義包含將新增至此管理群組的所有原則和角色設定。

  es_corp_landing_zones = {
    "contoso-corp" = {
      display_name               = "Corp"
      parent_management_group_id = "contoso-landing-zones"
      subscription_ids           = []
      archetype_config           = {
        archetype_id ="es_corp"
        parameters   = {}
        access_control = {}
    }
  }

當內建原型不符合您的需求時,模組會提供選項來建立新的原型或變更現有的原型。

管理資源

模組的管理資源功能符合 雲端採用架構的管理設計區域。 這項功能提供將管理和監視資源部署至管理平臺登陸區域的選項。

聯機資源

模組的連線資源功能提供部署 Azure 登陸區域概念架構的網路拓撲和連線能力的選項。

身分識別資源

模組的身分識別資源功能符合 雲端採用架構 的 Azure 身分識別和存取管理設計區域。 此功能提供在身分識別平臺登陸區域上設定原則的選項。

注意

這項功能不會部署任何資源。 deploy_identity_resources當變數設定為 true 時,會設定 Azure 原則 指派來保護身分識別平臺登陸區域訂用帳戶中的資源。

模組描述

本節提供本課程模組所部署資源的高階概觀。

資源類型(秒) 描述 實用連結
核心 管理群組 管理群組是 Azure 租使用者中最高層級的資源。 管理群組可讓您更輕鬆地管理資源。 您可以在管理群組層級套用原則,而較低層級的資源將會繼承該原則。 具體而言,您可以在管理群組下的訂用帳戶繼承的管理群組層級套用下列專案:
  • Azure 原則
  • Azure 角色型 存取控制 (RBAC) 角色指派
  • 成本控制
核心 原則定義、原則指派和原則集定義 DeployIfNotExists (DINE) 或修改原則可協助確保構成登陸區域的訂用帳戶和資源符合規範。 原則會透過原則指派指派指派給管理群組。 這些原則可減輕登陸區域的管理負擔。 原則集定義會將原則集合群組在一起。

並非所有客戶都能夠使用 DINE 或修改原則。 如果是這種情況, 則自定義原則 的 CAF 指引會提供指引。
核心 角色定義和角色指派 角色型訪問控制 (RBAC) 可簡化系統內用戶權力的管理。 您不必管理個人的許可權,而是決定系統中不同角色所需的許可權。 Azure RBAC 有數 個內建角色。 自定義角色定義可讓您為環境建立自定義角色。

身分識別和存取管理 (IAM) 是雲端運算中的主要安全性界限。 Azure RBAC 可讓您跨管理群組和訂用帳戶,對服務主體、受控識別或安全組執行內建角色或自定義角色定義的角色指派。
管理 Azure 監視器、Azure 自動化 和Microsoft Sentinel Azure 監視器、Azure 自動化 和Microsoft Sentinel 可讓您監視和管理基礎結構和工作負載。 Azure 監視器是一種解決方案,可讓您收集、分析及處理來自您環境的遙測數據。

Microsoft Sentinel 是雲端原生安全性資訊和事件管理 (SIEM)。 這可讓您:
  • 收集 - 收集整個基礎結構的數據
  • 偵測 - 偵測先前未偵測到的威脅
  • 回應 - 使用內建協調流程回應合法威脅
  • 調查 - 使用人工智慧調查威脅

Azure 自動化 是雲端式自動化系統。 包括:
  • 設定管理 - 清查和追蹤 Linux 和 Windows 虛擬機的變更,以及管理所需的狀態設定
  • 更新管理 - 評估 Windows 和 Linux 系統合規性,並建立排程的部署以符合合規性
  • 程式自動化 - 自動化管理工作
連線性 此處所列的核心網路資源類型 網路拓撲是 Azure 登陸區域部署中的重要考慮。 CAF 著重於兩種核心網路方法
  • 以 Azure 虛擬 WAN 為基礎的拓撲
  • 傳統拓撲
連線性 Azure DDoS 保護 Azure 登陸區域指引建議啟用 Azure DDoS 網路保護。 此服務提供針對 DDoS 攻擊的周全保護。
連線性 DNS 區域、私用 DNS 區域和 私用 DNS 區域 虛擬網絡 連結 私用 DNS 區域可部署以支援使用私人端點。 私人端點是指派虛擬網路私人IP位址的NIC。 您可以使用私人IP位址安全地與支援 Azure Private Link 的服務通訊。 私用 DNS 區域可以設定為將服務的完整功能變數名稱 (FQDN) 解析為私人端點私人 IP 位址。

使用 Terraform 模組

部署核心資源

根據預設,模組會部署下列階層,這是登陸區域管理群組的核心集合:

    • 平臺
      • 身分識別
      • 管理
      • 連線性
    • 登陸區域
    • 已解除委任
    • 沙箱

SAP、Corp 和 Online 登陸區域管理群組不適用於每個人,因此預設不會部署它們。 以下是部署這些方法的方法:

  1. 為了示範目的,您可以將變數設定 deploy_demo_landing_zones 為 true,以部署 SAP、Corp 和 Online 登陸區域
  2. 基於生產目的,您可以將下列變數設定為 true 來開啟您想要的管理群組:
    • deploy_corp_landing_zones
    • deploy_online_landing_zones
    • deploy_sap_landing_zones
  3. 您可以藉由建立 自定義登陸區域定義來部署自己的自定義登陸區域 管理群組

部署管理資源

若要部署管理資源, deploy_management_resources 變數必須設定為 true,而且 subscription_id_management 變數必須設定為要部署資源之管理訂用帳戶的標識符。

deploy_management_resources = true
subscription_id_management = <management subscription id>

部署連線資源

部署連線資源 提供如何部署這些拓撲的指引。

部署身分識別資源

若要部署身分識別功能, deploy_identity_resources 變數必須設定為 true,而且 subscription_id_identity 變數必須設定為要設定原則的身分識別訂用帳戶標識符。

deploy_identity_resources = true
subscription_id_identity = <identity subscription id>

自定義 Terraform 實作

作為 雲端採用架構 一部分提供的 Azure 登陸區域實作,符合各種不同的需求和使用案例。 不過,通常在某些情況下,需要自定義才能符合特定商務需求。

提示

如需詳細資訊,請參閱 量身打造 Azure 登陸區域架構以符合需求

Azure 登陸區域 Terraform 模組可作為自定義部署的基礎。 它可讓您藉由移除從頭開始的需求來加速實作,因為規則已備妥選項的特定必要變更。

GitHub 標誌 GitHub 存放庫 Wiki GitHub 提供自定義模組的相關信息:Azure 登陸區域 Terraform 模組 - Wiki。 您可以使用它作為起點,並根據您的需求進行設定。