Modul Terraform zona arahan Azure

Azure menyediakan layanan asli untuk membangun zona pendaratan Azure Anda. Alat lain juga dapat membantu upaya ini. Salah satu alat yang sering digunakan pelanggan dan mitra untuk menyebarkan zona pendaratan adalah Terraform by HashiCorp.

Penyebaran sumber daya ke zona pendaratan aplikasi berada di luar lingkup modul. Keputusan tentang metode penyebaran dan alat adalah untuk tim yang bertanggung jawab atas aplikasi.

Modul Terraform zona pendaratan Azure menyediakan implementasi cepat dari sumber daya platform yang Anda butuhkan untuk mengelola Zona pendaratan Azure dalam skala besar dengan menggunakan Terraform. Modul ini dirancang untuk menyederhanakan penyebaran hierarki grup manajemen, kebijakan, dan sumber daya dalam langganan konektivitas dan manajemen.

Prasyarat

Jika Anda baru menggunakan Terraform dan ingin informasi tentang menginstal dan menggunakannya, lihat Instal tutorial Terraform di HashiCorp Learn.

Untuk informasi tentang cara menyiapkan penyedia Terraform dan mengautentikasi dengan Azure, lihat Panduan penyedia AzureRM di situs web Terraform. Untuk mempelajari cara menyiapkan penyedia untuk menyebarkan di beberapa langganan, lihat Halaman wiki Konfigurasi Penyedia .

Pentingnya menggunakan modul standar

Penggunaan kembali komponen adalah prinsip dasar infrastruktur sebagai kode. Modul berperan penting dalam menentukan standar dan konsistensi di seluruh penyebaran sumber daya di dalam dan di seluruh lingkungan.

Modul Terraform zona pendaratan Azure diterbitkan ke Terraform Registry dan diverifikasi oleh HashiCorp.

Menyebarkan modul dari Terraform Registry menyediakan:

  • Pengiriman zona pendaratan Azure yang dipercepat di lingkungan Anda.
  • Jalur peningkatan yang diuji ke versi terbaru modul, bersama dengan kontrol versi yang ketat.

Manfaat menggunakan modul

Manfaat menggunakan modul Terraform zona pendaratan Azure meliputi:

  • Hierarki sumber daya inti yang dikelola dan dapat diperluas untuk organisasi langganan melalui grup manajemen.
  • Tata kelola dan kepatuhan keamanan yang dapat diskalakan melalui kontrol manajemen identitas dan akses (IAM) Azure, dengan pustaka definisi kustom yang luas siap ditetapkan.
  • Penerapan kebijakan di seluruh langganan melalui pewarisan grup manajemen.
  • Sumber daya terkelola untuk zona pendaratan manajemen dan konektivitas. Sumber daya ini menyediakan:
    • Kepatuhan kebijakan yang terjamin melalui integrasi ketat sumber daya yang dikelola oleh modul dan penetapan kebijakan terkait.
    • Integrasi antara sumber daya untuk mengurangi overhead manajemen dan memberikan pengalaman pengguna yang ditingkatkan, seperti pembuatan otomatis tautan jaringan virtual untuk Azure Private DNS.

Tip

Pustaka templat diperbarui secara terprogram dari Repositori GitHub Skala Azure/Enterprise . Untuk tetap mengetahui konfigurasi, kebijakan, dan peran pola dasar terbaru, pastikan Anda menggunakan modul versi terbaru.

Penyebaran sumber daya

Anda dapat mengonfigurasi modul untuk menyebarkan set sumber daya yang selaras dengan area desain penting berikut di zona pendaratan Azure. Sesuaikan sumber daya ini untuk memenuhi persyaratan organisasi Anda.

Kategori sumber daya Area desain kritis
Sumber daya inti Keamanan organisasi
sumber dayaTata Kelola Keamanan
Pemerintahan
Sumber daya manajemen Manajemen dan pemantauan
Sumber daya konektivitas Topologi dan konektivitas jaringan
Sumber daya identitas Manajemen identitas dan akses

