Rövid útmutató: Privát végpont létrehozása a Bicep használatával
Ebben a rövid útmutatóban a Bicep használatával hoz létre privát végpontot.
A Bicep tartományspecifikus nyelv (DSL), amely deklaratív szintaxist használ az Azure-erőforrások üzembe helyezéséhez. Tömör szintaxist és megbízható típusbiztonságot kínál, valamint biztosítja a kódok újrafelhasználhatóságát. A Bicep a legjobb szerzői élményt nyújtja az Azure-beli infrastruktúra-kódmegoldásokhoz.
Privát végpontot is létrehozhat az Azure Portal, az Azure PowerShell, az Azure CLI vagy egy Azure Resource Manager-sablon használatával.
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 Bicep-fájl áttekintése
Ez a Bicep-fájl létrehoz egy privát végpontot az Azure SQL Database egy példányához.
A rövid útmutató által használt Bicep-fájl az Azure Gyorsindítási sablonokból származik.
@description('The administrator username of the SQL logical server')
param sqlAdministratorLogin string
@description('The administrator password of the SQL logical server.')
@secure()
param sqlAdministratorLoginPassword string
@description('Username for the Virtual Machine.')
param vmAdminUsername string
@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)')
@secure()
param vmAdminPassword string
@description('The size of the VM')
param VmSize string = 'Standard_D2_v3'
@description('Location for all resources.')
param location string = resourceGroup().location
var vnetName = 'myVirtualNetwork'
var vnetAddressPrefix = '10.0.0.0/16'
var subnet1Prefix = '10.0.0.0/24'
var subnet1Name = 'mySubnet'
var sqlServerName = 'sqlserver${uniqueString(resourceGroup().id)}'
var databaseName = '${sqlServerName}/sample-db'
var privateEndpointName = 'myPrivateEndpoint'
var privateDnsZoneName = 'privatelink${environment().suffixes.sqlServerHostname}'
var pvtEndpointDnsGroupName = '${privateEndpointName}/mydnsgroupname'
var vmName = take('myVm${uniqueString(resourceGroup().id)}', 15)
var publicIpAddressName = '${vmName}PublicIP'
var networkInterfaceName = '${vmName}NetInt'
var osDiskType = 'StandardSSD_LRS'
resource sqlServer 'Microsoft.Sql/servers@2021-11-01-preview' = {
name: sqlServerName
location: location
tags: {
displayName: sqlServerName
}
properties: {
administratorLogin: sqlAdministratorLogin
administratorLoginPassword: sqlAdministratorLoginPassword
version: '12.0'
publicNetworkAccess: 'Disabled'
}
}
resource database 'Microsoft.Sql/servers/databases@2021-11-01-preview' = {
name: databaseName
location: location
sku: {
name: 'Basic'
tier: 'Basic'
capacity: 5
}
tags: {
displayName: databaseName
}
properties: {
collation: 'SQL_Latin1_General_CP1_CI_AS'
maxSizeBytes: 104857600
sampleName: 'AdventureWorksLT'
}
dependsOn: [
sqlServer
]
}
resource vnet 'Microsoft.Network/virtualNetworks@2021-05-01' = {
name: vnetName
location: location
properties: {
addressSpace: {
addressPrefixes: [
vnetAddressPrefix
]
}
}
}
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2021-05-01' = {
parent: vnet
name: subnet1Name
properties: {
addressPrefix: subnet1Prefix
privateEndpointNetworkPolicies: 'Disabled'
}
}
resource privateEndpoint 'Microsoft.Network/privateEndpoints@2021-05-01' = {
name: privateEndpointName
location: location
properties: {
subnet: {
id: subnet.id
}
privateLinkServiceConnections: [
{
name: privateEndpointName
properties: {
privateLinkServiceId: sqlServer.id
groupIds: [
'sqlServer'
]
}
}
]
}
dependsOn: [
vnet
]
}
resource privateDnsZone 'Microsoft.Network/privateDnsZones@2020-06-01' = {
name: privateDnsZoneName
location: 'global'
properties: {}
dependsOn: [
vnet
]
}
resource privateDnsZoneLink 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = {
parent: privateDnsZone
name: '${privateDnsZoneName}-link'
location: 'global'
properties: {
registrationEnabled: false
virtualNetwork: {
id: vnet.id
}
}
}
resource pvtEndpointDnsGroup 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2021-05-01' = {
name: pvtEndpointDnsGroupName
properties: {
privateDnsZoneConfigs: [
{
name: 'config1'
properties: {
privateDnsZoneId: privateDnsZone.id
}
}
]
}
dependsOn: [
privateEndpoint
]
}
resource publicIpAddress 'Microsoft.Network/publicIPAddresses@2021-05-01' = {
name: publicIpAddressName
location: location
tags: {
displayName: publicIpAddressName
}
properties: {
publicIPAllocationMethod: 'Dynamic'
}
}
resource networkInterface 'Microsoft.Network/networkInterfaces@2021-05-01' = {
name: networkInterfaceName
location: location
tags: {
displayName: networkInterfaceName
}
properties: {
ipConfigurations: [
{
name: 'ipConfig1'
properties: {
privateIPAllocationMethod: 'Dynamic'
publicIPAddress: {
id: publicIpAddress.id
}
subnet: {
id: subnet.id
}
}
}
]
}
dependsOn: [
vnet
]
}
resource vm 'Microsoft.Compute/virtualMachines@2021-11-01' = {
name: vmName
location: location
tags: {
displayName: vmName
}
properties: {
hardwareProfile: {
vmSize: VmSize
}
osProfile: {
computerName: vmName
adminUsername: vmAdminUsername
adminPassword: vmAdminPassword
}
storageProfile: {
imageReference: {
publisher: 'MicrosoftWindowsServer'
offer: 'WindowsServer'
sku: '2019-Datacenter'
version: 'latest'
}
osDisk: {
name: '${vmName}OsDisk'
caching: 'ReadWrite'
createOption: 'FromImage'
managedDisk: {
storageAccountType: osDiskType
}
diskSizeGB: 128
}
}
networkProfile: {
networkInterfaces: [
{
id: networkInterface.id
}
]
}
}
}
A Bicep-fájl 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 Bicep-fájl üzembe helyezése
Mentse a Bicep-fájlt main.bicep néven a helyi számítógépre.
Telepítse a Bicep-fájlt az Azure CLI vagy az Azure PowerShell használatával.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters sqlAdministratorLogin=<admin-login> vmAdminUsername=<vm-login>
Feljegyzés
Cserélje le <a rendszergazdai bejelentkezést> az SQL logikai kiszolgáló felhasználónevére. Cserélje le <a virtuális gép bejelentkezési adatait> a virtuális gép felhasználónevére. A rendszer kérni fogja, hogy adja meg az sqlAdministratorLoginPassword parancsot. A rendszer kérni fogja a vmAdminPassword beírását is, amelynek legalább 12 karakter hosszúnak kell lennie, és legalább egy kis- és nagybetűt, valamint egy speciális karaktert kell tartalmaznia.
Amikor az üzembe helyezés befejeződött, egy üzenetnek kell megjelennie, amely jelzi, hogy az üzembe helyezés sikeres volt.
Az üzembe helyezés ellenőrzése
Feljegyzés
A Bicep-fájl 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:
Az Azure Portal keresősávján adja meg a myVm{uniqueid} kifejezést.
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 kapcsolat szolgáltatással létrehozott erőforrásokra, törölje az erőforráscsoportot. Ezzel eltávolítja a privát kapcsolat szolgáltatást és az összes kapcsolódó erőforrást.
az group delete --name exampleRG
Következő lépések
A privát végpontokat támogató szolgáltatásokkal kapcsolatos további információkért lásd: