가상 네트워크 아키텍처 5 - App Service 프라이빗 엔드포인트
요약
이 문서는 가상 네트워크 아키텍처 시리즈의 Part.5이며 api-management-vnet 에서 Azure App Service 및 Azure Functions 앱이 포함된 개인 끝점에 대한 세부 정보를 포함합니다.
목차
프라이빗 엔드포인트 구성
Microsoft.Web/serverFarms
에 위임되어야 합니다. AppServiceId:existingAppService.id
FuncId:existingFunc.id
VirtualNetwork2SubnetIdAsePe:existingVnet2.properties.subnets[1].id
VirtualNetwork2SubnetIdFuncPe:existingVnet2.properties.subnets[5].id
resource VirtualNetwork2 'Microsoft.Network/virtualNetworks@2021-03-01' = {
properties: {
subnets: [
{
name: snet_name_2_ase_vi
properties: {
addressPrefix: snet_prefix_2_ase_vi
networkSecurityGroup: {
id: Nsg2AseViId
}
delegations: [
{
name: 'delegation'
properties: {
serviceName: 'Microsoft.Web/serverfarms'
}
}
]
privateEndpointNetworkPolicies: 'Disabled'
}
}
{
name: snet_name_2_ase_pe
properties: {
addressPrefix: snet_prefix_2_ase_pe
networkSecurityGroup: {
id: Nsg2AsePeId
}
privateEndpointNetworkPolicies: 'Enabled'
}
}
{
name: snet_name_2_func_vi
properties: {
addressPrefix: snet_prefix_2_func_vi
networkSecurityGroup: {
id: Nsg2FuncViId
}
delegations: [
{
name: 'delegation'
properties: {
serviceName: 'Microsoft.Web/serverfarms'
}
}
]
privateEndpointNetworkPolicies: 'Disabled'
}
}
{
name: snet_name_2_func_pe
properties: {
addressPrefix: snet_prefix_2_func_pe
networkSecurityGroup: {
id: Nsg2FuncPeId
}
privateEndpointNetworkPolicies: 'Enabled'
}
}
]
}
}
사설 DNS: PrivateDns2.bicep에 DNS 이름이
privatelink.azurewebsites.net
인 사설 DNS를 배포합니다. App Service 및 함수는 하나의 프라이빗 DNS 영역을 공유할 수 있습니다.var pdns_name_app = 'privatelink.azurewebsites.net'
resource PrivateDnsApp 'Microsoft.Network/privateDnsZones@2020-06-01' = {
name: pdns_name_app
location: 'global'
}
가상 네트워크 링크: 배포된 개인 DNS를 PrivateDns2.bicep에 있는 세 개의 가상 네트워크에 연결합니다. 이는 App Service 및 Functions가 세 가지 가상 네트워크 모두에 도달하기 때문입니다. 또한 가상 네트워크 1과 2가 피어링되고 가상 네트워크 2와 3도 피어링됩니다.
VirtualNetwork1Id:existingVnet1.id
VirtualNetwork2Id:existingVnet2.id
VirtualNetwork3Id:existingVnet3.id
resource VnetLinkApp1 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = {
name: '${PrivateDnsApp.name}/${PrivateDnsApp.name}-link1'
location: 'global'
properties: {
registrationEnabled: false
virtualNetwork: {
id: VirtualNetwork1Id
}
}
}
resource VnetLinkApp2 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = {
name: '${PrivateDnsApp.name}/${PrivateDnsApp.name}-link2'
location: 'global'
properties: {
registrationEnabled: false
virtualNetwork: {
id: VirtualNetwork2Id
}
}
}
resource VnetLinkApp3 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = {
name: '${PrivateDnsApp.name}/${PrivateDnsApp.name}-link3'
location: 'global'
properties: {
registrationEnabled: false
virtualNetwork: {
id: VirtualNetwork3Id
}
}
}
프라이빗 DNS A 레코드: DNS A 레코드를 생성하고 PrivateDns2.bicep에 배포된 프라이빗 엔드포인트에서 IP 주소를 설정합니다. App Service와 Functions는 각각 SCM(Source Control Manager) 사이트의 다른 엔드포인트를 가지고 있기 때문에 각각 두 개의 A 레코드를 생성해야 합니다. 이에 대한 문서Kudu service를 볼 수 있습니다. 두 프라이빗 엔드포인트에는 동일한 프라이빗 IP 주소 구성이 필요합니다.
output PrivateEndpointAseIpAddress string = PrivateEndpointAse.properties.customDnsConfigs[0].ipAddresses[0]
output PrivateEndpointFuncIpAddress string = PrivateEndpointFunc.properties.customDnsConfigs[0].ipAddresses[0]
resource PrivateDnsAAse 'Microsoft.Network/privateDnsZones/A@2020-06-01' = {
name: '${PrivateDnsApp.name}/${AppServiceName}'
properties: {
ttl: 3600
aRecords: [
{
ipv4Address: PrivateEndpointAseIpAddress
}
]
}
}
resource PrivateDnsAAseScm 'Microsoft.Network/privateDnsZones/A@2020-06-01' = {
name: '${PrivateDnsApp.name}/${AppServiceName}.scm'
properties: {
ttl: 3600
aRecords: [
{
ipv4Address: PrivateEndpointAseIpAddress
}
]
}
}
resource PrivateDnsAFunc 'Microsoft.Network/privateDnsZones/A@2020-06-01' = {
name: '${PrivateDnsApp.name}/${FuncName}'
properties: {
ttl: 3600
aRecords: [
{
ipv4Address: PrivateEndpointFuncIpAddress
}
]
}
}
resource PrivateDnsAFuncScm 'Microsoft.Network/privateDnsZones/A@2020-06-01' = {
name: '${PrivateDnsApp.name}/${FuncName}.scm'
properties: {
ttl: 3600
aRecords: [
{
ipv4Address: PrivateEndpointFuncIpAddress
}
]
}
}
인바운드 및 아웃바운드
App Service and Functions have different network features of inbound and outbound. Inbound works with Private Endpoint and outbound with V-net integration, and both need to have two different subnets for each.
액세스 제한
According to the Microsoft documentation of Private Endpoints for Azure Web App 기본적으로 웹 앱에 대한 개인 끝점을 활성화하면 모든 공용 액세스가 비활성화됩니다. 구성할 필요가 없습니다Access restrictions.
지원 계층
Microsoft documentation of Private Endpoints for Azure Web App에서는 Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium 지원 Private Endpoint만 설명합니다.
Reference
이 문제에 관하여(가상 네트워크 아키텍처 5 - App Service 프라이빗 엔드포인트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/koheikawata/virtual-network-architecture-5-app-service-private-endpoint-5eao
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
지원 계층
Microsoft documentation of Private Endpoints for Azure Web App에서는 Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium 지원 Private Endpoint만 설명합니다.
Reference
이 문제에 관하여(가상 네트워크 아키텍처 5 - App Service 프라이빗 엔드포인트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/koheikawata/virtual-network-architecture-5-app-service-private-endpoint-5eao
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(가상 네트워크 아키텍처 5 - App Service 프라이빗 엔드포인트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/koheikawata/virtual-network-architecture-5-app-service-private-endpoint-5eao텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)