Mengemas kemampuan ini ke dalam satu modul Terraform memudahkan untuk membangun dan menegakkan konsistensi di seluruh platform Azure saat Anda beroperasi dalam skala besar.

Sumber daya ini selaras dengan arsitektur konseptual zona pendaratan Azure:

Diagram arsitektur konseptual zona pendaratan Azure.

Anda dapat menyebarkan sumber daya ini, berdasarkan kemampuan, di beberapa langganan dengan menggunakan Konfigurasi Penyedia pada blok modul.

Bagian berikut menguraikan jenis sumber daya dan opsi konfigurasi.

Sumber daya inti

Kemampuan inti modul ini menyebarkan fondasi arsitektur konseptual untuk zona pendaratan Azure, dengan fokus pada organisasi sumber daya.

Diagram arsitektur konseptual zona pendaratan Azure, berfokus pada hierarki sumber daya inti.

Saat Anda mengaktifkan penyebaran sumber daya inti (diaktifkan secara default), modul menyebarkan dan mengelola jenis sumber daya berikut:

Sumber daya Jenis sumber daya Azure Jenis sumber daya Terraform
Grup pengelolaan Microsoft.Management/managementGroups azurerm_management_group
Langganan grup manajemen Microsoft.Management/managementGroups/subscriptions azurerm_management_group
Penetapan kebijakan Microsoft.Authorization/policyAssignments azurerm_management_group_policy_assignment
Definisi kebijakan Microsoft.Authorization/policyDefinitions azurerm_policy_definition
Definisi kumpulan kebijakan Microsoft.Authorization/policySetDefinitions azurerm_policy_set_definition
Penetapan peran Microsoft.Authorization/roleAssignments azurerm_role_assignment
Definisi peran Microsoft.Authorization/roleDefinitions azurerm_role_definition

Jumlah sumber daya yang tepat yang dibuat modul bergantung pada konfigurasi modul. Untuk konfigurasi default, Anda dapat mengharapkan modul untuk membuat sekitar 180 sumber daya.

Tip

Tidak satu pun dari sumber daya ini disebarkan pada cakupan langganan, tetapi Terraform masih memerlukan langganan untuk membuat sesi yang diautentikasi dengan Azure. Untuk informasi selengkapnya tentang mengautentikasi dengan Azure, lihat Penyedia Azure: Mengautentikasi ke dokumentasi Azure.

Sumber daya manajemen

Modul ini menyediakan opsi untuk mengaktifkan penyebaran sumber daya manajemen dan pemantauan dari arsitektur konseptual untuk zona pendaratan Azure ke dalam langganan yang ditentukan, seperti yang dijelaskan pada Halaman wiki Konfigurasi Penyedia . Modul ini juga memastikan bahwa langganan yang ditentukan ditempatkan di grup manajemen yang tepat.

Diagram arsitektur konseptual zona pendaratan Azure, berfokus pada sumber daya manajemen.

Saat Anda mengaktifkan penyebaran sumber daya manajemen, modul menyebarkan dan mengelola jenis sumber daya berikut (tergantung pada konfigurasi):

Sumber daya Jenis sumber daya Azure Jenis sumber daya Terraform
Grup sumber daya Microsoft.Resources/resourceGroups azurerm_resource_group
Ruang kerja Analitik Log Microsoft.OperationalInsights/workspaces azurerm_log_analytics_workspace
Solusi Analitik Log Microsoft.OperationsManagement/solutions azurerm_log_analytics_solution
Akun Automation Microsoft.Automation/automationAccounts azurerm_automation_account
Layanan tertaut Analitik Log Microsoft.OperationalInsights/workspaces /linkedServices azurerm_log_analytics_linked_service

Selain menyebarkan sumber daya di atas, modul ini menyediakan integrasi asli ke dalam penetapan kebijakan yang sesuai untuk memastikan kepatuhan kebijakan penuh.

Untuk informasi selengkapnya tentang cara menggunakan kapabilitas ini, lihat halaman Penyebaran Sumber Daya Manajemen .

