내보내기(0) 인쇄
모두 확장

Azure SQL 데이터베이스 방화벽

업데이트 날짜: 2014년 10월

Microsoft Azure SQL 데이터베이스는 Azure 및 기타 인터넷 기반 응용 프로그램에 대해 관계형 데이터베이스 서비스를 제공합니다. Azure SQL 데이터베이스 방화벽은 데이터를 보호하기 위해 사용 권한이 있는 컴퓨터를 지정할 때까지 Azure SQL 데이터베이스 서버에 대한 모든 액세스를 차단합니다. 방화벽은 각 요청의 원래 IP 주소를 기반으로 액세스를 허용합니다.

방화벽을 구성하려면 허용되는 IP 주소의 범위를 지정하는 방화벽 규칙을 만듭니다. 서버데이터베이스 수준의 방화벽 규칙을 만들 수 있습니다.

  • 서버 수준 방화벽 규칙: 이러한 규칙을 통해 클라이언트는 전체 Azure SQL 데이터베이스 서버, 즉 동일한 논리 서버 내 모든 데이터베이스에 액세스할 수 있습니다. 이러한 규칙은 master 데이터베이스에 저장됩니다.

  • 데이터베이스 수준 방화벽 규칙: 이러한 규칙을 통해 클라이언트는 Azure SQL 데이터베이스 서버 내 개별 데이터베이스에 액세스할 수 있습니다. 이러한 규칙은 각 데이터베이스마다 만들어지고 개별 데이터베이스(master 데이터베이스 포함)에 저장됩니다. 이러한 규칙은 동일한 논리 서버 내 특정 보안 데이터베이스에 대한 액세스를 제한하는 데 도움이 될 수 있습니다.



    note참고
    루트 데이터베이스에 데이터베이스 수준 방화벽 규칙이 있는 Azure SQL 데이터베이스에서 데이터베이스 페더레이션을 만들 경우 해당 규칙은 페더레이션 멤버 데이터베이스에 복사되지 않습니다. 페더레이션 멤버에 대해 데이터베이스 수준 방화벽 규칙이 필요한 경우 페더레이션 멤버에 대한 규칙을 다시 만들어야 합니다. 하지만 데이터베이스 수준 방화벽 규칙이 포함된 페더레이션 멤버를 ALTER FEDERATION … SPLIT 문을 사용하여 새 페더레이션 멤버로 분할할 경우 새 대상 멤버는 원본 페더레이션 멤버와 동일한 데이터베이스 수준 방화벽 규칙을 가집니다. 페더레이션에 대한 자세한 내용은 Azure SQL 데이터베이스의 페더레이션을 참조하십시오.

    현재 페더레이션 구현은 Web 및 Business와 함께 사용이 중지될 예정입니다. 확장성, 유동성 및 성능을 최대화하려면 사용자 지정 분할 솔루션을 배포하는 것이 좋습니다. 사용자 지정 분할에 대한 자세한 내용은 Azure SQL 데이터베이스 확장을 참조하십시오.

항목 내용

처음에는 Azure SQL 데이터베이스 서버에 대한 모든 액세스가 방화벽에 의해 차단됩니다. Azure SQL 데이터베이스 서버 사용을 시작하려면 Management 포털로 이동한 다음 Azure SQL 데이터베이스 서버에 액세스할 수 있도록 하나 이상의 서버 수준 방화벽 규칙을 지정해야 합니다. 방화벽 규칙을 사용하여 허용되는 인터넷의 IP 주소 범위와 Azure 응용 프로그램에서 Azure SQL 데이터베이스 서버에 연결할 수 있는지 여부를 지정합니다.

하지만 Azure SQL 데이터베이스 서버의 데이터베이스 중 하나에만 선택적으로 액세스 권한을 부여하려면 서버 수준 방화벽 규칙에 지정된 IP 주소 범위를 벗어나는 IP 주소 범위를 사용하여 필요한 데이터베이스에 대해 데이터베이스 수준 규칙을 만들고, 클라이언트의 IP 주소는 데이터베이스 수준 규칙에 지정된 범위 안에 있어야 합니다.

다음 다이어그램과 같이 인터넷 및 Azure의 연결 시도가 Azure SQL 데이터베이스 서버 또는 데이터베이스에 도달하려면 먼저 방화벽을 통과해야 합니다.

