Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, aşağıdaki Terraform yapılandırmasıyla iki web uygulamasını (ön uç ve arka uç) güvenli bir şekilde bağlamak için Özel Uç Nokta ve bölgesel sanal ağ tümleştirmesinin örnek kullanımı gösterilmektedir:
- Sanal Ağ Yapılandırması
- Tümleştirme için ilk alt ağı oluşturma
- Özel uç nokta için ikinci alt ağı oluşturun ve özel uç noktalar için alt ağ ilkelerini devre dışı bırakın (küme
private_endpoint_network_policies_enabled = false) - Özel Uç Nokta özelliği için gereken Temel, Standart, PremiumV2, PremiumV3, IsolatedV2, İşlevler Premium (bazen Elastik Premium planı olarak da adlandırılır) türünde bir App Service planı dağıtın
- Özel DNS bölgesini kullanmak için belirli uygulama ayarlarıyla ön uç web uygulamasını oluşturun. Daha fazla bilgi için bkz. Azure DNS özel bölgeleri.
- Ön uç web uygulamasını tümleştirme alt ağına bağlama
- Arka uç web uygulamasını oluşturma
- Web uygulamaları için özel bağlantı bölgesinin adıyla DNS özel bölgesini oluşturma (
privatelink.azurewebsites.net) - Bu bölgeyi sanal ağa bağla
- Uç nokta alt ağında arka uç web uygulaması için özel uç nokta oluşturma ve DNS adlarını (site ve SCM) önceden oluşturulmuş DNS özel bölgesine kaydetme
Azure'da terraform kullanma
Terraform'un Azure ile nasıl kullanılacağını öğrenmek için Azure belgelerine göz atın.
Terraform dosyasının tamamı
Bu dosyayı kullanmak için unique-frontend-app-name ve unique-backend-app-name< yer tutucularını> değiştirin (uygulama adı, dünya çapında benzersiz bir DNS adı oluşturmak için kullanılır).<>
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 3.0"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "rg" {
name = "appservice-rg"
location = "francecentral"
}
resource "azurerm_virtual_network" "vnet" {
name = "vnet"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
address_space = ["10.0.0.0/16"]
}
resource "azurerm_subnet" "integrationsubnet" {
name = "integrationsubnet"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet.name
address_prefixes = ["10.0.1.0/24"]
delegation {
name = "delegation"
service_delegation {
name = "Microsoft.Web/serverFarms"
}
}
}
resource "azurerm_subnet" "endpointsubnet" {
name = "endpointsubnet"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet.name
address_prefixes = ["10.0.2.0/24"]
private_endpoint_network_policies_enabled = false
}
resource "azurerm_service_plan" "appserviceplan" {
name = "appserviceplan"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
os_type = "Windows"
sku_name = "P1v2"
}
resource "azurerm_windows_web_app" "frontwebapp" {
name = "<unique-frontend-app-name>"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
service_plan_id = azurerm_service_plan.appserviceplan.id
site_config {}
app_settings = {
"WEBSITE_DNS_SERVER" = "168.63.129.16"
"WEBSITE_VNET_ROUTE_ALL" = "1"
}
}
resource "azurerm_app_service_virtual_network_swift_connection" "vnetintegrationconnection" {
app_service_id = azurerm_windows_web_app.frontwebapp.id
subnet_id = azurerm_subnet.integrationsubnet.id
}
resource "azurerm_windows_web_app" "backwebapp" {
name = "<unique-backend-app-name>"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
service_plan_id = azurerm_service_plan.appserviceplan.id
site_config {}
}
resource "azurerm_private_dns_zone" "dnsprivatezone" {
name = "privatelink.azurewebsites.net"
resource_group_name = azurerm_resource_group.rg.name
}
resource "azurerm_private_dns_zone_virtual_network_link" "dnszonelink" {
name = "dnszonelink"
resource_group_name = azurerm_resource_group.rg.name
private_dns_zone_name = azurerm_private_dns_zone.dnsprivatezone.name
virtual_network_id = azurerm_virtual_network.vnet.id
}
resource "azurerm_private_endpoint" "privateendpoint" {
name = "backwebappprivateendpoint"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
subnet_id = azurerm_subnet.endpointsubnet.id
private_dns_zone_group {
name = "privatednszonegroup"
private_dns_zone_ids = [azurerm_private_dns_zone.dnsprivatezone.id]
}
private_service_connection {
name = "privateendpointconnection"
private_connection_resource_id = azurerm_windows_web_app.backwebapp.id
subresource_names = ["sites"]
is_manual_connection = false
}
}
Sonraki Adımlar
Azure'da Terraform kullanma hakkında daha fazla bilgi edinin