Sumber daya konektivitas

Modul ini menyediakan opsi untuk mengaktifkan penyebaran topologi jaringan dan sumber daya konektivitas dari arsitektur konseptual untuk zona pendaratan Azure ke dalam konteks langganan saat ini. Ini juga memastikan bahwa langganan yang ditentukan ditempatkan di grup manajemen yang tepat.

Kemampuan ini memungkinkan penyebaran beberapa jaringan hub berdasarkan kombinasi topologi jaringan Azure tradisional (hub dan spoke), dan topologi jaringan Virtual WAN (dikelola Microsoft).

Modul ini juga dapat membuat dan menautkan DDoS Network Protection ke Virtual Networks, dan mengelola zona DNS publik dan privat terpusat.

Catatan

Saat ini kami tidak merekomendasikan Perlindungan IP DDoS di Zona Pendaratan Azure dan merekomendasikan penggunaan opsi ini dalam keadaan tertentu. Tinjau dokumentasi produk Tentang Perbandingan SKU Azure DDoS Protection

Topologi jaringan Azure tradisional (hub dan spoke)

Modul dapat secara opsional menyebarkan satu atau beberapa jaringan hub berdasarkan topologi jaringan Azure tradisional (hub dan spoke).

Diagram arsitektur konseptual zona pendaratan Azure, berfokus pada sumber daya konektivitas menggunakan topologi jaringan Azure tradisional (hub dan spoke).

Catatan

Modul saat ini hanya mengonfigurasi hub jaringan dan sumber daya dependen untuk langganan konektivitas. Meskipun ada opsi untuk mengaktifkan peering jaringan virtual keluar dari hub ke spoke, pengguna masih perlu memulai peering dari spoke ke hub. Hal ini disebabkan oleh keterbatasan cara penyedia AzureRM menargetkan langganan tertentu untuk penyebaran.

Saat Anda menyebarkan sumber daya berdasarkan topologi jaringan Azure tradisional (hub dan spoke), modul menyebarkan dan mengelola jenis sumber daya berikut (tergantung pada konfigurasi):

Sumber daya Jenis sumber daya Azure Jenis sumber daya Terraform
Grup sumber daya Microsoft.Resources/resourceGroups azurerm_resource_group
Jaringan virtual Microsoft.Network/virtualNetworks azurerm_virtual_network
Subnet Microsoft.Network/virtualNetworks/subnets azurerm_subnet
Gateway jaringan virtual Microsoft.Network/virtualNetworkGateways azurerm_virtual_network_gateway
Firewall Azure Microsoft.Network/azureFirewalls azurerm_firewall
Alamat IP Publik Microsoft.Network/publicIPAddresses azurerm_public_ip
Peering jaringan virtual Microsoft.Network/virtualNetworks/virtualNetworkPeerings azurerm_virtual_network_peering

Untuk informasi selengkapnya tentang cara menggunakan kapabilitas ini, lihat halaman wiki Sebarkan Sumber Daya Konektivitas .

Topologi jaringan Virtual WAN (dikelola Microsoft)

Modul dapat secara opsional menyebarkan satu atau beberapa jaringan hub berdasarkan topologi jaringan Virtual WAN (dikelola Microsoft).

Diagram arsitektur konseptual zona pendaratan Azure, berfokus pada sumber daya konektivitas menggunakan topologi jaringan Virtual WAN (dikelola Microsoft).

Catatan

Karena kemampuan yang berbeda dari Virtual WAN sumber daya jaringan melalui tradisional, peering untuk spoke Virtual WAN dua arah saat menggunakan kemampuan ini.

Saat Anda menyebarkan sumber daya berdasarkan topologi jaringan Virtual WAN (dikelola Microsoft), modul menyebarkan dan mengelola jenis sumber daya berikut (tergantung pada konfigurasi):

Sumber daya Jenis sumber daya Azure Jenis sumber daya Terraform
Grup Sumber Daya Microsoft.Resources/resourceGroups azurerm_resource_group
WAN Virtual Microsoft.Network/virtualWans azurerm_virtual_wan
Hub Virtual Microsoft.Network/virtualHubs azurerm_virtual_hub
Gateway Rute Ekspres Microsoft.Network/expressRouteGateways azurerm_express_route_gateway
VPN Gateway Microsoft.Network/vpnGateways azurerm_vpn_gateway
Azure Firewall Microsoft.Network/azureFirewalls azurerm_firewall
Kebijakan Azure Firewall Microsoft.Network/firewallPolicies azurerm_firewall_policy
Koneksi Hub Virtual Microsoft.Network/virtualHubs/hubVirtualNetworkConnections azurerm_virtual_hub_connection

Untuk informasi selengkapnya tentang cara menggunakan kapabilitas ini, lihat halaman Sebarkan sumber daya Virtual WAN.

Paket DDoS Protection

Modul dapat secara opsional menyebarkan DDoS Network Protection, dan menautkan Virtual Network ke paket jika diperlukan.

Catatan

Karena keterbatasan platform, paket DDoS Protection hanya dapat diaktifkan untuk jaringan virtual tradisional. Dukungan Hub Virtual saat ini tidak tersedia.

Penting

Panduan zona pendaratan Azure merekomendasikan pengaktifan Perlindungan Jaringan DDoS untuk meningkatkan perlindungan platform Azure Anda. Untuk mencegah biaya tak terduga dalam penyebaran non-produksi dan MVP, kemampuan ini dinonaktifkan di modul Terraform zona pendaratan Azure karena biaya yang terkait dengan sumber daya ini.

Untuk lingkungan produksi, sebaiknya aktifkan kemampuan ini.

Saat Anda mengaktifkan penyebaran penyebaran sumber daya paket DDoS Protection, modul menyebarkan dan mengelola jenis sumber daya berikut (tergantung pada konfigurasi):

Sumber daya Jenis sumber daya Azure Jenis sumber daya Terraform
Grup sumber daya Microsoft.Resources/resourceGroups azurerm_resource_group
Paket DDoS Protection Microsoft.Network/ddosProtectionPlans azurerm_network_ddos_protection_plan

DNS

Modul dapat secara opsional menyebarkan zona DNS Privat untuk mendukung Titik Akhir Privat dan menautkannya ke Virtual Network hub dan/atau spoke. Zona DNS publik dan privat yang ditentukan pengguna juga dapat disebarkan dan ditautkan sesuai kebutuhan.

Saat Anda mengaktifkan penyebaran penyebaran sumber daya DNS, modul menyebarkan dan mengelola jenis sumber daya berikut (tergantung pada konfigurasi):

Sumber daya Jenis sumber daya Azure Jenis sumber daya Terraform
Grup Sumber Daya Microsoft.Resources/resourceGroups azurerm_resource_group
Zona DNS Microsoft.Network/dnsZones azurerm_dns_zone
Zona DNS Privat Microsoft.Network/privateDnsZones azurerm_private_dns_zone
Tautan Virtual Network Zona DNS Privat Microsoft.Network/privatednszones/virtualnetworklinks azurerm_private_dns_zone_virtual_network_link

Sumber daya identitas

Modul ini menyediakan opsi untuk mengonfigurasi kebijakan yang berkaitan dengan zona pendaratan manajemen identitas dan akses . Ini juga memastikan bahwa langganan yang ditentukan ditempatkan di grup manajemen yang tepat.

Diagram arsitektur konseptual zona pendaratan Azure, yang berfokus pada sumber daya identitas.

Catatan

Kemampuan ini tidak menyebarkan sumber daya apa pun. Jika Anda ingin memperbarui pengaturan kebijakan yang terkait dengan grup manajemen identitas, gunakan configure_identity_resources variabel input.

Untuk informasi selengkapnya tentang cara menggunakan kapabilitas ini, lihat halaman Sumber Daya Identitas .

Memulai

Persyaratan untuk memulai modul didokumenkan di halaman Memulai Wiki.