SQL 데이터베이스 방화벽이 서버에 대한 액세스 제한

컴퓨터에서 인터넷을 통해 데이터베이스 서버에 연결하려고 하면 방화벽에서 전체 서버 수준 및 필요한 경우 데이터베이스 수준 방화벽 규칙 집합을 기준으로 요청의 원래 IP 주소를 확인합니다.

  • 요청 IP 주소가 서버 수준 방화벽 규칙에 지정된 범위에 속할 경우 Azure SQL 데이터베이스 서버에 대한 연결이 승인됩니다.

  • 요청 IP 주소가 서버 수준 방화벽 규칙에 지정된 범위에 속하지 않을 경우 데이터베이스 수준 방화벽 규칙이 확인됩니다. 요청 IP 주소가 데이터베이스 수준 방화벽 규칙에 지정된 범위에 속할 경우 데이터베이스 수준 규칙이 일치하는 데이터베이스에만 연결이 승인됩니다.

  • 요청 IP 주소가 서버 수준 또는 데이터베이스 수준 방화벽 규칙에 지정된 범위에 속하지 않을 경우 연결 요청이 실패합니다.

note참고
로컬 컴퓨터에서 Azure SQL 데이터베이스에 액세스하려면 네트워크와 로컬 컴퓨터의 방화벽이 TCP 포트 1433에서 나가는 통신을 허용해야 합니다.

Azure의 응용 프로그램이 데이터베이스 서버에 연결을 시도하면 방화벽은 Azure 연결이 허용되는지를 확인합니다. 방화벽 설정에서 시작 주소와 끝 주소가 0.0.0.0이면 해당 연결이 허용되는 것입니다. 연결 시도가 허용되지 않으면 Azure SQL 데이터베이스 서버에 요청을 보낼 수 없습니다.

관리 포털에서 두 가지 방법으로 Azure로부터의 연결을 사용하도록 설정할 수 있습니다.

  • 새 서버를 만들 때 Windows Azure 서비스의 서버 액세스 허용 확인란을 선택합니다.

  • 서버의 구성허용된 서비스 섹션에서 Windows Azure 서비스에 대해 를 선택합니다.

관리 포털을 사용하거나 프로그래밍 방식(REST API 또는 Azure PowerShell 사용)으로 첫 번째 서버 수준 방화벽 설정을 만들 수 있습니다. 후속 서버 수준 방화벽 규칙도 이러한 방법 및 Transact-SQL을 사용하여 만들고 관리할 수 있습니다. 서버 수준 방화벽 규칙에 대한 자세한 내용은 방법: 방화벽 설정 구성(Azure SQL 데이터베이스)을 참조하세요.

첫 번째 서버 수준 방화벽을 구성한 후에는 특정 데이터베이스에 대한 액세스를 제한할 수 있습니다. 서버 수준 방화벽 규칙에 정의된 범위를 벗어나서 데이터베이스 수준 규칙에서 IP 주소 범위를 지정하면 데이터베이스 수준 범위의 IP 주소를 사용하는 클라이언트만 데이터베이스에 액세스할 수 있게 됩니다. 데이터베이스에는 최대 128개 데이터베이스 수준 방화벽 규칙을 사용할 수 있습니다. master 데이터베이스와 사용자 데이터베이스에 대한 데이터베이스 수준 방화벽 규칙은 Transact-SQL을 통해 만들고 관리할 수 있습니다. 자세한 내용은 방법: 방화벽 설정 구성(Azure SQL 데이터베이스)를 참조하십시오.

방화벽 규칙은 Azure 관리 포털에서 관리할 수 있을 뿐 아니라 Transact-SQL, REST API 및 Azure PowerShell을 사용하여 프로그래밍 방식으로 관리할 수도 있습니다. 아래 표에서는 이러한 각 방법에 사용할 수 있는 명령 집합을 설명합니다.

Transact-SQL

카탈로그 뷰/저장 프로시저

수준

설명

sys.firewall_rules

서버

현재 서버 수준 방화벽 규칙을 표시합니다.

sp_set_firewall_rule

서버

서버 수준 방화벽 규칙을 만들거나 업데이트합니다.

sp_delete_firewall_rule

서버

서버 수준 방화벽 규칙을 제거합니다.

sys.database_firewall_rules

데이터베이스

현재 데이터베이스 수준 방화벽 규칙을 표시합니다.

sp_set_database_firewall_rule

데이터베이스

데이터베이스 수준 방화벽 규칙을 만들거나 업데이트합니다.

sp_delete_database_firewall_rule

데이터베이스

데이터베이스 수준 방화벽 규칙을 제거합니다.

REST API

API

수준

설명

List Firewall Rules

서버

현재 서버 수준 방화벽 규칙을 표시합니다.

Create Firewall Rule

서버

서버 수준 방화벽 규칙을 만들거나 업데이트합니다.

Set Firewall Rule

서버

기존 서버 수준 방화벽 규칙의 속성을 업데이트합니다.

Delete Firewall Rule

서버

서버 수준 방화벽 규칙을 제거합니다.

Azure PowerShell

cmdlet

수준

설명

Get-AzureSqlDatabaseServerFirewallRule

서버

현재 서버 수준 방화벽 규칙을 반환합니다.

New-AzureSqlDatabaseServerFirewallRule

서버

새 서버 수준 방화벽 규칙을 만듭니다.

Set-AzureSqlDatabaseServerFirewallRule

서버

기존 서버 수준 방화벽 규칙의 속성을 업데이트합니다.

Remove-AzureSqlDatabaseServerFirewallRule

서버

서버 수준 방화벽 규칙을 제거합니다.

note참고
방화벽 설정을 적용하기 전에 5분 정도 지연될 수 있습니다.

Microsoft Azure SQL 데이터베이스 서비스에 대한 액세스가 예상대로 작동하지 않는 경우 다음 사항을 고려하십시오.

  • Local firewall configuration:: 컴퓨터에서 Azure SQL 데이터베이스에 액세스하려면 해당 컴퓨터에 TCP 포트 1433에 대한 방화벽 예외를 만들어야 할 수 있습니다.

  • NAT(네트워크 주소 변환): NAT로 인해 컴퓨터에서 Azure SQL 데이터베이스에 연결하는 데 사용되는 IP 주소가 컴퓨터의 IP 구성 설정에 표시되는 IP 주소와 다를 수 있습니다. 컴퓨터가 Azure에 연결하는 데 사용하는 IP 주소를 확인하려면 관리 포털에 로그인한 다음 데이터베이스를 호스트하는 서버의 구성 탭으로 이동합니다. 허용된 IP 주소 섹션에 현재 클라이언트 IP 주소가 표시됩니다. 이 컴퓨터의 서버 액세스를 허용하려면 허용된 IP 주소에 추가를 클릭합니다.

  • 허용 목록의 변경 내용이 아직 적용되지 않음: Azure SQL 데이터베이스 방화벽 구성의 변경 내용이 적용되기까지 최대 5분 정도 지연될 수 있습니다.

  • The login is not authorized or an incorrect password was used: 로그인에 Azure SQL 데이터베이스 서버에 대한 사용 권한이 없거나 사용한 암호가 잘못된 경우 Azure SQL 데이터베이스 서버 연결이 거부됩니다. 방화벽 설정을 만들어도 클라이언트는 서버 연결을 시도할 수 있을 뿐입니다. 서버 연결에 성공하려면 각 클라이언트가 필요한 보안 자격 증명을 제공해야 합니다. 로그인 준비에 대한 자세한 내용은 Azure SQL 데이터베이스에서 데이터베이스 및 로그인 관리를 참조하십시오.

  • 동적 IP 주소: 동적 IP 주소로 인터넷에 연결되어 있는데 방화벽을 통과하는 데 문제가 있는 경우 다음 해결 방법 중 하나를 시도할 수 있습니다.

    • ISP(인터넷 서비스 공급자)에 Azure SQL 데이터베이스 서버에 액세스하는 클라이언트 컴퓨터에 할당된 IP 주소 범위를 문의한 다음 해당 IP 주소 범위를 SQL 데이터베이스 방화벽 규칙으로 추가합니다.

    • 클라이언트 컴퓨터에 고정 IP 주소를 대신 가져온 다음 해당 IP 주소를 방화벽 규칙으로 추가합니다.

참고 항목

표시:
© 2014 Microsoft