Microsoft. Сетевой бастионХосты 2025-01-01

Определение ресурсов Bicep

Тип ресурса бастионHosts можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.Network/bastionHosts, добавьте следующий Bicep в шаблон.

resource symbolicname 'Microsoft.Network/bastionHosts@2025-01-01' = {
  location: 'string'
  name: 'string'
  properties: {
    disableCopyPaste: bool
    dnsName: 'string'
    enableFileCopy: bool
    enableIpConnect: bool
    enableKerberos: bool
    enablePrivateOnlyBastion: bool
    enableSessionRecording: bool
    enableShareableLink: bool
    enableTunneling: bool
    ipConfigurations: [
      {
        id: 'string'
        name: 'string'
        properties: {
          privateIPAllocationMethod: 'string'
          publicIPAddress: {
            id: 'string'
          }
          subnet: {
            id: 'string'
          }
        }
      }
    ]
    networkAcls: {
      ipRules: [
        {
          addressPrefix: 'string'
        }
      ]
    }
    scaleUnits: int
    virtualNetwork: {
      id: 'string'
    }
  }
  sku: {
    name: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
  zones: [
    'string'
  ]
}

Значения свойств

Microsoft.Network/bastionHosts

Имя Description Ценность
location Расположение ресурса. струна
имя имя ресурса. строка (обязательно)
properties Представляет ресурс узла бастиона. БастионHostPropertiesFormat
sku SKU этого бастиона Узла. Sku
tags Теги ресурсов Словарь имен и значений тегов. См. теги в шаблонах
зоны Список зон доступности, обозначающих, откуда должен поступать ресурс. строка[]

БастионHostIPConfiguration

Имя Description Ценность
id Идентификатор ресурса. струна
имя Имя ресурса, уникального в группе ресурсов. Это имя можно использовать для доступа к ресурсу. струна
properties Представляет ip-конфигурацию, связанную с ресурсом. БастионHostIPConfigurationPropertiesFormat

БастионHostIPConfigurationPropertiesFormat

Имя Description Ценность
privateIPAllocationMethod Метод выделения частных IP-адресов. 'Dynamic'
"Статический"
publicIPАдрессест Ссылка на ресурс PublicIP. Null для частного бастиона Подресурс
subnet Ссылка на ресурс подсети. subResource (обязательно)

БастионHostPropertiesFormat

Имя Description Ценность
disableCopyPaste Включение и отключение функции копирования и вставки ресурса узла Бастиона. bool
dnsName Полное доменное имя конечной точки, на которой доступен узел бастиона. струна
enableFileCopy Функция включения и отключения копирования файлов ресурса узла Бастиона. bool
enableIpConnect Функция включения и отключения IP-подключения ресурса узла Бастиона. bool
enableKerberos Включение и отключение функции Kerberos ресурса узла Бастиона. bool
enablePrivateOnlyBastion Включение и отключение функции "Только приватный" ресурса узла Бастиона. bool
enableSessionRecording Функция включения и отключения записи сеансов ресурса узла Бастиона. bool
enableShareableLink Включение и отключение ссылки на общий доступ ресурса узла Бастиона. bool
enableТуннелирование Функция включения и отключения туннелирования ресурса узла Бастиона. bool
ipConfigurations IP-конфигурация ресурса узла Бастиона. БастионHostIPConfiguration[]
networkAcls БастионHostPropertiesFormatNetworkAcls
scaleUnits Единицы масштабирования для ресурса узла Бастиона. int

Constraints:
Минимальное значение = 2
Максимальное значение = 50
virtualNetwork Ссылка на существующую виртуальную сеть, необходимую только для узла Бастиона разработчика. Подресурс

БастионHostPropertiesFormatNetworkAcls

Имя Description Ценность
ipRules Задает правила ACL IP-адресов для узла бастиона разработчика. IPRule[]

IPRule

Имя Description Ценность
addressПрефикс Задает диапазон IP-адресов или IP-адресов в формате CIDR. Разрешен только IPV4-адрес. струна

ResourceTags

Имя Description Ценность

Sku

Имя Description Ценность
имя Имя sku этого узла Бастиона. 'Basic'
'Разработчик'
"Премиум"
'Standard'

Подресурс

Имя Description Ценность
id Идентификатор ресурса. струна

Примеры использования

Примеры Bicep

Простой пример развертывания Bastion Host.

param resourceName string = 'acctest0001'
param location string = 'westeurope'

resource bastionHost 'Microsoft.Network/bastionHosts@2022-07-01' = {
  name: resourceName
  location: location
  sku: {
    name: 'Basic'
  }
  properties: {
    disableCopyPaste: false
    enableFileCopy: false
    enableIpConnect: false
    enableShareableLink: false
    enableTunneling: false
    ipConfigurations: [
      {
        name: 'ip-configuration'
        properties: {
          publicIPAddress: {
            id: publicIPAddress.id
          }
          subnet: {
            id: subnet.id
          }
        }
      }
    ]
    scaleUnits: 2
  }
}

resource publicIPAddress 'Microsoft.Network/publicIPAddresses@2022-07-01' = {
  name: resourceName
  location: location
  sku: {
    name: 'Standard'
    tier: 'Regional'
  }
  properties: {
    ddosSettings: {
      protectionMode: 'VirtualNetworkInherited'
    }
    idleTimeoutInMinutes: 4
    publicIPAddressVersion: 'IPv4'
    publicIPAllocationMethod: 'Static'
  }
}

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-07-01' = {
  name: resourceName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '192.168.1.0/24'
      ]
    }
    dhcpOptions: {
      dnsServers: []
    }
    subnets: []
  }
}

