Azure giriş bölgeleri Terraform modülü

Azure, Azure giriş bölgelerinizi oluşturmak için yerel hizmetler sağlar. Diğer araçlar da bu çalışmada yardımcı olabilir. Müşterilerin ve iş ortaklarının giriş bölgelerini dağıtmak için sıklıkla kullandığı araçlardan biri aracıdır.

Kaynakların uygulama giriş bölgelerine dağıtımı modülün kapsamı dışındadır. Dağıtım yöntemi ve araçlarıyla ilgili kararlar, uygulamadan sorumlu ekip içindir.

Azure giriş bölgeleri Terraform modülü, ihtiyacınız olan platform kaynaklarının hızlı bir şekilde uygulanmasını sağlar. Terraform kullanarak büyük ölçekte Azure giriş bölgeleri. Modül, bağlantı ve yönetim aboneliklerindeki yönetim grubu hiyerarşisinin, ilkelerinin ve kaynaklarının dağıtımını basitleştirmek için tasarlanmıştır.

Önkoşullar

Terraform'u yeni kullanmaya yeniyseniz ve yükleme ve kullanma hakkında bilgi edinmek istiyorsanız bkz Terraform öğreticisini HashiCorp Learn'e yükleyin.

Terraform sağlayıcısını ayarlama ve Azure ile kimlik doğrulaması yapma hakkında bilgi için bkz Terraform web sitesinde AzureRM sağlayıcısı kılavuzları . Sağlayıcıyı birden çok abonelikte dağıtmak üzere ayarlamayı öğrenmek için Sağlayıcı Yapılandırması wiki sayfası.

Standart modülleri kullanmanın önemi

Bileşenlerin yeniden kullanılması kod olarak altyapının temel ilkesidir. Modüller, ortamlar içinde ve ortamlar arasında kaynak dağıtımında standartları ve tutarlılığı tanımlamada yardımcı olur.

Azure giriş bölgeleri Terraform modülü, yayımlanır.Terraform Registry ve HashiCorp tarafından doğrulanır.

Terraform Kayıt Defteri'nden modülü dağıtmak aşağıdakileri sağlar:

  • Ortamınızdaki Azure giriş bölgelerinin hızlandırılmış teslimi.
  • Katı sürüm denetimiyle birlikte modülün en son sürümüne test edilmiş bir yükseltme yolu.

Modülü kullanmanın avantajları

Azure giriş bölgeleri Terraform modülünü kullanmanın avantajları şunlardır:

  • Yönetim grupları aracılığıyla abonelik organizasyonu için yönetilen ve genişletilebilir bir çekirdek kaynak hiyerarşisi.
  • Azure kimlik ve erişim yönetimi (IAM) denetimleri aracılığıyla ölçeklenebilir güvenlik idaresi ve uyumluluğu ve atanmaya hazır kapsamlı bir özel tanım kitaplığı.
  • Yönetim grubu devralma yoluyla abonelikler arasında ilkenin uygulanması.
  • Yönetim ve bağlantı giriş bölgeleri için yönetilen kaynaklar. Bu kaynaklar şunları sağlar:
    • Modül tarafından yönetilen kaynakların sıkı tümleştirmesi ve buna karşılık gelen ilke atamaları aracılığıyla ilke uyumluluğunu güvence altına alın.
    • Yönetim yükünü azaltmak ve Azure Özel DNS için sanal ağ bağlantılarının otomatik olarak oluşturulması gibi gelişmiş bir kullanıcı deneyimi sağlamak için kaynaklar arasında tümleştirme.

İpucu

Şablon kitaplığı program aracılığıyla güncelleştirilir.Azure/Enterprise-Scale GitHub deposu. En son archetype yapılandırması, ilkeleri ve rolleri ile güncel kalmak için modülün en son sürümünü kullandığınızdan emin olun.

Kaynak dağıtımı

Modülü, Azure giriş bölgelerinde aşağıdaki kritik tasarım alanlarıyla uyumlu kaynak kümeleri dağıtacak şekilde yapılandırabilirsiniz. Kuruluşunuzun gereksinimlerini karşılamak için bu kaynakları özelleştirin.

