Rövid útmutató: Privát végpont létrehozása ARM-sablonnal
Ebben a rövid útmutatóban egy Azure Resource Manager-sablont (ARM-sablont) fog használni egy privát végpont létrehozásához.
Az Azure Resource Manager-sablon egy JavaScript Object Notation (JSON) fájl, amely meghatározza a projekt infrastruktúráját és konfigurációját. A sablon deklaratív szintaxist használ. Az üzembe helyezés létrehozásához szükséges programozási parancsok sorozatának megírása nélkül írhatja le a tervezett üzembe helyezést.
Privát végpontot az Azure Portal, az Azure PowerShell vagy az Azure CLI használatával is létrehozhat.
Ha a környezet megfelel az előfeltételeknek, és ismeri az ARM-sablonok használatát, kattintson ide az Üzembe helyezés az Azure-ban gombra. Az ARM-sablon megnyílik az Azure Portalon.
Előfeltételek
Aktív előfizetéssel rendelkező Azure-fiókra van szüksége. Ha még nem rendelkezik Azure-fiókkal, hozzon létre ingyenes fiókot.
A sablon áttekintése
Ez a sablon létrehoz egy privát végpontot az Azure SQL Database egy példányához.
A rövid útmutató által használt sablon az Azure Gyorsindítási sablonokból származik.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.5.6.12127",
"templateHash": "14846974543330599630"
}
},
"parameters": {
"sqlAdministratorLogin": {
"type": "string",
"metadata": {
"description": "The administrator username of the SQL logical server"
}
},
"sqlAdministratorLoginPassword": {
"type": "secureString",
"metadata": {
"description": "The administrator password of the SQL logical server."
}
},
"vmAdminUsername": {
"type": "string",
"metadata": {
"description": "Username for the Virtual Machine."
}
},
"vmAdminPassword": {
"type": "secureString",
"metadata": {
"description": "Password for the Virtual Machine. The password must be at least 12 characters long and have lower case, upper characters, digit and a special character (Regex match)"
}
},
"VmSize": {
"type": "string",
"defaultValue": "Standard_D2_v3",
"metadata": {
"description": "The size of the VM"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {
"vnetName": "myVirtualNetwork",
"vnetAddressPrefix": "10.0.0.0/16",
"subnet1Prefix": "10.0.0.0/24",
"subnet1Name": "mySubnet",
"sqlServerName": "[format('sqlserver{0}', uniqueString(resourceGroup().id))]",
"databaseName": "[format('{0}/sample-db', variables('sqlServerName'))]",
"privateEndpointName": "myPrivateEndpoint",
"privateDnsZoneName": "[format('privatelink{0}', environment().suffixes.sqlServerHostname)]",
"pvtEndpointDnsGroupName": "[format('{0}/mydnsgroupname', variables('privateEndpointName'))]",
"vmName": "[take(format('myVm{0}', uniqueString(resourceGroup().id)), 15)]",
"publicIpAddressName": "[format('{0}PublicIP', variables('vmName'))]",
"networkInterfaceName": "[format('{0}NetInt', variables('vmName'))]",
"osDiskType": "StandardSSD_LRS"
},
"resources": [
{
"type": "Microsoft.Sql/servers",
"apiVersion": "2021-11-01-preview",
"name": "[variables('sqlServerName')]",
"location": "[parameters('location')]",
"tags": {
"displayName": "[variables('sqlServerName')]"
},
"properties": {
"administratorLogin": "[parameters('sqlAdministratorLogin')]",
"administratorLoginPassword": "[parameters('sqlAdministratorLoginPassword')]",
"version": "12.0",
"publicNetworkAccess": "Disabled"
}
},
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2021-11-01-preview",
"name": "[variables('databaseName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"tags": {
"displayName": "[variables('databaseName')]"
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"sampleName": "AdventureWorksLT"
},
"dependsOn": [
"[resourceId('Microsoft.Sql/servers', variables('sqlServerName'))]"
]
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2021-05-01",
"name": "[variables('vnetName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[variables('vnetAddressPrefix')]"
]
}
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2021-05-01",
"name": "[format('{0}/{1}', variables('vnetName'), variables('subnet1Name'))]",
"properties": {
"addressPrefix": "[variables('subnet1Prefix')]",
"privateEndpointNetworkPolicies": "Disabled"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetName'))]"
]
},
{
"type": "Microsoft.Network/privateEndpoints",
"apiVersion": "2021-05-01",
"name": "[variables('privateEndpointName')]",
"location": "[parameters('location')]",
"properties": {
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetName'), variables('subnet1Name'))]"
},
"privateLinkServiceConnections": [
{
"name": "[variables('privateEndpointName')]",
"properties": {
"privateLinkServiceId": "[resourceId('Microsoft.Sql/servers', variables('sqlServerName'))]",
"groupIds": [
"sqlServer"
]
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Sql/servers', variables('sqlServerName'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetName'), variables('subnet1Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetName'))]"
]
},
{
"type": "Microsoft.Network/privateDnsZones",
"apiVersion": "2020-06-01",
"name": "[variables('privateDnsZoneName')]",
"location": "global",
"properties": {},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetName'))]"
]
},
{
"type": "Microsoft.Network/privateDnsZones/virtualNetworkLinks",
"apiVersion": "2020-06-01",
"name": "[format('{0}/{1}', variables('privateDnsZoneName'), format('{0}-link', variables('privateDnsZoneName')))]",
"location": "global",
"properties": {
"registrationEnabled": false,
"virtualNetwork": {
"id": "[resourceId('Microsoft.Network/virtualNetworks', variables('vnetName'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/privateDnsZones', variables('privateDnsZoneName'))]",
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetName'))]"
]
},
{
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
"apiVersion": "2021-05-01",
"name": "[variables('pvtEndpointDnsGroupName')]",
"properties": {
"privateDnsZoneConfigs": [
{
"name": "config1",
"properties": {
"privateDnsZoneId": "[resourceId('Microsoft.Network/privateDnsZones', variables('privateDnsZoneName'))]"
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/privateDnsZones', variables('privateDnsZoneName'))]",
"[resourceId('Microsoft.Network/privateEndpoints', variables('privateEndpointName'))]"
]
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2021-05-01",
"name": "[variables('publicIpAddressName')]",
"location": "[parameters('location')]",
"tags": {
"displayName": "[variables('publicIpAddressName')]"
},
"properties": {
"publicIPAllocationMethod": "Dynamic"
}
},
{
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2021-05-01",
"name": "[variables('networkInterfaceName')]",
"location": "[parameters('location')]",
"tags": {
"displayName": "[variables('networkInterfaceName')]"
},
"properties": {
"ipConfigurations": [
{
"name": "ipConfig1",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('publicIpAddressName'))]"
},
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetName'), variables('subnet1Name'))]"
}
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', variables('publicIpAddressName'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetName'), variables('subnet1Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetName'))]"
]
},
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2021-11-01",
"name": "[variables('vmName')]",
"location": "[parameters('location')]",
"tags": {
"displayName": "[variables('vmName')]"
},
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('VmSize')]"
},
"osProfile": {
"computerName": "[variables('vmName')]",
"adminUsername": "[parameters('vmAdminUsername')]",
"adminPassword": "[parameters('vmAdminPassword')]"
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-Datacenter",
"version": "latest"
},
"osDisk": {
"name": "[format('{0}OsDisk', variables('vmName'))]",
"caching": "ReadWrite",
"createOption": "FromImage",
"managedDisk": {
"storageAccountType": "[variables('osDiskType')]"
},
"diskSizeGB": 128
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', variables('networkInterfaceName'))]"
}
]
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', variables('networkInterfaceName'))]"
]
}
]
}
A sablon több Azure-erőforrást határoz meg:
- Microsoft.Sql/servers: Az SQL Database példánya a mintaadatbázissal.
- Microsoft.Sql/servers/databases: A mintaadatbázis.
- Microsoft.Network/virtualNetworks: Az a virtuális hálózat, ahol a privát végpont üzembe van helyezve.
- Microsoft.Network/privateEndpoints: Az SQL Database-példány eléréséhez használt privát végpont.
- Microsoft.Network/privateDnsZones: A privát végpont IP-címének feloldásához használt zóna.
- Microsoft.Network/privateDnsZones/virtualNetworkLinks
- Microsoft.Network/privateEndpoints/privateDnsZoneGroups: A privát végpont privát DNS-zónához való társításához használt zónacsoport.
- Microsoft.Network/publicIpAddresses: A virtuális gép eléréséhez használt nyilvános IP-cím.
- Microsoft.Network/networkInterfaces: A virtuális gép hálózati adaptere.
- Microsoft.Compute/virtualMachines: A magánvégpont és az SQL Database-példány közötti kapcsolat teszteléséhez használt virtuális gép.
A sablon üzembe helyezése
Helyezze üzembe az ARM-sablont az Azure-ban az alábbi lépéssel:
Jelentkezzen be az Azure-ba, és nyissa meg az ARM-sablont az Üzembe helyezés az Azure-ban gombra kattintva. A sablon létrehozza a privát végpontot, az SQL Database-példányt, a hálózati infrastruktúrát és egy érvényesítendő virtuális gépet.
Válassza ki az erőforráscsoportot, vagy hozzon létre egy újat.
Adja meg az SQL-rendszergazda bejelentkezési nevét és jelszavát.
Adja meg a virtuális gép rendszergazdájának felhasználónevét és jelszavát.
Olvassa el a használati feltételekre vonatkozó nyilatkozatot. Ha elfogadja, válassza az Elfogadom a fenti feltételeket, majd válassza a Vásárlás lehetőséget. Az üzembe helyezés 20 percet vagy hosszabb időt is igénybe vehet.
Az üzembe helyezés ellenőrzése
Feljegyzés
Az ARM-sablon létrehoz egy egyedi nevet a virtuális gép myVm{uniqueid} erőforrásának és az SQL Database sqlserver{uniqueid} erőforrásának. Cserélje le a létrehozott értéket a következőre : {uniqueid}.
Kapcsolódás virtuális géphez az internetről
Csatlakozzon a virtuális gép myVm{uniqueid} virtuális gépéhez az internetről az alábbi módon:
A portál keresősávjában adja meg a myVm{uniqueid} nevet.
Válassza a Kapcsolódás lehetőséget. Megnyílik a virtuális géphez való csatlakozás.
Válassza az RDP-fájl letöltése lehetőséget. Az Azure létrehoz egy RDP-fájlt, és letölti azt a számítógépre.
Nyissa meg a letöltött RDP-fájlt.
a. Ha a rendszer kéri, válassza a Csatlakozás lehetőséget.
b. Adja meg a virtuális gép létrehozásakor megadott felhasználónevet és jelszót.Feljegyzés
Előfordulhat, hogy a További lehetőségek lehetőséget>kell választania: A virtuális gép létrehozásakor megadott hitelesítő adatok megadásához használjon másik fiókot.
Kattintson az OK gombra.
A bejelentkezés során egy figyelmeztetés jelenhet meg a tanúsítvánnyal kapcsolatban. Ha igen, válassza az Igen vagy a Folytatás lehetőséget.
Miután megjelenik a virtuális gép asztala, kis méretűre kell csökkenteni, hogy visszalépjen a helyi asztalra.
Az SQL Database-kiszolgáló privát elérése a virtuális gépről
Ha a virtuális gépről szeretne csatlakozni az SQL Database-kiszolgálóhoz a privát végpont használatával, tegye a következőket:
Nyissa meg a PowerShellt a myVM{uniqueid} távoli asztalán.
Futtassa az alábbi parancsot:
nslookup sqlserver{uniqueid}.database.windows.net
A következőhöz hasonló üzenet jelenik meg:
Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: sqlserver.privatelink.database.windows.net Address: 10.0.0.5 Aliases: sqlserver.database.windows.net
Telepítse az SQL Server Management Studiót.
A Csatlakozás kiszolgálóhoz panelen tegye a következőket:
- Kiszolgálótípus esetén válassza az Adatbázismotor lehetőséget.
- Kiszolgálónév esetén válassza az sqlserver{uniqueid}.database.windows.net lehetőséget.
- Felhasználónévként adja meg a korábban megadott felhasználónevet.
- A Jelszó mezőbe írja be a korábban megadott jelszót.
- A jelszó megjegyzéséhez válassza az Igen lehetőséget.
Válassza a Kapcsolódás lehetőséget.
A bal oldali panelen válassza az Adatbázisok lehetőséget. Igény szerint létrehozhat vagy lekérdezhet adatokat a mintaadatbázisból.
Zárja be a távoli asztali kapcsolatot a myVm{uniqueid} szolgáltatással.
Az erőforrások eltávolítása
Ha már nincs szüksége a privát végponttal létrehozott erőforrásokra, törölje az erőforráscsoportot. Ezzel eltávolítja a privát végpontot és az összes kapcsolódó erőforrást.
Az erőforráscsoport törléséhez futtassa a Remove-AzResourceGroup
parancsmagot:
Remove-AzResourceGroup -Name <your resource group name>
Következő lépések
A privát végpontokat támogató szolgáltatásokkal kapcsolatos további információkért lásd: