이 문서에서는 전용 SQL 풀(이전의 SQL DW)을 보호하는 기본 사항을 안내합니다. 특히 이 문서에서는 전용 SQL 풀(이전의 SQL DW)을 사용하여 액세스를 제한하고, 데이터를 보호하고, 활동을 모니터링하기 위한 리소스를 시작합니다.
연결 보안
연결 보안은 방화벽 규칙 및 연결 암호화를 사용하여 데이터베이스에 대한 연결을 제한하고 보호하는 방법을 나타냅니다.
방화벽 규칙은 논리적 SQL 서버 와 해당 데이터베이스 모두에서 명시적으로 승인되지 않은 IP 주소의 연결 시도를 거부하는 데 사용됩니다. 애플리케이션 또는 클라이언트 컴퓨터의 공용 IP 주소에서 연결을 허용하려면 먼저 Azure Portal, REST API 또는 PowerShell을 사용하여 서버 수준 방화벽 규칙을 만들어야 합니다.
가장 좋은 방법은 서버 수준 방화벽을 통해 허용되는 IP 주소 범위를 최대한 제한해야 합니다. 로컬 컴퓨터에서 전용 SQL 풀(이전의 SQL DW)에 액세스하려면 네트워크 및 로컬 컴퓨터의 방화벽이 TCP 포트 1433에서 나가는 통신을 허용하는지 확인합니다.
전용 SQL 풀(이전의 SQL DW)은 서버 수준 IP 방화벽 규칙을 사용합니다. 데이터베이스 수준의 IP 방화벽 규칙을 지원하지 않습니다. 자세한 내용은 Azure SQL Database 방화벽 규칙을 참조하세요.
전용 SQL 풀(이전의 SQL DW)에 대한 연결은 기본적으로 암호화됩니다. 암호화를 사용하지 않도록 연결 설정을 수정하는 작업은 무시됩니다.
인증
인증은 데이터베이스에 연결할 때 ID를 증명하는 방법을 나타냅니다. 전용 SQL 풀(이전의 SQL DW)은 현재 사용자 이름 및 암호 및 Microsoft Entra ID를 사용하여 SQL Server 인증을 지원합니다.
데이터베이스에 대한 서버를 만들 때 사용자 이름과 암호를 사용하여 "서버 관리자" 로그인을 지정했습니다. 이러한 자격 증명을 사용하여 해당 서버의 모든 데이터베이스에 데이터베이스 소유자로 인증하거나 SQL Server 인증을 통해 "dbo"를 인증할 수 있습니다.
그러나 조직의 사용자는 다른 계정을 사용하여 인증하는 것이 가장 좋습니다. 이렇게 하면 애플리케이션에 부여된 권한을 제한하고 애플리케이션 코드가 SQL 삽입 공격에 취약한 경우 악의적인 활동의 위험을 줄일 수 있습니다.
SQL Server 인증된 사용자를 만들려면 서버 관리자 로그인을 사용하여 서버의 마스터 데이터베이스에 연결하고 새 서버 로그인을 만듭니다. master 데이터베이스에서 사용자를 만드는 것도 좋습니다. master에서 사용자를 만들면 사용자가 데이터베이스 이름을 지정하지 않고도 SSMS와 같은 도구를 사용하여 로그인할 수 있습니다. 또한 개체 탐색기를 사용하여 서버의 모든 데이터베이스를 볼 수 있습니다.
-- Connect to master database and create a login
CREATE LOGIN ApplicationLogin WITH PASSWORD = 'Str0ng_password';
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;
그런 다음 서버 관리자 로그인을 사용하여 전용 SQL 풀(이전의 SQL DW) 에 연결하고 사용자가 만든 서버 로그인에 따라 데이터베이스 사용자를 만듭니다.
-- Connect to the database and create a database user
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;
사용자에게 로그인 만들기 또는 새 데이터베이스 만들기와 같은 추가 작업을 수행할 수 있는 권한을 부여하려면 마스터 데이터베이스의 Loginmanager
역할 및 dbmanager
사용자에 할당합니다.
이러한 추가 역할 및 SQL Database 인증에 대한 자세한 내용은 Azure SQL Database에서 데이터베이스 및 로그인 관리를 참조하세요. Microsoft Entra ID를 사용하여 연결하는 방법에 대한 자세한 내용은 Microsoft Entra 인증을 사용하여 연결을 참조하세요.
승인
권한 부여는 인증 및 연결되면 데이터베이스 내에서 수행할 수 있는 작업을 나타냅니다. 권한 부여 권한은 역할 멤버 자격 및 권한에 따라 결정됩니다. 모범 사례로 사용자에게 필요한 최소 권한을 부여해야 합니다. 역할을 관리하려면 다음 저장 프로시저를 사용할 수 있습니다.
EXEC sp_addrolemember 'db_datareader', 'ApplicationUser'; -- allows ApplicationUser to read data
EXEC sp_addrolemember 'db_datawriter', 'ApplicationUser'; -- allows ApplicationUser to write data
연결하려는 서버 관리자 계정은 데이터베이스 내에서 모든 작업을 수행할 권한이 있는 db_owner 구성원입니다. 스키마 업그레이드 및 기타 관리 작업을 배포하기 위해 이 계정을 저장합니다. 애플리케이션에 필요한 최소 권한으로 애플리케이션에서 데이터베이스에 연결하려면 더 제한된 권한으로 "ApplicationUser" 계정을 사용합니다.
사용자가 데이터베이스 내에서 수행할 수 있는 작업을 추가로 제한하는 방법이 있습니다.
- 세분화된 사용 권한을 사용하면 데이터베이스의 개별 열, 테이블, 뷰, 스키마, 프로시저 및 기타 개체에서 수행할 수 있는 작업을 제어할 수 있습니다. 세분화된 사용 권한을 사용하여 가장 많은 제어 권한을 가지며 필요한 최소 권한을 부여합니다.
- db_datareader 및 db_datawriter 이외의 데이터베이스 역할을 사용하여 더 강력한 애플리케이션 사용자 계정 또는 덜 강력한 관리 계정을 만들 수 있습니다. 기본 제공 고정 데이터베이스 역할은 사용 권한을 쉽게 부여할 수 있지만 필요한 것보다 더 많은 권한을 부여할 수 있습니다.
- 저장 프로시저를 사용하여 데이터베이스에서 수행할 수 있는 작업을 제한할 수 있습니다.
다음 예제에서는 사용자 정의 스키마에 대한 읽기 권한을 부여합니다.
--CREATE SCHEMA Test
GRANT SELECT ON SCHEMA::Test to ApplicationUser
Azure Portal에서 또는 Azure Resource Manager API를 사용하여 데이터베이스 및 서버를 관리하는 것은 포털 사용자 계정의 역할 할당에 의해 제어됩니다. 자세한 내용은 Azure Portal을 사용하여 Azure 역할 할당을 참조하십시오.
암호화
TDE(투명한 데이터 암호화)는 미사용 데이터를 암호화하고 암호 해독하여 악의적인 활동의 위협으로부터 보호하는 데 도움이 됩니다. 데이터베이스를 암호화하면 애플리케이션을 변경하지 않고도 연결된 백업 및 트랜잭션 로그 파일이 암호화됩니다. TDE는 데이터베이스 암호화 키라는 대칭 키를 사용하여 전체 데이터베이스의 스토리지를 암호화합니다.
SQL Database에서 데이터베이스 암호화 키는 기본 제공 서버 인증서로 보호됩니다. 기본 제공 서버 인증서는 각 서버에 대해 고유합니다. Microsoft는 적어도 90일마다 이러한 인증서를 자동으로 회전합니다. 사용되는 암호화 알고리즘은 AES-256입니다. TDE에 대한 일반적인 설명은 투명한 데이터 암호화를 참조하세요.
Azure Portal 또는 T-SQL을 사용하여 데이터베이스를 암호화할 수 있습니다.
다음 단계
다른 프로토콜을 사용하여 웨어하우스에 연결하는 자세한 내용 및 예제는 전용 SQL 풀에 연결(이전의 SQL DW)을 참조하세요.