Kaynak kategorisi Kritik tasarım alanı
Temel kaynaklar Bulut Benimseme ÇerçevesiAzure giriş bölgeleri için kaynak kuruluşu
Bulut Benimseme Çerçevesi Azure giriş bölgeleri için Güvenlik
Yönetim
Yönetim kaynakları Yönetim ve izleme
Bağlantı kaynakları Ağ topolojisi ve bağlantı
Kimlik kaynakları Kimlik ve erişim yönetimi

Bu özellikleri tek bir Terraform modülünde paketlemek, büyük ölçekte çalışırken Azure platformunda tutarlılık oluşturmayı ve zorlamayı kolaylaştırır.

Bu kaynaklar Azure giriş bölgeleri kavramsal mimarisiyle uyumlu:

Azure giriş bölgesi kavramsal mimarisinin diyagramı.

kullanarak bu kaynakları yeteneklere göre birden çok abonelikte dağıtabilirsiniz. Modül bloğunda Sağlayıcı Yapılandırması.

Aşağıdaki bölümlerde kaynak türleri ve yapılandırma seçenekleri özetlenmiştir.

Temel kaynaklar

Bu modülün temel özelliği temellerini dağıtır.Bulut Benimseme Çerçevesi Azure giriş kavramsal mimari.kaynak kuruluşu.

Temel kaynak hiyerarşisine odaklanan Azure giriş bölgesi kavramsal mimarisinin diyagramı.

Çekirdek kaynakların dağıtımını etkinleştirdiğinizde (varsayılan olarak etkin), modül aşağıdaki kaynak türlerini dağıtır ve yönetir:

Kaynak Azure kaynak türü Terraform kaynak türü
Yönetim grupları Microsoft.Management/managementGroups azurerm_management_group
Yönetim grubu abonelikleri Microsoft.Management/managementGroups/subscriptions azurerm_management_group
İlke atamaları Microsoft.Authorization/policyAssignments azurerm_management_group_policy_assignment
İlke tanımları Microsoft.Authorization/policyDefinitions azurerm_policy_definition
İlke kümesi tanımları Microsoft.Authorization/policySetDefinitions azurerm_policy_set_definition
Rol atamaları Microsoft.Authorization/roleAssignments azurerm_role_assignment
Rol tanımları Microsoft.Authorization/roleDefinitions azurerm_role_definition

Modülün oluşturduğu kaynakların tam sayısı modül yapılandırmasına bağlıdır. Varsayılan yapılandırma için modülün yaklaşık 180 kaynak oluşturmasını bekleyebilirsiniz.

İpucu

Bu kaynakların hiçbiri abonelik kapsamında dağıtılmaz, ancak Terraform'un Azure ile kimliği doğrulanmış bir oturum oluşturmak için bir aboneliğe ihtiyacı vardır. Azure ile kimlik doğrulaması hakkında daha fazla bilgi için bkz Azure Sağlayıcısı: Azure belgelerinde kimlik doğrulaması .

Yönetim kaynakları

Modül, etkinleştirme seçeneği sağlar. yönetim ve izleme kaynakları. açıklandığı gibi Belirtilen aboneliğe Azure giriş bölgeleri için kavramsal mimari.Sağlayıcı Yapılandırması wiki sayfası. Modül ayrıca belirtilen aboneliğin doğru yönetim grubuna yerleştirilmesini de sağlar.

Yönetim kaynaklarına odaklanan Azure giriş bölgesi kavramsal mimarisinin diyagramı.

Yönetim kaynaklarının dağıtımını etkinleştirdiğinizde, modül aşağıdaki kaynak türlerini dağıtır ve yönetir (yapılandırmaya bağlı olarak):