Untuk menyederhanakan memulai, modul telah diterbitkan ke Registri Terraform. Anda dapat mereferensikannya langsung dalam kode Anda, seperti yang ditunjukkan dalam contoh sederhana nanti di artikel ini. Menjalankan terraform init akan secara otomatis mengunduh modul dan semua dependensi.

Anda dapat melihat modul terbaru dan dependensi penyedia pada Tab Dependensi di Terraform Registry.

Penting

Ada masalah umum dengan beberapa kombinasi versi penyedia Terraform dan AzureRM. Anda dapat mengatasi beberapa masalah umum dengan meningkatkan ke versi penyedia Terraform dan AzureRM terbaru. Masalah lain yang diketahui adalah kesalahan sementara yang biasanya dapat Anda perbaiki dengan menjalankan ulang penyebaran Anda.

Kami biasanya merekomendasikan menyematkan ke versi tertentu, dan menguji secara menyeluruh sebelum meningkatkan.

Kami akan merilis versi baru modul saat perubahan diperlukan. Rilis baru akan memastikan kompatibilitas dengan versi penyedia Terraform dan AzureRM terbaru. Silakan merujuk ke panduan untuk informasi lebih lanjut.

Untuk mendapatkan fitur terbaru, pastikan versi modul diatur ke versi terbaru. Jika Anda meningkatkan ke versi modul yang lebih baru, jalankan terraform init -upgrade.

Rilis GitHub (SemVer terbaru)

Contoh sederhana

Contoh kode ini menyebarkan grup manajemen minimum yang direkomendasikan dan organisasi langganan dari arsitektur referensi skala perusahaan. Setelah Anda memiliki contoh sederhana ini aktif dan berjalan, Anda dapat mulai menyesuaikan penyebaran Anda.

Tip

Meskipun root_parent_id adalah satu-satunya variabel wajib modul, kami juga menyarankan pengaturan root_id. Mengubah root_id nilai akan memulai penyebaran ulang penuh dari semua sumber daya yang dikelola modul, termasuk dependensi hilir.

Kode berikut adalah konfigurasi awal yang sederhana untuk modul root main.tf Anda:

# Configure Terraform to set the required AzureRM provider
# version and features{} block.

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = ">= 2.77.0"
    }
  }
}

provider "azurerm" {
  features {}
}

# Get the current client configuration from the AzureRM provider.
# This configuration is used to populate the root_parent_id variable with the
# current tenant ID used as the ID for the "Tenant Root Group"
# management group.

data "azurerm_client_config" "core" {}

# Use variables to customize the deployment

variable "root_id" {
  type    = string
  default = "es"
}

variable "root_name" {
  type    = string
  default = "Enterprise-Scale"
}

# Declare the Terraform Module for Cloud Adoption Framework
# Enterprise-scale and provide a base configuration.

module "enterprise_scale" {
  source  = "Azure/caf-enterprise-scale/azurerm"
  version = ">= 1.0.0"

  providers = {
    azurerm              = azurerm
    azurerm.connectivity = azurerm
    azurerm.management   = azurerm
  }

  root_parent_id = data.azurerm_client_config.core.tenant_id
  root_id        = var.root_id
  root_name      = var.root_name

}

Langkah berikutnya

Modul Terraform untuk skala Perusahaan Cloud Adoption Framework menyediakan jalur yang dipercepat untuk membangun zona pendaratan skala perusahaan Anda. Ini juga memberikan fleksibilitas untuk memperluas dan menyesuaikan penyebaran Anda sambil mempertahankan pendekatan yang sederhana untuk mengelola konfigurasi setiap zona arahan.

Untuk mengetahui selengkapnya, tinjau modul di Terraform Registry dan jelajahi dokumentasi modul di GitHub. Dalam dokumentasi, Anda menemukan lebih banyak contoh dan tutorial tentang cara menyesuaikan penyebaran Anda.

Pelajari cara menyebarkan modul Terraform zona pendaratan Azure melalui HashiCorp Learn. Dari sana, Anda juga dapat menemukan cara kerja beberapa bagian modul.