Pelajari cara membuat Azure Virtual Network (VNet) menggunakan portal Microsoft Azure, Azure CLI, Azure PowerShell, templat Azure Resource Manager (ARM), templat Bicep, dan Terraform. Dua komputer virtual dan host Azure Bastion disebarkan untuk menguji konektivitas antara komputer virtual di jaringan virtual yang sama. Host Azure Bastion memfasilitasi konektivitas RDP dan SSH yang aman dan mulus ke komputer virtual langsung di portal Microsoft Azure melalui SSL.
Jaringan virtual adalah blok penyusun dasar untuk jaringan privat di Azure. Azure Virtual Network memungkinkan sumber daya Azure seperti komputer virtual untuk berkomunikasi satu sama lain dengan aman dan internet.
Membuat grup sumber daya
Masuk ke portal Azure dengan akun Azure Anda.
Di kotak pencarian di bagian atas portal, masukkan grup Sumber daya. Pilih Grup sumber daya dalam hasil pencarian.
Pilih + Buat.
Di tab Dasar-dasarbuat grup sumber daya, masukkan, atau pilih informasi berikut ini:
| Pengaturan |
Nilai |
| Langganan |
Pilih langganan Anda. |
| Grup sumber daya |
Masukkan test-rg. |
| Wilayah |
Pilih East US 2. |
Pilih Tinjau + kreasikan.
Pilih Buat.
Buat jaringan virtual
Di kotak pencarian di bagian atas portal, masukkan Virtual network. Pilih Jaringan virtual dalam hasil pencarian.
Pilih + Buat.
Pada tab Dasar dariBuat jaringan virtual, masukkan, atau pilih informasi berikut:
| Pengaturan |
Nilai |
|
Detail proyek |
|
| Langganan |
Pilih langganan Anda. |
| Grup sumber daya |
Pilih test-rg. |
|
Rincian contoh |
|
| Nama |
Masukkan vnet-1. |
| Wilayah |
Pilih East US 2. |
Pilih Berikutnya untuk melanjutkan ke tab Keamanan.
Pilih Next untuk melanjutkan ke tab IP Addresses.
Dalam kotak ruang alamat di Subnets, pilih subnet default.
Di Edit subnet, masukkan, atau pilih informasi berikut:
| Pengaturan |
Nilai |
|
Rincian Subnet |
|
| Templat Subnet |
Biarkan Default tetap default. |
| Nama |
Masukkan subnet-1. |
| Alamat pengiriman awal |
Biarkan nilai default tetap 10.0.0.0. |
| Ukuran subnet |
Biarkan nilai default tetap /24 (256 alamat). |
Pilih Simpan.
Pilih Review + create di bagian bawah layar, dan ketika validasi berhasil, pilih Create.
Sebarkan Azure Bastion
Azure Bastion menggunakan browser Anda untuk terhubung ke komputer virtual (VM) di jaringan virtual Anda melalui secure shell (SSH) atau protokol desktop jarak jauh (RDP) dengan menggunakan alamat IP privat mereka. Komputer virtual tidak memerlukan alamat IP publik, perangkat lunak klien, atau konfigurasi khusus. Untuk informasi selengkapnya tentang Azure Bastion, lihat Azure Bastion.
Nota
Harga per jam mulai berlaku sejak Bastion diluncurkan, tanpa mempedulikan penggunaan data keluar. Untuk informasi selengkapnya, lihat Harga dan SKU. Jika Anda menyebarkan Bastion sebagai bagian dari tutorial atau pengujian, kami sarankan Anda menghapus sumber daya ini setelah Selesai menggunakannya.
Di kotak pencarian di bagian atas portal, masukkan Bastion. Pilih Bastions di hasil pencarian.
Pilih + Buat.
Di tab Dasar-Dasar dan Buat Bastion, masukkan atau pilih informasi berikut ini:
| Pengaturan |
Nilai |
|
Detail proyek |
|
| Langganan |
Pilih langganan Anda. |
| Grup sumber daya |
Pilih test-rg. |
|
Rincian contoh |
|
| Nama |
Masukkan bastion. |
| Wilayah |
Pilih East US 2. |
| Tier |
Pilih Pengembang. |
|
Mengonfigurasi jaringan virtual |
|
| Jaringan virtual |
Pilih vnet-1. |
Pilih Tinjau + kreasikan.
Pilih Buat.
Membuat komputer virtual
Prosedur berikut membuat dua VM bernama vm-1 dan vm-2 di jaringan virtual:
Di portal, cari dan pilih Mesin virtual.
Di Mesin virtual, pilih + Buat, lalu pilih Mesin virtual Azure.
Di tab Dasar dari Buat mesin virtual, masukkan atau pilih informasi berikut ini:
| Pengaturan |
Nilai |
|
Detail proyek |
|
| Langganan |
Pilih langganan Anda. |
| Grup sumber daya |
Pilih test-rg. |
|
Rincian contoh |
|
| Nama komputer virtual |
Masukkan vm-1. |
| Wilayah |
Pilih East US 2. |
| Opsi ketersediaan |
Pilih Tidak diperlukan redundansi infrastruktur. |
| Jenis keamanan |
Biarkan tetap pada pengaturan awal Standar. |
| Gambar |
Pilih Ubuntu Server 22.04 LTS - x64 Gen2. |
| Arsitektur Mesin virtual |
Biarkan nilai default pada x64. |
| Ukuran |
Pilih ukuran. |
|
Akun administrator |
|
| Jenis autentikasi |
Pilih Kunci publik SSH. |
| Nama pengguna |
Masukkan azureuser. |
| Sumber kunci publik SSH |
Pilih Buat pasangan kunci baru. |
| Nama pasangan kunci |
Masukkan vm-1-key. |
|
Aturan port masuk |
|
| Port masuk publik |
Pilih Tidak ada. |
Pilih tab Jaringan . Masukkan atau pilih informasi berikut:
| Pengaturan |
Nilai |
|
Antarmuka jaringan |
|
| Jaringan virtual |
Pilih vnet-1. |
| Subnet |
Pilih subnet-1 (10.0.0.0/24). |
| IP Publik |
Pilih Tidak ada. |
| kelompok keamanan jaringan NIC |
Pilih Tingkat Lanjut. |
| Mengonfigurasi grup keamanan jaringan |
Pilih Buat baru.
Masukkan nsg-1 untuk nama tersebut.
Biarkan sisanya di default dan pilih OK. |
Biarkan pengaturan lainnya di default dan pilih Tinjau + buat.
Tinjau pengaturan akhir, dan pilih Buat.
Tunggu hingga komputer virtual pertama disebarkan lalu ulangi langkah-langkah sebelumnya untuk membuat komputer virtual kedua dengan pengaturan berikut:
| Pengaturan |
Nilai |
| Nama komputer virtual |
Masukkan vm-2. |
| Sumber kunci publik SSH |
Pilih Buat pasangan kunci baru. |
| Nama pasangan kunci |
Masukkan vm-2-key. |
| Jaringan virtual |
Pilih vnet-1. |
| Subnet |
Pilih subnet-1 (10.0.0.0/24). |
| IP Publik |
Pilih Tidak ada. |
| kelompok keamanan jaringan NIC |
Pilih Tingkat Lanjut. |
| Mengonfigurasi grup keamanan jaringan |
Pilih nsg-1. |
Nota
Komputer virtual di jaringan virtual dengan host Azure Bastion tidak memerlukan alamat IP publik. Bastion menyediakan IP publik, dan VM menggunakan IP privat untuk berkomunikasi dalam jaringan. Anda dapat menghapus IP publik dari VM apa pun di jaringan virtual yang dihosting Bastion. Untuk informasi selengkapnya, lihat Memisahkan alamat IP publik dari Azure VM.
Nota
Azure menyediakan alamat IP akses keluar bawaan untuk VM yang tidak diberi alamat IP publik atau yang terletak dalam kumpulan backend load balancer dasar Azure internal. Mekanisme IP akses keluar default menyediakan alamat IP keluar yang tidak dapat dikonfigurasi.
IP akses keluar default dinonaktifkan saat salah satu peristiwa berikut terjadi:
- Alamat IP publik ditetapkan ke VM.
- VM ditempatkan di kumpulan backend penyeimbang beban standar, dengan atau tanpa aturan outbound.
- Sumber daya Azure NAT Gateway dihubungkan ke subnet VM.
VM yang Anda buat dengan menggunakan kumpulan skala mesin virtual dalam mode orkestrasi fleksibel tidak memiliki akses ke luar secara default.
Untuk informasi selengkapnya tentang koneksi keluar di Azure, lihat Akses keluar default di Azure dan Menggunakan Terjemahan Alamat Jaringan Sumber (SNAT) untuk koneksi keluar.
Membuat grup sumber daya
Gunakan New-AzResourceGroup untuk membuat grup sumber daya untuk menghosting jaringan virtual. Jalankan kode berikut untuk membuat grup sumber daya bernama test-rg di wilayah Azure eastus2 :
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Buat jaringan virtual
Gunakan New-AzVirtualNetwork untuk membuat jaringan virtual bernama vnet-1 dengan awalan alamat IP 10.0.0.0/16 di grup sumber daya test-rg dan lokasi eastus2 :
$vnet = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Azure menyebarkan sumber daya ke subnet dalam jaringan virtual. Gunakan Add-AzVirtualNetworkSubnetConfig untuk membuat konfigurasi subnet bernama subnet-1 dengan awalan alamat 10.0.0.0/24:
$subnet = @{
Name = 'subnet-1'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Kaitkan konfigurasi subnet ke jaringan virtual dengan menggunakan Set-AzVirtualNetwork:
$virtualNetwork | Set-AzVirtualNetwork
Sebarkan Azure Bastion
Azure Bastion menggunakan browser Anda untuk terhubung ke komputer virtual di jaringan virtual Anda melalui Secure Shell (SSH) atau Protokol Desktop Jarak Jauh (RDP) dengan menggunakan alamat IP privat mereka. Komputer virtual tidak memerlukan alamat IP publik, perangkat lunak klien, atau konfigurasi khusus. Untuk informasi selengkapnya tentang Azure Bastion, lihat Apa itu Azure Bastion?.
Harga per jam mulai berlaku sejak Bastion diluncurkan, tanpa mempedulikan penggunaan data keluar. Untuk informasi selengkapnya, lihat Harga dan SKU. Jika Anda menyebarkan Bastion sebagai bagian dari tutorial atau pengujian, kami sarankan Anda menghapus sumber daya ini setelah Selesai menggunakannya.
Konfigurasikan subnet Bastion untuk jaringan virtual Anda. Subnet ini dicadangkan khusus untuk sumber daya Bastion dan harus diberi nama AzureBastionSubnet.
$subnet = @{
Name = 'AzureBastionSubnet'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.1.0/26'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Atur konfigurasi:
$virtualNetwork | Set-AzVirtualNetwork
Buat alamat IP publik untuk Bastion. Host Bastion menggunakan IP publik untuk mengakses SSH dan RDP melalui port 443.
$ip = @{
ResourceGroupName = 'test-rg'
Name = 'public-ip'
Location = 'eastus2'
AllocationMethod = 'Static'
Sku = 'Standard'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip
Gunakan perintah New-AzBastion untuk membuat host Bastion SKU Dasar baru di AzureBastionSubnet:
$bastion = @{
Name = 'bastion'
ResourceGroupName = 'test-rg'
PublicIpAddressRgName = 'test-rg'
PublicIpAddressName = 'public-ip'
VirtualNetworkRgName = 'test-rg'
VirtualNetworkName = 'vnet-1'
Sku = 'Basic'
}
New-AzBastion @bastion
Dibutuhkan sekitar 10 menit untuk menyebarkan sumber daya Bastion. Anda dapat membuat komputer virtual di bagian berikutnya saat Bastion disebarkan ke jaringan virtual Anda.
Membuat komputer virtual
Membuat komputer virtual pertama
Buat komputer virtual dengan New-AzVM. Contoh berikut membuat komputer virtual bernama vm-1 di jaringan virtual vnet-1 .
# Create a credential object
$cred = Get-Credential
# Define the virtual machine parameters
$vmParams = @{
ResourceGroupName = "test-rg"
Location = "eastus2"
Name = "vm-1"
Image = "Ubuntu2204"
Size = "Standard_DS1_v2"
Credential = $cred
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-1"
PublicIpAddressName = "" # No public IP address
SshKeyName = "vm-1-ssh-key"
GenerateSshKey = $true
}
# Create the virtual machine
New-AzVM @vmParams
Membuat komputer virtual kedua
# Create a credential object
$cred = Get-Credential
# Define the virtual machine parameters
$vmParams = @{
ResourceGroupName = "test-rg"
Location = "eastus2"
Name = "vm-2"
Image = "Ubuntu2204"
Size = "Standard_DS1_v2"
Credential = $cred
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-1"
PublicIpAddressName = "" # No public IP address
SshKeyName = "vm-2-ssh-key"
GenerateSshKey = $true
}
# Create the virtual machine
New-AzVM @vmParams
Azure membutuhkan waktu beberapa menit untuk membuat komputer virtual. Saat Azure selesai membuat komputer virtual, Azure mengembalikan output ke PowerShell.
Nota
Komputer virtual di jaringan virtual dengan host Bastion tidak memerlukan alamat IP publik. Bastion menyediakan IP publik, dan komputer virtual menggunakan IP privat untuk berkomunikasi dalam jaringan. Anda dapat menghapus IP publik dari komputer virtual apa pun di jaringan virtual yang dihosting Bastion. Untuk informasi selengkapnya, lihat Memisahkan alamat IP publik dari Azure VM.
Nota
Azure menyediakan alamat IP akses keluar bawaan untuk VM yang tidak diberi alamat IP publik atau yang terletak dalam kumpulan backend load balancer dasar Azure internal. Mekanisme IP akses keluar default menyediakan alamat IP keluar yang tidak dapat dikonfigurasi.
IP akses keluar default dinonaktifkan saat salah satu peristiwa berikut terjadi:
- Alamat IP publik ditetapkan ke VM.
- VM ditempatkan di kumpulan backend penyeimbang beban standar, dengan atau tanpa aturan outbound.
- Sumber daya Azure NAT Gateway dihubungkan ke subnet VM.
VM yang Anda buat dengan menggunakan kumpulan skala mesin virtual dalam mode orkestrasi fleksibel tidak memiliki akses ke luar secara default.
Untuk informasi selengkapnya tentang koneksi keluar di Azure, lihat Akses keluar default di Azure dan Menggunakan Terjemahan Alamat Jaringan Sumber (SNAT) untuk koneksi keluar.
Membuat grup sumber daya
Gunakan az group create untuk membuat grup sumber daya untuk menghosting jaringan virtual. Gunakan kode berikut untuk membuat grup sumber daya bernama test-rg di wilayah Azure eastus2 :
az group create \
--name test-rg \
--location eastus2
Membuat jaringan virtual dan subnet
Gunakan az network vnet create untuk membuat jaringan virtual bernama vnet-1 dengan subnet bernama subnet-1 di grup sumber daya test-rg :
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefixes 10.0.0.0/24
Sebarkan Azure Bastion
Azure Bastion menggunakan browser Anda untuk terhubung ke komputer virtual di jaringan virtual Anda melalui Secure Shell (SSH) atau Protokol Desktop Jarak Jauh (RDP) dengan menggunakan alamat IP privat mereka. Komputer virtual tidak memerlukan alamat IP publik, perangkat lunak klien, atau konfigurasi khusus.
Harga per jam mulai berlaku sejak Bastion diluncurkan, tanpa mempedulikan penggunaan data keluar. Untuk informasi selengkapnya, lihat Harga dan SKU. Jika Anda menyebarkan Bastion sebagai bagian dari tutorial atau pengujian, kami sarankan Anda menghapus sumber daya ini setelah Selesai menggunakannya. Untuk informasi selengkapnya tentang Azure Bastion, lihat Apa itu Azure Bastion?.
Gunakan az network vnet subnet create untuk membuat subnet Bastion untuk jaringan virtual Anda. Subnet ini dicadangkan khusus untuk sumber daya Bastion dan harus diberi nama AzureBastionSubnet.
az network vnet subnet create \
--name AzureBastionSubnet \
--resource-group test-rg \
--vnet-name vnet-1 \
--address-prefix 10.0.1.0/26
Buat alamat IP publik untuk Bastion. Alamat IP ini digunakan untuk terhubung ke host Bastion dari internet. Gunakan az network public-ip create untuk membuat alamat IP publik bernama public-ip di grup sumber daya test-rg :
az network public-ip create \
--resource-group test-rg \
--name public-ip \
--sku Standard \
--location eastus2 \
--zone 1 2 3
Gunakan az network bastion create untuk membuat host Bastion di AzureBastionSubnet untuk jaringan virtual Anda:
az network bastion create \
--name bastion \
--public-ip-address public-ip \
--resource-group test-rg \
--vnet-name vnet-1 \
--location eastus2 \
--sku Basic
Dibutuhkan sekitar 10 menit untuk menyebarkan sumber daya Bastion. Anda dapat membuat komputer virtual di bagian berikutnya saat Bastion disebarkan ke jaringan virtual Anda.
Membuat komputer virtual
Membuat komputer virtual pertama
Buat komputer virtual dengan az vm create. Contoh berikut membuat komputer virtual bernama vm-1 di jaringan virtual vnet-1 . Jika tombol SSH belum ada di lokasi kunci default, perintah akan membuatnya. Opsi --no-wait ini membuat komputer virtual di latar belakang, sehingga Anda dapat melanjutkan ke langkah berikutnya.
az vm create \
--resource-group test-rg \
--name vm-1 \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--public-ip-address "" \
--admin-username azureuser \
--generate-ssh-keys \
--no-wait
Membuat komputer virtual kedua
Buat komputer virtual bernama vm-2 di jaringan virtual vnet-1 .
az vm create \
--resource-group test-rg \
--name vm-2 \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--public-ip-address "" \
--admin-username azureuser \
--generate-ssh-keys
Komputer virtual membutuhkan waktu beberapa menit untuk dibuat.
Nota
Komputer virtual di jaringan virtual dengan host Bastion tidak memerlukan alamat IP publik. Bastion menyediakan IP publik, dan komputer virtual menggunakan IP privat untuk berkomunikasi dalam jaringan. Anda dapat menghapus IP publik dari komputer virtual apa pun di jaringan virtual yang dihosting Bastion. Untuk informasi selengkapnya, lihat Memisahkan alamat IP publik dari Azure VM.
Nota
Azure menyediakan alamat IP akses keluar bawaan untuk VM yang tidak diberi alamat IP publik atau yang terletak dalam kumpulan backend load balancer dasar Azure internal. Mekanisme IP akses keluar default menyediakan alamat IP keluar yang tidak dapat dikonfigurasi.
IP akses keluar default dinonaktifkan saat salah satu peristiwa berikut terjadi:
- Alamat IP publik ditetapkan ke VM.
- VM ditempatkan di kumpulan backend penyeimbang beban standar, dengan atau tanpa aturan outbound.
- Sumber daya Azure NAT Gateway dihubungkan ke subnet VM.
VM yang Anda buat dengan menggunakan kumpulan skala mesin virtual dalam mode orkestrasi fleksibel tidak memiliki akses ke luar secara default.
Untuk informasi selengkapnya tentang koneksi keluar di Azure, lihat Akses keluar default di Azure dan Menggunakan Terjemahan Alamat Jaringan Sumber (SNAT) untuk koneksi keluar.
Meninjau templat
Templat yang Anda gunakan untuk mulai cepat ini berasal dari Azure Quickstart Templates.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.6.18.56646",
"templateHash": "10806234693722113459"
}
},
"parameters": {
"vnetName": {
"type": "string",
"defaultValue": "VNet1",
"metadata": {
"description": "VNet name"
}
},
"vnetAddressPrefix": {
"type": "string",
"defaultValue": "10.0.0.0/16",
"metadata": {
"description": "Address prefix"
}
},
"subnet1Prefix": {
"type": "string",
"defaultValue": "10.0.0.0/24",
"metadata": {
"description": "Subnet 1 Prefix"
}
},
"subnet1Name": {
"type": "string",
"defaultValue": "Subnet1",
"metadata": {
"description": "Subnet 1 Name"
}
},
"subnet2Prefix": {
"type": "string",
"defaultValue": "10.0.1.0/24",
"metadata": {
"description": "Subnet 2 Prefix"
}
},
"subnet2Name": {
"type": "string",
"defaultValue": "Subnet2",
"metadata": {
"description": "Subnet 2 Name"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2021-08-01",
"name": "[parameters('vnetName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetAddressPrefix')]"
]
},
"subnets": [
{
"name": "[parameters('subnet1Name')]",
"properties": {
"addressPrefix": "[parameters('subnet1Prefix')]"
}
},
{
"name": "[parameters('subnet2Name')]",
"properties": {
"addressPrefix": "[parameters('subnet2Prefix')]"
}
}
]
}
}
]
}
Templat menentukan sumber daya Azure berikut:
Menyebarkan templat
Sebarkan templat Resource Manager ke Azure:
Pilih Sebarkan ke Azure untuk masuk ke Azure dan membuka templat. Templat ini membuat jaringan virtual dengan dua subnet.
Di portal, pada halaman Buat Virtual Network dengan dua Subnet , masukkan atau pilih nilai berikut:
-
Grup sumber daya: Pilih Buat baru, masukkan CreateVNetQS-rg untuk nama grup sumber daya, lalu pilih OK.
-
Nama Jaringan Virtual: Masukkan nama untuk jaringan virtual baru.
Pilih Tinjau + buat, lalu pilih Buat.
Setelah penyebaran selesai, pilih tombol Buka sumber daya untuk meninjau sumber daya yang Anda sebarkan.
Meninjau sumber daya yang disebarkan
Jelajahi sumber daya yang Anda buat dengan jaringan virtual dengan menelusuri panel pengaturan untuk VNet1:
Tab Gambaran Umum memperlihatkan ruang alamat yang ditentukan 10.0.0.0/16.
Tab Subnets menunjukkan subnet yang disebarkan, yaitu Subnet1 dan Subnet2, dengan nilai yang cocok dari templat.
Untuk mempelajari tentang sintaks dan properti JSON untuk jaringan virtual di dalam templat, lihat Microsoft.Network/virtualNetworks.
Membuat jaringan virtual dan komputer virtual
Mulai cepat ini menggunakan templat Bicep Two VMs in VNET dari Azure Resource Manager Quickstart Templates untuk membuat jaringan virtual, subnet sumber daya, dan mesin virtual. Templat Bicep menentukan sumber daya Azure berikut:
Periksa file Bicep:
@description('Admin username')
param adminUsername string
@description('Admin password')
@secure()
param adminPassword string
@description('Prefix to use for VM names')
param vmNamePrefix string = 'BackendVM'
@description('Location for all resources.')
param location string = resourceGroup().location
@description('Size of the virtual machines')
param vmSize string = 'Standard_D2s_v3'
var availabilitySetName = 'AvSet'
var storageAccountType = 'Standard_LRS'
var storageAccountName = uniqueString(resourceGroup().id)
var virtualNetworkName = 'vNet'
var subnetName = 'backendSubnet'
var loadBalancerName = 'ilb'
var networkInterfaceName = 'nic'
var subnetRef = resourceId('Microsoft.Network/virtualNetworks/subnets', virtualNetworkName, subnetName)
var numberOfInstances = 2
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: storageAccountName
location: location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
}
resource availabilitySet 'Microsoft.Compute/availabilitySets@2023-09-01' = {
name: availabilitySetName
location: location
sku: {
name: 'Aligned'
}
properties: {
platformUpdateDomainCount: 2
platformFaultDomainCount: 2
}
}
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' = {
name: virtualNetworkName
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: subnetName
properties: {
addressPrefix: '10.0.2.0/24'
}
}
]
}
}
resource networkInterface 'Microsoft.Network/networkInterfaces@2023-09-01' = [for i in range(0, numberOfInstances): {
name: '${networkInterfaceName}${i}'
location: location
properties: {
ipConfigurations: [
{
name: 'ipconfig1'
properties: {
privateIPAllocationMethod: 'Dynamic'
subnet: {
id: subnetRef
}
loadBalancerBackendAddressPools: [
{
id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', loadBalancerName, 'BackendPool1')
}
]
}
}
]
}
dependsOn: [
virtualNetwork
loadBalancer
]
}]
resource loadBalancer 'Microsoft.Network/loadBalancers@2023-09-01' = {
name: loadBalancerName
location: location
sku: {
name: 'Standard'
}
properties: {
frontendIPConfigurations: [
{
properties: {
subnet: {
id: subnetRef
}
privateIPAddress: '10.0.2.6'
privateIPAllocationMethod: 'Static'
}
name: 'LoadBalancerFrontend'
}
]
backendAddressPools: [
{
name: 'BackendPool1'
}
]
loadBalancingRules: [
{
properties: {
frontendIPConfiguration: {
id: resourceId('Microsoft.Network/loadBalancers/frontendIpConfigurations', loadBalancerName, 'LoadBalancerFrontend')
}
backendAddressPool: {
id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', loadBalancerName, 'BackendPool1')
}
probe: {
id: resourceId('Microsoft.Network/loadBalancers/probes', loadBalancerName, 'lbprobe')
}
protocol: 'Tcp'
frontendPort: 80
backendPort: 80
idleTimeoutInMinutes: 15
}
name: 'lbrule'
}
]
probes: [
{
properties: {
protocol: 'Tcp'
port: 80
intervalInSeconds: 15
numberOfProbes: 2
}
name: 'lbprobe'
}
]
}
dependsOn: [
virtualNetwork
]
}
resource vm 'Microsoft.Compute/virtualMachines@2023-09-01' = [for i in range(0, numberOfInstances): {
name: '${vmNamePrefix}${i}'
location: location
properties: {
availabilitySet: {
id: availabilitySet.id
}
hardwareProfile: {
vmSize: vmSize
}
osProfile: {
computerName: '${vmNamePrefix}${i}'
adminUsername: adminUsername
adminPassword: adminPassword
}
storageProfile: {
imageReference: {
publisher: 'MicrosoftWindowsServer'
offer: 'WindowsServer'
sku: '2019-Datacenter'
version: 'latest'
}
osDisk: {
createOption: 'FromImage'
}
}
networkProfile: {
networkInterfaces: [
{
id: networkInterface[i].id
}
]
}
diagnosticsProfile: {
bootDiagnostics: {
enabled: true
storageUri: storageAccount.properties.primaryEndpoints.blob
}
}
}
}]
output location string = location
output name string = loadBalancer.name
output resourceGroupName string = resourceGroup().name
output resourceId string = loadBalancer.id
Menyebarkan templat Bicep
Simpan file Bicep ke komputer lokal Anda sebagai main.bicep.
Sebarkan file Bicep dengan menggunakan Azure CLI atau Azure PowerShell:
antarmuka baris perintah (CLI)
az group create \
--name TestRG \
--location eastus
az deployment group create \
--resource-group TestRG \
--template-file main.bicep
PowerShell
$rgParams = @{
Name = 'TestRG'
Location = 'eastus'
}
New-AzResourceGroup @rgParams
$deploymentParams = @{
ResourceGroupName = 'TestRG'
TemplateFile = 'main.bicep'
}
New-AzResourceGroupDeployment @deploymentParams
Ketika penyebaran selesai, pesan menunjukkan penyebaran berhasil.
Sebarkan Azure Bastion
Bastion menggunakan browser Anda untuk terhubung ke komputer virtual di jaringan virtual Anda melalui Secure Shell (SSH) atau Remote Desktop Protocol (RDP) dengan menggunakan alamat IP privat mereka. Komputer virtual tidak memerlukan alamat IP publik, perangkat lunak klien, atau konfigurasi khusus. Untuk informasi selengkapnya tentang Azure Bastion, lihat Apa itu Azure Bastion?
Nota
Harga per jam mulai berlaku sejak Bastion diluncurkan, tanpa mempedulikan penggunaan data keluar. Untuk informasi selengkapnya, lihat Harga dan SKU. Jika Anda menyebarkan Bastion sebagai bagian dari tutorial atau pengujian, kami sarankan Anda menghapus sumber daya ini setelah Selesai menggunakannya.
Gunakan templat Azure Bastion as a Service Bicep dari Templat Mulai Cepat Azure Resource Manager untuk menyebarkan dan mengonfigurasi Bastion di jaringan virtual Anda. Templat Bicep ini menentukan sumber daya Azure berikut:
Periksa file Bicep:
@description('Name of new or existing vnet to which Azure Bastion should be deployed')
param vnetName string = 'vnet01'
@description('IP prefix for available addresses in vnet address space')
param vnetIpPrefix string = '10.1.0.0/16'
@description('Specify whether to provision new vnet or deploy to existing vnet')
@allowed([
'new'
'existing'
])
param vnetNewOrExisting string = 'new'
@description('Bastion subnet IP prefix MUST be within vnet IP prefix address space')
param bastionSubnetIpPrefix string = '10.1.1.0/26'
@description('Name of Azure Bastion resource')
param bastionHostName string
@description('Azure region for Bastion and virtual network')
param location string = resourceGroup().location
var publicIpAddressName = '${bastionHostName}-pip'
var bastionSubnetName = 'AzureBastionSubnet'
resource publicIp 'Microsoft.Network/publicIPAddresses@2022-01-01' = {
name: publicIpAddressName
location: location
sku: {
name: 'Standard'
}
properties: {
publicIPAllocationMethod: 'Static'
}
}
// if vnetNewOrExisting == 'new', create a new vnet and subnet
resource newVirtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = if (vnetNewOrExisting == 'new') {
name: vnetName
location: location
properties: {
addressSpace: {
addressPrefixes: [
vnetIpPrefix
]
}
subnets: [
{
name: bastionSubnetName
properties: {
addressPrefix: bastionSubnetIpPrefix
}
}
]
}
}
// if vnetNewOrExisting == 'existing', reference an existing vnet and create a new subnet under it
resource existingVirtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' existing = if (vnetNewOrExisting == 'existing') {
name: vnetName
}
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2022-01-01' = if (vnetNewOrExisting == 'existing') {
parent: existingVirtualNetwork
name: bastionSubnetName
properties: {
addressPrefix: bastionSubnetIpPrefix
}
}
resource bastionHost 'Microsoft.Network/bastionHosts@2022-01-01' = {
name: bastionHostName
location: location
dependsOn: [
newVirtualNetwork
existingVirtualNetwork
]
properties: {
ipConfigurations: [
{
name: 'IpConf'
properties: {
subnet: {
id: subnet.id
}
publicIPAddress: {
id: publicIp.id
}
}
}
]
}
}
Menyebarkan templat Bicep
Simpan file Bicep ke komputer lokal Anda sebagai bastion.bicep.
Gunakan editor teks atau kode untuk membuat perubahan berikut dalam file:
- Baris 2: Ubah
param vnetName string dari 'vnet01' ke 'VNet'.
- Baris 5: Ubah
param vnetIpPrefix string dari '10.1.0.0/16' ke '10.0.0.0/16'.
- Baris 12: Ubah
param vnetNewOrExisting string dari 'new' ke 'existing'.
- Baris 15: Ubah
param bastionSubnetIpPrefix string dari '10.1.1.0/26' ke '10.0.1.0/26'.
- Baris 18: Ubah
param bastionHostName string ke param bastionHostName = 'VNet-bastion'.
18 baris pertama file Bicep Anda sekarang akan terlihat seperti contoh ini:
@description('Name of new or existing vnet to which Azure Bastion should be deployed')
param vnetName string = 'VNet'
@description('IP prefix for available addresses in vnet address space')
param vnetIpPrefix string = '10.0.0.0/16'
@description('Specify whether to provision new vnet or deploy to existing vnet')
@allowed([
'new'
'existing'
])
param vnetNewOrExisting string = 'existing'
@description('Bastion subnet IP prefix MUST be within vnet IP prefix address space')
param bastionSubnetIpPrefix string = '10.0.1.0/26'
@description('Name of Azure Bastion resource')
param bastionHostName = 'VNet-bastion'
Simpan file bastion.bicep.
Sebarkan file Bicep dengan menggunakan Azure CLI atau Azure PowerShell:
antarmuka baris perintah (CLI)
az deployment group create \
--resource-group TestRG \
--template-file bastion.bicep
PowerShell
$deploymentParams = @{
ResourceGroupName = 'TestRG'
TemplateFile = 'bastion.bicep'
}
New-AzResourceGroupDeployment @deploymentParams
Ketika penyebaran selesai, pesan menunjukkan penyebaran berhasil.
Nota
Komputer virtual di jaringan virtual dengan host Bastion tidak memerlukan alamat IP publik. Bastion menyediakan IP publik, dan komputer virtual menggunakan IP privat untuk berkomunikasi dalam jaringan. Anda dapat menghapus IP publik dari komputer virtual apa pun di jaringan virtual yang dihosting Bastion. Untuk informasi selengkapnya, lihat Memisahkan alamat IP publik dari Azure VM.
Meninjau sumber daya yang disebarkan
Gunakan Azure CLI, Azure PowerShell, atau portal Azure untuk meninjau sumber daya yang disebarkan:
antarmuka baris perintah (CLI)
az resource list --resource-group TestRG
PowerShell
Get-AzResource -ResourceGroupName TestRG
Portal
Di portal Azure, cari dan pilih grup sumber daya. Pada halaman Grup sumber daya, pilih TestRG dari daftar grup sumber daya.
Pada halaman Gambaran Umum untuk TestRG, tinjau semua sumber daya yang Anda buat, termasuk jaringan virtual, dua komputer virtual, dan host Bastion.
Pilih jaringan virtual VNet .
Pada halaman Gambaran Umum untuk VNet, perhatikan ruang alamat yang ditentukan 10.0.0.0/16.
Di menu sebelah kiri, pilih Subnet. Pada halaman Subnet , perhatikan subnet backendSubnet dan AzureBastionSubnet yang disebarkan dengan nilai yang ditetapkan dari file Bicep.