Kaynak Azure kaynak türü Terraform kaynak türü
Kaynak grupları Microsoft.Resources/resourceGroups azurerm_resource_group
Log Analytics çalışma alanı Microsoft.OperationalInsights/workspaces azurerm_log_analytics_workspace
Log Analytics çözümleri Microsoft.OperationsManagement/solutions azurerm_log_analytics_solution
Otomasyon hesabı Microsoft.Automation/automationAccounts azurerm_automation_account
Log Analytics bağlı hizmeti Microsoft.OperationalInsights/workspaces /linkedServices azurerm_log_analytics_linked_service

Yukarıdaki kaynakları dağıtmaya ek olarak modül, tam ilke uyumluluğu sağlamak için ilgili ilke atamalarıyla yerel tümleştirme sağlar.

Bu özelliğin nasıl kullanılacağı hakkında daha fazla bilgi için wiki sayfasına bakın.

Bağlantı kaynakları

Modül, etkinleştirme seçeneği sağlar. ağ topolojisi ve bağlantı kaynakları.Geçerli abonelik bağlamı içine Azure giriş bölgeleri için kavramsal mimari. Ayrıca belirtilen aboneliğin doğru yönetim grubuna yerleştirilmesini de sağlar.

Bu özellik, geleneksel Azure ağ topolojisi (merkez ve uç) ile Sanal WAN ağ topolojisinin (Microsoft tarafından yönetilen) herhangi bir bileşimine dayalı olarak birden çok merkez ağı dağıtımına olanak tanır.

Modül ayrıca DDoS Ağ Koruması oluşturup Sanal Ağlara bağlayabilir ve merkezi genel ve özel DNS bölgelerini yönetebilir.

Not

Şu anda Azure Giriş Bölgelerinde DDoS IP Koruması önermiyoruz ve bu seçeneğin belirli durumlarda kullanılmasını önermiyoruz. Azure DDoS Koruması SKU Karşılaştırması hakkında ürün belgelerini gözden geçirin

Geleneksel Azure ağ topolojisi (merkez-uç)

Modül isteğe bağlı olarak geleneksel Azure ağ topolojisini (merkez ve uç) temel alan bir veya daha fazla merkez ağı dağıtabilir.

Geleneksel bir Azure ağ topolojisi (merkez-uç) kullanarak bağlantı kaynaklarına odaklanan Azure giriş bölgesi kavramsal mimarisinin diyagramı.

Not

Modül şu anda bağlantı aboneliği için yalnızca ağ hub'ını ve bağımlı kaynakları yapılandırıyor. Merkezden uca giden sanal ağ eşlemesini etkinleştirme seçeneği olsa da, kullanıcıların yine de uçtan merkeze eşleme başlatması gerekir. Bunun nedeni, AzureRM sağlayıcısının dağıtım için belirli bir aboneliği hedeflemesiyle ilgili sınırlamalardır.

Kaynakları geleneksel bir Azure ağ topolojisine (merkez-uç) göre dağıttığınızda modül aşağıdaki kaynak türlerini dağıtır ve yönetir (yapılandırmaya bağlı olarak):

Kaynak Azure kaynak türü Terraform kaynak türü
Kaynak grupları Microsoft.Resources/resourceGroups azurerm_resource_group
Sanal ağlar Microsoft.Network/virtualNetworks azurerm_virtual_network
Alt ağlar Microsoft.Network/virtualNetworks/subnets azurerm_subnet
Sanal ağ geçitleri Microsoft.Network/virtualNetworkGateways azurerm_virtual_network_gateway
Azure güvenlik duvarları Microsoft.Network/azureFirewalls azurerm_firewall
Genel IP adresleri Microsoft.Network/publicIPAddresses azurerm_public_ip
Sanal ağ eşlemeleri Microsoft.Network/virtualNetworks/virtualNetworkPeerings azurerm_virtual_network_peering

Bu özelliğin nasıl kullanılacağı hakkında daha fazla bilgi için wiki sayfasına bakın.

Sanal WAN ağ topolojisi (Microsoft tarafından yönetilen)

Modül isteğe bağlı olarak Sanal WAN ağ topolojisine (Microsoft tarafından yönetilen) bağlı olarak bir veya daha fazla merkez ağı dağıtabilir.

