Aracılığıyla paylaş


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 çabada yardımcı olabilir. Müşterilerin ve iş ortaklarının giriş bölgelerini dağıtmak için sıklıkla kullandığı araçlardan biri, HashiCorp tarafından kullanılan Terraform 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ü, Terraform kullanarak Azure giriş bölgelerini büyük ölçekte yönetmek için ihtiyacınız olan platform kaynaklarının hızlı bir şekilde uygulanmasını sağlar. Modül, bağlantı ve yönetim aboneliklerindeki yönetim grubu hiyerarşisi, ilkeleri 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 HashiCorp Learn'de Terraform Yükleme öğreticisine bakın.

Terraform sağlayıcısını ayarlama ve Azure ile kimlik doğrulaması yapma hakkında bilgi için Terraform web sitesindeki AzureRM sağlayıcısı kılavuzlarına bakın. Sağlayıcıyı birden çok abonelik arasında dağıtılacak şekilde ayarlamayı öğrenmek için Sağlayıcı Yapılandırması wiki sayfasına bakın.

Standart modülleri kullanmanın önemi

Bileşenlerin yeniden kullanılması, kod olarak altyapının temel bir ilkesidir. Modüller, ortamlar içinde ve ortamlar arasında kaynak dağıtımında standartları ve tutarlılığı tanımlamaya yönelik araçlardır.

Azure giriş bölgeleri Terraform modülü resmi Terraform Kayıt Defteri'nde yayımlanır ve HashiCorp tarafından doğrulanır.

Terraform Kayıt Defteri'nden modülün dağıtılması 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 ç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 ilgili ilke atamaları aracılığıyla ilke uyumluluğu güvencesi.
    • 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ındaki tümleştirme.

İpucu

Şablon kitaplığı, Azure/Enterprise-Scale GitHub deposundan program aracılığıyla güncelleştirilir. En son arketip 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ı
Çekirdek kaynaklar Kaynak kuruluşu
Güvenlik
İdaresi
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, uygun ölçekte çalışırken Azure platformunda tutarlılık oluşturmayı ve uygulamayı kolaylaştırır.

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

Azure giriş bölgesi kavramsal mimarisinin diyagramı.

Modül bloğundaki Sağlayıcı Yapılandırması'nı kullanarak bu kaynakları yetenek gereği birden çok abonelikte dağıtabilirsiniz.

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

Çekirdek kaynaklar

Bu modülün temel özelliği, merkezi kaynak kuruluşuna odaklanarak Azure giriş bölgeleri için kavramsal mimarinin temellerini dağıtır.

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 etkindir), 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 kaynaklar oluşturmasını bekleyebilirsiniz.

İpucu

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

Yönetim kaynakları

Modül, Sağlayıcı Yapılandırması wiki sayfasında açıklandığı gibi Azure giriş bölgeleri için kavramsal mimariden yönetim ve izleme kaynaklarının belirtilen aboneliğe dağıtılması için bir seçenek sağlar. 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 Yönetim Kaynaklarını Dağıtma wiki sayfasına bakın.

Bağlantı kaynakları

Modül, Azure giriş bölgeleri için kavramsal mimariden geçerli abonelik bağlamı içine ağ topolojisi ve bağlantı kaynaklarının dağıtımını etkinleştirme seçeneği sağlar. 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ğ'lere bağlayabilir ve merkezi genel ve özel DNS bölgelerini yönetebilir.

Not

Şu anda Azure Giriş Bölgelerinde DDoS IP Koruması önermiyoruz ve belirli durumlarda bu seçeneği kullanmanızı öneririz. 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 nasıl hedeflediğiyle ilgili sınırlamalardan kaynaklanır.

Geleneksel bir Azure ağ topolojisini (merkez-uç) temel alan kaynakları 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 Bağlantı Kaynaklarını Dağıtma 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 hub 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 Hub 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ına bakın.

DDoS Koruması planı

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

Not

Platform sınırlamaları nedeniyle DDoS Koruması planları yalnızca geleneksel sanal ağlar için etkinleştirilebilir. Virtual Hub 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ğin etkinleştirilmesini 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 isteğe bağlı olarak Özel Uç Noktaları desteklemek ve bunları merkez ve/veya uç Sanal Ağ bağlamak için Ö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, kimlik ve erişim yönetimi giriş bölgesiyle ilgili ilkeleri yapılandırma seçeneği sağlar. 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 Kimlik Kaynaklarını Dağıtma wiki sayfasına bakın.

Başlarken

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

Kullanmaya başlamayı kolaylaştırmak için modül Terraform Kayıt Defteri'nde yayımlanmıştır. Bu makalenin devamında yer alan basit örnekte gösterildiği gibi doğrudan kodunuzun içinde başvurabilirsiniz. çalıştırılırsa terraform init modül ve tüm bağımlılıklar otomatik olarak indirilir.

Terraform Kayıt Defteri'ndeki Bağımlılıklar sekmesinde en son modül ve sağlayıcı bağımlılıklarını görüntüleyebilirsiniz.

Ö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, dağıtımınızı yeniden çalıştırarak genellikle 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şiklikler 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 sağlayacaktı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ı da dahil olmak üzere modülün yönettiği tüm kaynakların tam yeniden dağıtımına başlar.

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önetmeye yönelik 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 belgelerini inceleyin. 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ğıtmayı öğrenin. Buradan modülün bazı bölümlerinin nasıl çalıştığını da keşfedebilirsiniz.