Azure SQL Database 및 Azure Synapse Analytics 네트워크 액세스 제어
적용 대상:Azure SQL DatabaseAzure 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 Portal, PowerShell 또는 T-SQL 명령(예: sp_set_firewall_rule)을 통해 구성할 수 있습니다.
- 데이터베이스 수준 방화벽 규칙: 이러한 규칙은 개별 데이터베이스에 적용되며 sp_set_database_firewall_rule 같은 T-SQL 명령을 사용하여 구성할 있습니다.
다음은 방화벽 규칙 이름을 지정하기 위한 제약 조건입니다.
- 방화벽 규칙 이름은 비워 둘 수 없습니다.
- 다음 문자를 포함할 수 없습니다.
<, >, *, %, &, :, \\, /, ?.
- 마침표(.)로 끝날 수 없습니다.
- 방화벽 규칙 이름은 128자를 초과할 수 없습니다.
이러한 제약 조건을 충족하지 않는 방화벽 규칙을 만들려는 시도는 오류 메시지와 함께 실패합니다. 기존 IP 기반 방화벽 규칙을 수정하는 데는 최대 5분이 걸릴 수 있습니다.
Azure 서비스 허용
Azure Portal에서 새 논리 서버를 만드는 동안은 기본적으로 Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용 설정이 선택되지 않고 사용 안 함으로 지정됩니다. 이 설정은 퍼블릭 엔드포인트를 통해 연결을 허용하는 경우에 나타납니다.
다음과 같이 논리 서버를 만든 후 네트워킹 설정을 통해 이 설정을 변경할 수도 있습니다.
Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용을 사용하도록 설정하면 서버는 구독에 속할 수도 있고 속하지 않을 수도 있는 Azure 경계 내의 모든 리소스로부터의 통신을 허용합니다. 백그라운드에서 0.0.0.0
IP 주소로 시작하고 끝나는 특수 서버 수준 방화벽 규칙이 추가됩니다.
대부분의 경우, 이 설정을 사용 설정하는 것이 대부분의 고객이 원하는 것보다 더 관용적입니다. 이 설정을 선택 해제하고 더 제한적인 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의 아웃바운드 트래픽과도 연결됩니다.
- 감사
- 취약점 평가
- 가져오기/내보내기 서비스
- OPENROWSET
- 대량 삽입
- sp_invoke_external_rest_endpoint
- 원장
- 고객 관리형 키를 사용한 Azure SQL 투명한 데이터 암호화
SqlManagement 서비스 태그
SqlManagement 서비스 태그는 SQL Database에 대한 컨트롤 플레인 운영에 사용됩니다.
Virtual Network 방화벽 규칙
가상 네트워크 방화벽 규칙은 VM이 포함된 특정 서브넷의 액세스를 설정하고 관리하는 보다 쉬운 방법입니다.
Private Link
Private Link를 사용하면 프라이빗 엔드포인트를 통해 서버에 연결할 수 있습니다. 프라이빗 엔드포인트는 특정 가상 네트워크 및 서브넷 내의 개인 IP 주소입니다.
관련 콘텐츠
서버 수준 IP 방화벽 규칙 만드는 방법에 대한 빠른 시작은 SQL Database에서 데이터베이스 만들기를 참조하세요.
서버 수준 가상 네트워크 방화벽 규칙을 만드는 방법에 대한 빠른 시작은 Azure SQL Database에 대한 가상 네트워크 서비스 엔드포인트 및 규칙을 참조하세요.
오픈 소스 또는 파트너 응용 프로그램에서 SQL Database의 데이터베이스에 연결하는 방법에 대한 도움말은 SQL Database에 대한 클라이언트 빠른 시작 코드 샘플을 참조하세요.
열어야 할 수 있는 다른 포트에 대한 자세한 내용은 ADO.NET 4.5와 SQL Database에 대한 1433 이외 포트의 SQL Database: 내부 및 외부 섹션을 참조하세요.
Azure SQL Database 연결에 대한 개요는 Azure SQL 연결 아키텍처를 참조하세요.
Azure SQL Database 보안 개요는 데이터베이스 보안 설정을 참조하세요.