Sanal WAN ağ topolojisi (Microsoft tarafından yönetilen) kullanarak bağlantı kaynaklarına odaklanan Azure giriş bölgesi kavramsal mimarisinin diyagramı.

Not

Sanal WAN ağ kaynaklarının gelenekselden farklı özellikleri nedeniyle, bu özellik kullanılırken Sanal WAN uçlar için eşleme çift yönlüdür.

Kaynakları bir Sanal WAN ağ topolojisine (Microsoft tarafından yönetilen) göre dağıttığınızda modül aşağıdaki kaynak türlerini dağıtır ve yönetir (yapılandırmaya bağlı olarak):

Kaynak Azure kaynak türü Terraform kaynak türü
Kaynak Grupları Microsoft.Resources/resourceGroups azurerm_resource_group
Sanal WAN'lar Microsoft.Network/virtualWans azurerm_virtual_wan
Sanal Hub’lar Microsoft.Network/virtualHubs azurerm_virtual_hub
Express Route Ağ Geçidi Microsoft.Network/expressRouteGateways azurerm_express_route_gateway
VPN Ağ Geçitleri Microsoft.Network/vpnGateways azurerm_vpn_gateway
Azure Güvenlik Duvarları Microsoft.Network/azureFirewalls azurerm_firewall
Azure Güvenlik Duvarı İlkeleri Microsoft.Network/firewallPolicies azurerm_firewall_policy
Sanal Merkez Bağlantıları Microsoft.Network/virtualHubs/hubVirtualNetworkConnections azurerm_virtual_hub_connection

Bu özelliğin nasıl kullanılacağı hakkında daha fazla bilgi için Sanal WAN Kaynakları Dağıtma wiki sayfası.

DDoS Koruma planı

Modül isteğe bağlı olarak DDoS Ağ Koruması dağıtabilir ve gerekirse Sanal Ağları plana bağlayabilir.

Not

Platform sınırlamaları nedeniyle DDoS Koruması planları yalnızca geleneksel sanal ağlar için etkinleştirilebilir. Sanal Merkez desteği şu anda kullanılamıyor.

Önemli

Azure giriş bölgeleri kılavuzu, Azure platformunuzun korumasını artırmak için DDoS Ağ Koruması'nın etkinleştirilmesini önerir. Üretim dışı ve MVP dağıtımlarında beklenmeyen maliyetleri önlemek için bu özellik, bu kaynakla ilişkili maliyet nedeniyle Azure giriş bölgeleri Terraform modülünde devre dışı bırakılır.

Üretim ortamları için bu özelliği etkinleştirmenizi kesinlikle öneririz.

DDoS Koruma planı kaynaklarının dağıtımını etkinleştirdiğinizde modül aşağıdaki kaynak türlerini dağıtır ve yönetir (yapılandırmaya bağlı olarak):

Kaynak Azure kaynak türü Terraform kaynak türü
Kaynak grupları Microsoft.Resources/resourceGroups azurerm_resource_group
DDoS Koruması planları Microsoft.Network/ddosProtectionPlans azurerm_network_ddos_protection_plan

DNS

Modül, özel uç noktaları desteklemek ve bunları merkez ve/veya uç Sanal Ağlara bağlamak için isteğe bağlı olarak Özel DNS bölgeleri dağıtabilir. Kullanıcı tarafından belirtilen genel ve özel DNS bölgeleri de gerektiğinde dağıtılabilir ve bağlanabilir.

DNS kaynaklarının dağıtımını etkinleştirdiğinizde modül aşağıdaki kaynak türlerini dağıtır ve yönetir (yapılandırmaya bağlı olarak):

Kaynak Azure kaynak türü Terraform kaynak türü
Kaynak Grupları Microsoft.Resources/resourceGroups azurerm_resource_group
DNS Bölgeleri Microsoft.Network/dnsZones azurerm_dns_zone
Özel DNS Bölgeleri Microsoft.Network/privateDnsZones azurerm_private_dns_zone
Özel DNS Bölge Sanal Ağ Bağlantısı Microsoft.Network/privatednszones/virtualnetworklinks azurerm_private_dns_zone_virtual_network_link

Kimlik kaynakları

Modül, ilgili ilkeleri yapılandırma seçeneği sağlar.kimlik ve erişim yönetimi giriş bölgesi. Ayrıca belirtilen aboneliğin doğru yönetim grubuna yerleştirilmesini de sağlar.

Kimlik kaynaklarına odaklanan Azure giriş bölgesi kavramsal mimarisinin diyagramı.

Not

Bu özellik herhangi bir kaynak dağıtmaz. Kimlik yönetimi grubuyla ilgili ilke ayarlarını güncelleştirmek istiyorsanız giriş değişkenini configure_identity_resources kullanın.

Bu özelliğin nasıl kullanılacağı hakkında daha fazla bilgi için wiki sayfasına bakın.

Başlarken

Modülü kullanmaya başlama gereksinimleri sayfasında belgelenmiştir.

Kullanmaya başlamayı basitleştirmek için modül Terraform Kayıt Defteri. Bu makalenin sonraki bölümlerindeki basit örnekte gösterildiği gibi doğrudan kodunuzun içinde başvurabilirsiniz. komutunu çalıştırdığınızda terraform init modül ve tüm bağımlılıklar otomatik olarak indirilir.

Terraform Kayıt Defteri'ndeki Bağımlılıklar sekmesi.

Önemli

Bazı Terraform ve AzureRM sağlayıcısı sürüm birleşimleriyle ilgili bilinen sorunlar vardır. Bilinen bazı sorunları en son Terraform ve AzureRM sağlayıcı sürümlerine yükselterek çözebilirsiniz. Bilinen diğer sorunlar, genellikle dağıtımınızı yeniden çalıştırarak düzeltebileceğiniz geçici hatalardır.

Genellikle belirli sürümlere sabitlemenizi ve yükseltmeden önce kapsamlı bir şekilde test yapmanızı öneririz.

Değişiklik gerektiğinde modülün yeni sürümlerini yayımlayacağız. Yeni sürümler, en son Terraform ve AzureRM sağlayıcı sürümleriyle uyumluluğu güvence altına alır. Daha fazla bilgi için lütfen Modül sürümleri kılavuzumuza bakın.

En son özellikleri almak için modül sürümünün en son sürüme ayarlandığından emin olun. Modülün sonraki bir sürümüne yükseltiyorsanız komutunu çalıştırın terraform init -upgrade.

GitHub sürümü (en son SemVer)

Basit örnek

Bu örnek kod, kurumsal ölçekli başvuru mimarisinden önerilen en düşük yönetim grubunu ve abonelik kuruluşunu dağıtır. Bu basit örneği çalıştırdıktan sonra dağıtımınızı özelleştirmeye başlayabilirsiniz.

İpucu

Modülün tek zorunlu değişkeni olsa root_parent_id da ayarını root_idda öneririz. Değerin root_id değiştirilmesi, aşağı akış bağımlılıkları dahil olmak üzere modülün yönettiği tüm kaynakların tam yeniden dağıtımını başlatır.

Aşağıdaki kod, kök modülünüz main.tf için basit bir başlangıç yapılandırmasıdır:

# 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

}

Sonraki adımlar

Bulut Benimseme Çerçevesi Enterprise ölçeği için Terraform modülü, kurumsal ölçekli giriş bölgelerinizi oluşturmak için hızlandırılmış bir yol sağlar. Ayrıca, her giriş bölgesinin yapılandırmasını yönetmek için basitleştirilmiş bir yaklaşım sürdürürken dağıtımınızı genişletme ve özelleştirme esnekliği de sağlar.

Daha fazla bilgi edinmek için Terraform Kayıt Defteri'nde modülü gözden geçirin ve GitHub'da modül belgeleri . Belgelerde, dağıtımınızı özelleştirme hakkında daha fazla örnek ve öğretici bulabilirsiniz.

HashiCorp Learn aracılığıyla Azure giriş bölgeleri Terraform modülünü dağıtın. Buradan modülün bazı bölümlerinin nasıl çalıştığını da keşfedebilirsiniz.