Azure SQL Database 및 Azure Synapse Analytics 네트워크 액세스 제어

적용 대상:Azure SQL DatabaseAzure Synapse Analytics(전용 SQL 풀만 해당)

Azure SQL Database 및 Azure Synapse Analytics에 대한 Azure Portal에서 논리 서버를 만들 때 결과는 yourservername.database.windows.net 형식의 퍼블릭 엔드포인트입니다.

다음 네트워크 액세스 제어를 사용하여 퍼블릭 엔드포인트를 통해 데이터베이스에 대한 액세스를 선택적으로 허용할 수 있습니다.

  • Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용: 사용하도록 설정하면 Azure Virtual Machine과 같은 Azure 경계 내의 다른 리소스가 SQL Database에 액세스할 수 있습니다.
  • IP 방화벽 규칙: 이 기능을 사용하여 온-프레미스 컴퓨터와 같은 특정 IP 주소에서의 연결을 명시적으로 허용합니다.

다음을 통해 가상 네트워크에서 데이터베이스에 대한 개인 액세스를 허용할 수도 있습니다.

  • 가상 네트워크 방화벽 규칙: 이 기능을 사용하여 Azure 경계 내에서 특정 가상 네트워크의 트래픽을 허용합니다.
  • Private Link: 이 기능을 사용하여 특정 가상 네트워크 내에서 Azure의 논리 서버에 대한 프라이빗 엔드포인트를 만들 수 있습니다.

중요

이 문서는 SQL Managed Instance에 적용되지 않습니다. 필요한 네트워킹 구성에 대한 자세한 내용은 Azure SQL Managed Instance에 연결을 참조하세요.

이러한 액세스 제어 및 기능에 대한 개략적인 설명은 아래 비디오를 참조하세요.

Azure 서비스 허용

Azure Portal에서 새 논리 서버를 만드는 동안은 기본적으로 Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용 설정이 선택되지 않고 사용 안 함으로 지정됩니다. 이 설정은 퍼블릭 서비스 엔드포인트를 사용하여 연결을 허용하는 경우에 나타납니다.

다음과 같이 논리 서버를 만든 후 네트워킹 설정을 통해 이 설정을 변경할 수도 있습니다.

Screenshot of manage server firewall

Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용을 사용하도록 설정하면 서버는 구독에 속할 수도 있고 속하지 않을 수도 있는 Azure 경계 내의 모든 리소스로부터의 통신을 허용합니다.

대부분의 경우, 이 설정을 사용 설정하는 것이 대부분의 고객이 원하는 것보다 더 관용적입니다. 이 설정을 선택 취소하고 더 제한적인 IP 방화벽 규칙 또는 가상 네트워크 방화벽 규칙으로 바꿀 수 있습니다.

하지만 이렇게 하면 가상 네트워크의 일부가 아닌 Azure의 가상 머신에서 실행되어 Azure IP 주소를 통해 데이터베이스에 연결되는 다음 기능에 영향을 줍니다.

가져오기/내보내기 서비스

가져오기/내보내기 서비스는 Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용을 사용 안 함으로 설정하면 작동하지 않습니다. 하지만 DACFx API를 사용하여 코드에서 직접 내보내기를 수행하거나 Azure VM에서 수동으로 SqlPackage를 실행하여 문제를 해결할 수 있습니다.

데이터 동기화

Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용이 사용 안 함으로 설정된 상태에서 데이터 동기화 기능을 사용하려면 개별 방화벽 규칙 항목을 만들어 허브 데이터베이스를 호스팅하는 지역의 SQL 서비스 태그에서 IP 주소를 추가해야 합니다. 허브구성원 데이터베이스(다른 지역에 있을 수 있음)를 모두 호스트하는 서버에 이러한 서버 수준 방화벽 규칙을 추가합니다.

다음 PowerShell 스크립트를 사용하여 미국 서부 지역의 SQL 서비스 태그에 해당하는 IP 주소를 생성합니다.

PS C:\>  $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\>  $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27

Get-AzNetworkServiceTag는 위치 매개 변수를 지정했음에도 불구하고 SQL 서비스 태그의 전역 범위를 반환합니다. 동기화 그룹에서 사용하는 허브 데이터베이스를 호스트하는 지역으로 필터링해야 합니다.

PowerShell 스크립트의 출력은 CIDR(Classless Interdomain Routing) 표기법으로 작성됩니다. 다음과 같이 Get-IPrangeStartEnd.ps1을 사용하여 시작 및 종료 IP 주소 형식으로 변환해야 합니다.

PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start        end
-----        ---
52.229.17.64 52.229.17.127

이러한 추가 PowerShell 스크립트를 사용하여 모든 IP 주소를 CIDR에서 시작 및 종료 IP 주소 형식으로 변환할 수 있습니다.

PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start          end
-----          ---
13.86.216.0    13.86.216.127
13.86.216.128  13.86.216.191
13.86.216.192  13.86.216.223

이제 이러한 규칙을 별도의 방화벽 규칙으로 추가한 다음 Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용 설정을 사용하지 않도록 설정할 수 있습니다.

IP 방화벽 규칙

IP 기반 방화벽은 명시적으로 클라이언트 컴퓨터의 IP 주소를 추가할 때까지 서버에 대한 모든 액세스를 방지하는 Azure의 논리 서버 기능입니다.

Virtual Network 방화벽 규칙

IP 규칙 외에도 서버 방화벽을 사용하여 가상 네트워크 규칙을 정의할 수 있습니다. 자세한 내용은 Azure SQL Database에 대한 가상 네트워크 서비스 엔드포인트 및 규칙을 참조하세요.

Azure 네트워킹 용어

가상 네트워크 방화벽 규칙을 살펴보기 위해 다음 Azure 네트워킹 용어를 알고 있어야 합니다.

가상 네트워크: Azure 구독과 연결된 가상 네트워크가 있을 수 있습니다.

서브넷: 가상 네트워크에 서브넷이 포함됩니다. 소유한 Azure VM(가상 머신)은 서브넷에 할당됩니다. 하나의 서브넷에 여러 VM 또는 다른 컴퓨팅 노드가 포함될 수 있습니다. 액세스를 허용하도록 보안을 구성해야 가상 네트워크 외부의 컴퓨팅 노드가 가상 네트워크에 액세스할 수 있습니다.

가상 네트워크 서비스 엔드포인트:가상 네트워크 서비스 엔드포인트는 속성 값에 하나 이상의 정식 Azure 서비스 유형 이름이 포함된 서브넷입니다. 이 문서에서는 SQL Database라는 Azure 서비스를 나타내는 Microsoft.Sql의 형식 이름을 살펴봅니다.

가상 네트워크 규칙: 서버에 대한 가상 네트워크 규칙은 서버의 ACL(액세스 제어 목록)에 나열된 서브넷입니다. SQL Database에서 데이터베이스에 대한 ACL에 나열되려면 서브넷에 Microsoft.Sql 형식 이름이 있어야 합니다. 가상 네트워크 규칙은 서브넷에 있는 모든 노드에서 보낸 통신을 수락하도록 서버에 지시합니다.

IP 및 가상 네트워크 방화벽 규칙

Azure SQL Database 방화벽을 사용하여 SQL Database에 대한 통신이 수락되는 IP 주소 범위를 지정할 수 있습니다. 이 방법은 Azure 프라이빗 네트워크 외부에 있는 안정적인 IP 주소에 적합합니다. 하지만 Azure 프라이빗 네트워크 내의 가상 머신(VM)은 동적 IP 주소로 구성됩니다. 동적 IP 주소는 VM이 다시 시작된 다음 IP 기반 방화벽 규칙을 무효화할 때 변경될 수 있습니다. 프로덕션 환경의 방화벽 규칙에서는 동적 IP 주소를 지정하면 안 됩니다.

VM에 대한 고정 IP 주소를 가져오면 이러한 제한을 해결할 수 있습니다. 자세한 내용은 Azure Portal을 사용하여 고정 공용 IP 주소로 가상 머신 만들기를 참조하세요. 하지만 고정 IP 방법은 관리가 어려워질 수 있고 대규모로 이루어질 경우 비용이 많이 듭니다.

가상 네트워크 규칙은 VM이 포함된 특정 서브넷의 액세스를 설정하고 관리하는 보다 쉬운 방법입니다.

참고

아직 서브넷에 SQL Database가 있을 수 없습니다. 서버가 가상 네트워크에 있는 서브넷의 노드인 경우 가상 네트워크 내의 모든 노드가 SQL Database와 통신할 수 있습니다. 이 경우 VM은 가상 네트워크 규칙이나 IP 규칙이 없어도 SQL Database와 통신할 수 있습니다.

Private Link를 사용하면 프라이빗 엔드포인트를 통해 서버에 연결할 수 있습니다. 프라이빗 엔드포인트는 특정 가상 네트워크 및 서브넷 내의 개인 IP 주소입니다.

다음 단계