resource subnet 'Microsoft.Network/virtualNetworks/subnets@2022-07-01' = {
  name: 'AzureBastionSubnet'
  parent: virtualNetwork
  properties: {
    addressPrefix: '192.168.1.224/27'
    delegations: []
    privateEndpointNetworkPolicies: 'Enabled'
    privateLinkServiceNetworkPolicies: 'Enabled'
    serviceEndpointPolicies: []
    serviceEndpoints: []
  }
}

Проверенные модули Azure

Следующие проверенные модули Azure можно использовать для развертывания этого типа ресурсов.

Модуль Description
узла бастиона Модуль ресурсов AVM для узла Бастиона

Примеры быстрого запуска Azure

Следующие шаблоны быстрого запуска Azure содержат примеры Bicep для развертывания этого типа ресурса.

Файл Bicep Description
кластер AKS с шлюзом NAT и шлюзом приложений В этом примере показано, как развернуть кластер AKS с шлюзом NAT для исходящих подключений и шлюза приложений для входящих подключений.
кластер AKS с контроллером входящего трафика шлюза приложений В этом примере показано, как развернуть кластер AKS с помощью шлюза приложений, контроллера входящего трафика шлюза приложений, реестра контейнеров Azure, Log Analytics и Key Vault
Бастион Azure как услуга Этот шаблон подготавливает Бастион Azure в виртуальной сети
Бастион Azure как услуга с NSG Этот шаблон подготавливает Бастион Azure в виртуальной сети
сквозной настройке машинного обучения Azure В этом наборе шаблонов Bicep показано, как настроить сквозную настройку Машинного обучения Azure. Эта эталонная реализация включает рабочую область, вычислительный кластер, вычислительный экземпляр и присоединенный частный кластер AKS.
сквозной настройке машинного обучения Azure (устаревшая версия) В этом наборе шаблонов Bicep показано, как настроить сквозную настройку Машинного обучения Azure. Эта эталонная реализация включает рабочую область, вычислительный кластер, вычислительный экземпляр и присоединенный частный кластер AKS.
Создание подсистемы балансировки нагрузки в нескольких регионах Этот шаблон создает подсистему балансировки нагрузки между регионами с серверным пулом, содержащим два региональных подсистемы балансировки нагрузки. В настоящее время подсистема балансировки нагрузки между регионами доступна в ограниченных регионах. Региональные подсистемы балансировки нагрузки, лежащие в основе подсистемы балансировки нагрузки между регионами, могут находиться в любом регионе.
создание частного кластера AKS В этом примере показано, как создать частный кластер AKS в виртуальной сети вместе с виртуальной машиной jumpbox.
Создание стандартной внутренней подсистемы балансировки нагрузки Этот шаблон создает стандартный внутренний балансировщик нагрузки Azure с портом балансировки нагрузки правил 80
создание стандартной подсистемы балансировки нагрузки Этот шаблон создает подсистему балансировки нагрузки, правила балансировки нагрузки и три виртуальных машины для внутреннего пула с каждой виртуальной машиной в избыточной зоне.
Развертывание узла Бастиона в концентратора виртуальной сети Этот шаблон создает две виртуальные сети с пирингами, узел Бастиона в виртуальной сети Концентратора и виртуальную машину Linux в периферийной виртуальной сети.
Развертывание Secure AI Foundry с помощью управляемой виртуальной сети Этот шаблон создает безопасную среду Azure AI Foundry с надежными ограничениями безопасности сети и удостоверений.
Hub-Spoke Сеть с NAT Gateway и Брандмауэр Azure Развернуть топологию сети с хаб-спицами с шлюзом NAT, файрволом Azure и виртуальной машиной
общедоступная подсистема балансировки нагрузки, привязанная к шлюза Этот шаблон позволяет развернуть общедоступную подсистему балансировки нагрузки уровня "Стандартный", привязанную к подсистеме балансировки нагрузки шлюза. Трафик, входящий из Интернета, направляется в подсистему балансировки нагрузки шлюза с виртуальными машинами Linux (NVAs) в серверном пуле.
среда тестирования для брандмауэра Azure Premium Этот шаблон создает политику брандмауэра Azure premium и брандмауэра с такими функциями, как обнаружение вторжений (IDPS), проверка TLS и фильтрация веб-категорий
Использование брандмауэра Azure в качестве DNS-прокси в топологии концентратора и периферийной топологии В этом примере показано, как развернуть звездообразную топологию в Azure с помощью брандмауэра Azure. Виртуальная сеть концентратора выступает в качестве центральной точки подключения ко многим периферийным виртуальным сетям, подключенным к центральной виртуальной сети через пиринг между виртуальными сетями.
NAT виртуальной сети с виртуальной машины Развертывание шлюза NAT и виртуальной машины

