다음을 통해 공유


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

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

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

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

  • IP 기반 방화벽 규칙: 이 기능을 사용하여 특정 IP 주소로부터의 연결을 명시적으로 허용할 수 있습니다. 예: 시작과 끝 IP 주소를 지정하여 온-프레미스 컴퓨터 또는 IP 주소 범위에서.

  • Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용: 사용하도록 설정하면 Azure 경계 내의 다른 리소스가 SQL Database에 액세스할 수 있습니다. 예를 들어 Azure Virtual Machine은 SQL Database 리소스에 액세스할 수 있습니다.

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

  • 가상 네트워크 방화벽 규칙: 이 기능을 사용하여 Azure 경계 내에서 특정 가상 네트워크의 트래픽을 허용합니다.

  • 프라이빗 링크: 이 기능을 사용하여 특정 가상 네트워크 내에서 Azure의 논리 서버에 대한 프라이빗 엔드포인트를 만들 수 있습니다.

Important

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

IP 방화벽 규칙

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

Azure 서비스 허용

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

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

서버 방화벽 관리 스크린샷

Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용을 사용하도록 설정하면 서버는 구독에 속할 수도 있고 속하지 않을 수도 있는 Azure 경계 내의 모든 리소스로부터의 통신을 허용합니다. 대부분의 경우, 이 설정을 사용 설정하는 것이 대부분의 고객이 원하는 것보다 더 관용적입니다. 이 설정을 선택 해제하고 더 제한적인 IP 방화벽 규칙으로 바꾸거나 프라이빗 액세스 옵션 중 하나를 사용할 수 있습니다.

Important

Azure 서비스 및 리소스가 이 서버에 액세스하도록 허용을 선택하면 시작 및 끝 IP 주소가 0.0.0.0인 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 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용 설정을 사용하지 않도록 설정할 수 있습니다.

SQL 서비스 태그

서비스 태그는 클라이언트에서 SQL Database로의 보안 규칙 및 경로에 사용할 수 있습니다. 서비스 태그는 보안 규칙의 원본 또는 대상 필드에 지정하여 네트워크 보안 그룹, Azure Firewall 및 사용자 정의 경로에서 사용할 수 있습니다. SQL 서비스 태그는 SQL Database에서 사용되는 모든 IP 주소로 구성됩니다. 태그는 지역별로 더 세분화됩니다. 예를 들어 Sql.WestUS는 미국 서부의 SQL Database에서 사용하는 모든 IP 주소를 나열합니다.

SQL 서비스 태그는 게이트웨이 IP 주소에 설명된 대로 SQL Database에 대한 연결을 설정하는 데 필요한 IP 주소로 구성됩니다. 또한 서비스 태그는 다음과 같은 기능에 사용되는 SQL Database의 아웃바운드 트래픽과도 연결됩니다.

SqlManagement 서비스 태그

SqlManagement 서비스 태그는 SQL Database에 대한 컨트롤 플레인 운영에 사용됩니다.

Virtual Network 방화벽 규칙

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

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