Определение ресурса шаблона ARM

Тип ресурса бастионHosts можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.Network/bastionHosts, добавьте следующий код JSON в шаблон.

{
  "type": "Microsoft.Network/bastionHosts",
  "apiVersion": "2025-01-01",
  "name": "string",
  "location": "string",
  "properties": {
    "disableCopyPaste": "bool",
    "dnsName": "string",
    "enableFileCopy": "bool",
    "enableIpConnect": "bool",
    "enableKerberos": "bool",
    "enablePrivateOnlyBastion": "bool",
    "enableSessionRecording": "bool",
    "enableShareableLink": "bool",
    "enableTunneling": "bool",
    "ipConfigurations": [
      {
        "id": "string",
        "name": "string",
        "properties": {
          "privateIPAllocationMethod": "string",
          "publicIPAddress": {
            "id": "string"
          },
          "subnet": {
            "id": "string"
          }
        }
      }
    ],
    "networkAcls": {
      "ipRules": [
        {
          "addressPrefix": "string"
        }
      ]
    },
    "scaleUnits": "int",
    "virtualNetwork": {
      "id": "string"
    }
  },
  "sku": {
    "name": "string"
  },
  "tags": {
    "{customized property}": "string"
  },
  "zones": [ "string" ]
}

Значения свойств

Microsoft.Network/bastionHosts

Имя Description Ценность
apiVersion Версия API '2025-01-01'
location Расположение ресурса. струна
имя имя ресурса. строка (обязательно)
properties Представляет ресурс узла бастиона. БастионHostPropertiesFormat
sku SKU этого бастиона Узла. Sku
tags Теги ресурсов Словарь имен и значений тегов. См. теги в шаблонах
type Тип ресурса "Microsoft.Network/бастионHosts"
зоны Список зон доступности, обозначающих, откуда должен поступать ресурс. строка[]

БастионHostIPConfiguration

Имя Description Ценность
id Идентификатор ресурса. струна
имя Имя ресурса, уникального в группе ресурсов. Это имя можно использовать для доступа к ресурсу. струна
properties Представляет ip-конфигурацию, связанную с ресурсом. БастионHostIPConfigurationPropertiesFormat

БастионHostIPConfigurationPropertiesFormat

Имя Description Ценность
privateIPAllocationMethod Метод выделения частных IP-адресов. 'Dynamic'
"Статический"
publicIPАдрессест Ссылка на ресурс PublicIP. Null для частного бастиона Подресурс
subnet Ссылка на ресурс подсети. subResource (обязательно)

БастионHostPropertiesFormat

Имя Description Ценность
disableCopyPaste Включение и отключение функции копирования и вставки ресурса узла Бастиона. bool
dnsName Полное доменное имя конечной точки, на которой доступен узел бастиона. струна
enableFileCopy Функция включения и отключения копирования файлов ресурса узла Бастиона. bool
enableIpConnect Функция включения и отключения IP-подключения ресурса узла Бастиона. bool
enableKerberos Включение и отключение функции Kerberos ресурса узла Бастиона. bool
enablePrivateOnlyBastion Включение и отключение функции "Только приватный" ресурса узла Бастиона. bool
enableSessionRecording Функция включения и отключения записи сеансов ресурса узла Бастиона. bool
enableShareableLink Включение и отключение ссылки на общий доступ ресурса узла Бастиона. bool
enableТуннелирование Функция включения и отключения туннелирования ресурса узла Бастиона. bool
ipConfigurations IP-конфигурация ресурса узла Бастиона. БастионHostIPConfiguration[]
networkAcls БастионHostPropertiesFormatNetworkAcls
scaleUnits Единицы масштабирования для ресурса узла Бастиона. int

Constraints:
Минимальное значение = 2
Максимальное значение = 50
virtualNetwork Ссылка на существующую виртуальную сеть, необходимую только для узла Бастиона разработчика. Подресурс

БастионHostPropertiesFormatNetworkAcls

Имя Description Ценность
ipRules Задает правила ACL IP-адресов для узла бастиона разработчика. IPRule[]

IPRule

Имя Description Ценность
addressПрефикс Задает диапазон IP-адресов или IP-адресов в формате CIDR. Разрешен только IPV4-адрес. струна

ResourceTags

Имя Description Ценность

Sku

Имя Description Ценность
имя Имя sku этого узла Бастиона. 'Basic'
'Разработчик'
"Премиум"
'Standard'

Подресурс

Имя Description Ценность
id Идентификатор ресурса. струна

Примеры использования

Шаблоны быстрого запуска Azure

Следующие шаблоны быстрого запуска Azure развернуть этот тип ресурса.

Template Description
кластер AKS с шлюзом NAT и шлюзом приложений

Развертывание в Azure
В этом примере показано, как развернуть кластер AKS с шлюзом NAT для исходящих подключений и шлюза приложений для входящих подключений.
кластер AKS с контроллером входящего трафика шлюза приложений

Развертывание в Azure
В этом примере показано, как развернуть кластер AKS с помощью шлюза приложений, контроллера входящего трафика шлюза приложений, реестра контейнеров Azure, Log Analytics и Key Vault
Бастион Azure как услуга

Развертывание в Azure
Этот шаблон подготавливает Бастион Azure в виртуальной сети
Бастион Azure как услуга с NSG

Развертывание в Azure
Этот шаблон подготавливает Бастион Azure в виртуальной сети
сквозной настройке машинного обучения Azure

Развертывание в Azure
В этом наборе шаблонов Bicep показано, как настроить сквозную настройку Машинного обучения Azure. Эта эталонная реализация включает рабочую область, вычислительный кластер, вычислительный экземпляр и присоединенный частный кластер AKS.
сквозной настройке машинного обучения Azure (устаревшая версия)

Развертывание в Azure
В этом наборе шаблонов Bicep показано, как настроить сквозную настройку Машинного обучения Azure. Эта эталонная реализация включает рабочую область, вычислительный кластер, вычислительный экземпляр и присоединенный частный кластер AKS.
Создание подсистемы балансировки нагрузки в нескольких регионах

Развертывание в Azure
Этот шаблон создает подсистему балансировки нагрузки между регионами с серверным пулом, содержащим два региональных подсистемы балансировки нагрузки. В настоящее время подсистема балансировки нагрузки между регионами доступна в ограниченных регионах. Региональные подсистемы балансировки нагрузки, лежащие в основе подсистемы балансировки нагрузки между регионами, могут находиться в любом регионе.
создание частного кластера AKS

Развертывание в Azure
В этом примере показано, как создать частный кластер AKS в виртуальной сети вместе с виртуальной машиной jumpbox.
создание частного кластера AKS с общедоступной зоны DNS

Развертывание в Azure
В этом примере показано, как развернуть частный кластер AKS с общедоступной зоной DNS.
Создание стандартной внутренней подсистемы балансировки нагрузки

Развертывание в Azure
Этот шаблон создает стандартный внутренний балансировщик нагрузки Azure с портом балансировки нагрузки правил 80
создание стандартной подсистемы балансировки нагрузки

Развертывание в Azure
Этот шаблон создает подсистему балансировки нагрузки, правила балансировки нагрузки и три виртуальных машины для внутреннего пула с каждой виртуальной машиной в избыточной зоне.
Развертывание узла Бастиона в концентратора виртуальной сети

Развертывание в Azure
Этот шаблон создает две виртуальные сети с пирингами, узел Бастиона в виртуальной сети Концентратора и виртуальную машину Linux в периферийной виртуальной сети.
Развертывание vSensors autotrace autoscaling

Развертывание в Azure
Этот шаблон позволяет развертывать автоматическое развертывание vSensors Darktrace vSensors автоматически.
Развертывание Secure AI Foundry с помощью управляемой виртуальной сети

Развертывание в Azure
Этот шаблон создает безопасную среду Azure AI Foundry с надежными ограничениями безопасности сети и удостоверений.
пример параметризованного развертывания с связанными шаблонами

Развертывание в Azure
В этом примере шаблона будет развернуто несколько уровней ресурсов в группе ресурсов Azure. Каждый уровень имеет настраиваемые элементы, чтобы показать, как можно предоставлять параметризацию для конечного пользователя.
Hub-Spoke Сеть с NAT Gateway и Брандмауэр Azure

Развертывание в Azure
Развернуть топологию сети с хаб-спицами с шлюзом NAT, файрволом Azure и виртуальной машиной
общедоступная подсистема балансировки нагрузки, привязанная к шлюза

Развертывание в Azure
Этот шаблон позволяет развернуть общедоступную подсистему балансировки нагрузки уровня "Стандартный", привязанную к подсистеме балансировки нагрузки шлюза. Трафик, входящий из Интернета, направляется в подсистему балансировки нагрузки шлюза с виртуальными машинами Linux (NVAs) в серверном пуле.
Подсистема балансировки нагрузки уровня "Стандартный" с серверным пулом по IP-адресам

Развертывание в Azure
Этот шаблон используется для демонстрации того, как шаблоны ARM можно использовать для настройки внутреннего пула подсистемы балансировки нагрузки по IP-адресу, как описано в документе управления серверным пулом.
среда тестирования для брандмауэра Azure Premium

Развертывание в Azure
Этот шаблон создает политику брандмауэра Azure premium и брандмауэра с такими функциями, как обнаружение вторжений (IDPS), проверка TLS и фильтрация веб-категорий
Использование брандмауэра Azure в качестве DNS-прокси в топологии концентратора и периферийной топологии

Развертывание в Azure
В этом примере показано, как развернуть звездообразную топологию в Azure с помощью брандмауэра Azure. Виртуальная сеть концентратора выступает в качестве центральной точки подключения ко многим периферийным виртуальным сетям, подключенным к центральной виртуальной сети через пиринг между виртуальными сетями.
NAT виртуальной сети с виртуальной машины

Развертывание в Azure
Развертывание шлюза NAT и виртуальной машины

Определение ресурса Terraform (поставщик AzAPI)

Тип ресурса бастионHosts можно развернуть с помощью операций, предназначенных для следующих операций:

  • Группы ресурсов

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.Network/bastionHosts, добавьте следующий terraform в шаблон.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/bastionHosts@2025-01-01"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      disableCopyPaste = bool
      dnsName = "string"
      enableFileCopy = bool
      enableIpConnect = bool
      enableKerberos = bool
      enablePrivateOnlyBastion = bool
      enableSessionRecording = bool
      enableShareableLink = bool
      enableTunneling = bool
      ipConfigurations = [
        {
          id = "string"
          name = "string"
          properties = {
            privateIPAllocationMethod = "string"
            publicIPAddress = {
              id = "string"
            }
            subnet = {
              id = "string"
            }
          }
        }
      ]
      networkAcls = {
        ipRules = [
          {
            addressPrefix = "string"
          }
        ]
      }
      scaleUnits = int
      virtualNetwork = {
        id = "string"
      }
    }
    sku = {
      name = "string"
    }
    zones = [
      "string"
    ]
  }
}

Значения свойств

Microsoft.Network/bastionHosts

Имя Description Ценность
location Расположение ресурса. струна
имя имя ресурса. строка (обязательно)
properties Представляет ресурс узла бастиона. БастионHostPropertiesFormat
sku SKU этого бастиона Узла. Sku
tags Теги ресурсов Словарь имен и значений тегов.
type Тип ресурса "Microsoft.Network/bastionHosts@2025-01-01"
зоны Список зон доступности, обозначающих, откуда должен поступать ресурс. строка[]

БастионHostIPConfiguration

Имя Description Ценность
id Идентификатор ресурса. струна
имя Имя ресурса, уникального в группе ресурсов. Это имя можно использовать для доступа к ресурсу. струна
properties Представляет ip-конфигурацию, связанную с ресурсом. БастионHostIPConfigurationPropertiesFormat

БастионHostIPConfigurationPropertiesFormat

Имя Description Ценность
privateIPAllocationMethod Метод выделения частных IP-адресов. 'Dynamic'
"Статический"
publicIPАдрессест Ссылка на ресурс PublicIP. Null для частного бастиона Подресурс
subnet Ссылка на ресурс подсети. subResource (обязательно)

БастионHostPropertiesFormat

Имя Description Ценность
disableCopyPaste Включение и отключение функции копирования и вставки ресурса узла Бастиона. bool
dnsName Полное доменное имя конечной точки, на которой доступен узел бастиона. струна
enableFileCopy Функция включения и отключения копирования файлов ресурса узла Бастиона. bool
enableIpConnect Функция включения и отключения IP-подключения ресурса узла Бастиона. bool
enableKerberos Включение и отключение функции Kerberos ресурса узла Бастиона. bool
enablePrivateOnlyBastion Включение и отключение функции "Только приватный" ресурса узла Бастиона. bool
enableSessionRecording Функция включения и отключения записи сеансов ресурса узла Бастиона. bool
enableShareableLink Включение и отключение ссылки на общий доступ ресурса узла Бастиона. bool
enableТуннелирование Функция включения и отключения туннелирования ресурса узла Бастиона. bool
ipConfigurations IP-конфигурация ресурса узла Бастиона. БастионHostIPConfiguration[]
networkAcls БастионHostPropertiesFormatNetworkAcls
scaleUnits Единицы масштабирования для ресурса узла Бастиона. int

Constraints:
Минимальное значение = 2
Максимальное значение = 50
virtualNetwork Ссылка на существующую виртуальную сеть, необходимую только для узла Бастиона разработчика. Подресурс

БастионHostPropertiesFormatNetworkAcls

Имя Description Ценность
ipRules Задает правила ACL IP-адресов для узла бастиона разработчика. IPRule[]

IPRule

Имя Description Ценность
addressПрефикс Задает диапазон IP-адресов или IP-адресов в формате CIDR. Разрешен только IPV4-адрес. струна

ResourceTags

Имя Description Ценность

Sku

Имя Description Ценность
имя Имя sku этого узла Бастиона. 'Basic'
'Разработчик'
"Премиум"
'Standard'

Подресурс

Имя Description Ценность
id Идентификатор ресурса. струна

Примеры использования

Примеры Terraform

Простой пример развертывания Bastion Host.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "virtualNetwork" {
  type      = "Microsoft.Network/virtualNetworks@2022-07-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      addressSpace = {
        addressPrefixes = [
          "192.168.1.0/24",
        ]
      }
      dhcpOptions = {
        dnsServers = [
        ]
      }
      subnets = [
      ]
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
  lifecycle {
    ignore_changes = [body.properties.subnets]
  }
}

resource "azapi_resource" "publicIPAddress" {
  type      = "Microsoft.Network/publicIPAddresses@2022-07-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      ddosSettings = {
        protectionMode = "VirtualNetworkInherited"
      }
      idleTimeoutInMinutes     = 4
      publicIPAddressVersion   = "IPv4"
      publicIPAllocationMethod = "Static"
    }
    sku = {
      name = "Standard"
      tier = "Regional"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "subnet" {
  type      = "Microsoft.Network/virtualNetworks/subnets@2022-07-01"
  parent_id = azapi_resource.virtualNetwork.id
  name      = "AzureBastionSubnet"
  body = {
    properties = {
      addressPrefix = "192.168.1.224/27"
      delegations = [
      ]
      privateEndpointNetworkPolicies    = "Enabled"
      privateLinkServiceNetworkPolicies = "Enabled"
      serviceEndpointPolicies = [
      ]
      serviceEndpoints = [
      ]
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "bastionHost" {
  type      = "Microsoft.Network/bastionHosts@2022-07-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      disableCopyPaste    = false
      enableFileCopy      = false
      enableIpConnect     = false
      enableShareableLink = false
      enableTunneling     = false
      ipConfigurations = [
        {
          name = "ip-configuration"
          properties = {
            publicIPAddress = {
              id = azapi_resource.publicIPAddress.id
            }
            subnet = {
              id = azapi_resource.subnet.id
            }
          }
        },
      ]
      scaleUnits = 2
    }
    sku = {
      name = "Basic"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

Проверенные модули Azure

Следующие проверенные модули Azure можно использовать для развертывания этого типа ресурсов.

Модуль Description
узла бастиона Модуль ресурсов AVM для узла Бастиона