Tip
Microsoft Fabric Data Warehouse는 데이터 레이크 기반의 엔터프라이즈 규모 관계형 웨어하우스로, 미래 대비 아키텍처, 기본 제공 AI 및 새로운 기능을 제공합니다. 데이터 웨어하우징이 처음이라면, Fabric Data Warehouse부터 시작하세요. 기존 전용 SQL 풀 워크로드는 업그레이드하면 Fabric을 통해 데이터 과학, 실시간 분석 및 보고 전반에 걸쳐 새로운 기능에 액세스할 수 있습니다.
적용 대상: Azure Synapse Analytics 전용 SQL 풀(이전의 SQL DW)
투명한 데이터 암호화(TDE)은 데이터베이스 파일, 트랜잭션 로그 파일, 백업을 미사용 상태에서 암호화하여 전용 SQL 풀을 악성 오프라인 활동으로부터 보호합니다. 암호화와 복호화는 실시간으로 이루어지며 애플리케이션 변경이 필요하지 않습니다.
Azure Synapse Analytics 독립형 전용 SQL 풀에서는 반드시 TDE를 수동으로 활성화해야 합니다.
TDE를 통해 페이지 수준에서 데이터의 실시간 I/O 암호화 및 암호 해독을 수행합니다. 각 페이지는 메모리로 읽을 때 해독된 다음, 디스크에 쓰기 전에 암호화됩니다. TDE는 DEK(데이터베이스 암호화 키)라는 대칭 키를 사용하여 전체 데이터베이스의 스토리지를 암호화합니다. 데이터베이스 시작 시 암호화된 DEK는 암호 해독된 후 SQL Server 데이터베이스 엔진 프로세스의 데이터베이스 파일을 암호 해독 및 재암호화하는 데 사용됩니다. TDE 프로텍터는 DEK를 보호합니다. TDE 보호기는 서비스 관리 인증서(서비스 관리 투명 데이터 암호화)일 수 있습니다.
Azure Synapse의 경우, TDE 프로텍터를 서버 수준에서 설정하면 해당 서버와 연관된 모든 데이터베이스가 이를 상속받습니다.
Note
이 글에서는 논리 서버에 호스팅된 독립형 전용 SQL 풀(이전 명칭: SQL DW)에 대해 다룹니다. Synapse 작업 공간 내 전용 SQL 풀에 대해서는 Azure Synapse Analytics 작업 공간의 암호화를 참조하세요.
TDE의 작동 원리
TDE는 대칭 데이터베이스 암호화 키(DEK)를 사용하여 데이터베이스 페이지를 암호화합니다. DEK는 데이터베이스 부팅 레코드에 저장되며, TDE 보호기가 이를 보호합니다. 프로텍터는 서비스 관리형 인증서입니다.
논리 서버에서 TDE 프로텍터를 설정하면 해당 서버의 전용 SQL 풀이 이를 상속받습니다. 각 페이지는 메모리에 읽을 때 복호화되어 저장 공간에 기록되기 전에 암호화됩니다.
서비스 관리형 TDE
Azure에서 TDE에 대한 기본 설정은 DEK가 기본 제공 서버 인증서로 보호되는 것입니다. 기본 제공 서버 인증서는 각 서버에 대해 고유하며 사용되는 암호화 알고리즘은 CBC(암호화 블록 체인) 모드의 AES 256입니다. 데이터베이스가 지역 복제 관계에 있는 경우 주 데이터베이스와 지역 보조 데이터베이스는 모두 주 데이터베이스의 부모 서버 키로 보호됩니다. 두 개의 데이터베이스가 동일한 서버에 연결되어 있으면 동일한 기본 제공 인증서도 공유합니다. Microsoft는 내부 보안 정책에 따라 1년에 한 번 이러한 인증서를 자동으로 회전하며 루트 키는 Microsoft 내부 비밀 저장소에 의해 보호됩니다. 고객은 Microsoft 보안 센터에서 제공하는 독립 타사 감사 보고서에서 내부 보안 정책에 대한 SQL Database 및 SQL Managed Instance 준수를 확인할 수 있습니다. 또한 Microsoft는 지역 복제 및 복원에 필요한 대로 키를 원활하게 이동하고 관리합니다.
고객 관리형 TDE
고객 관리 TDE에서는 보호기가 Azure Key Vault 또는 Azure Key Vault Managed HSM에서 고객이 제어하는 비대칭 키입니다. 키 생성, 접근 권한, 회전, 백업, 삭제를 직접 제어할 수 있습니다. 키는 키 저장소를 떠나지 않아.
논리 서버의 키 접근 권한을 취소하면 암호화된 전용 SQL 풀에 접근할 수 없게 됩니다. 키 저장소를 소프트 삭제, 영구 삭제 방지, 모니터링, 최소 권한 접근 방식으로 보호하세요.
Azure Synapse는 DEK를 복호화하고 암호화할 수 있도록 고객 소유의 키 볼트에 대한 권한을 부여받아야 합니다. Key Vault에 대한 서버의 권한이 철회되면 데이터베이스에 액세스할 수 없게 되고 모든 데이터가 암호화됩니다.
요구사항 및 권장 사항은 Azure Synapse Analytics의 Customer-managed TDE를 참조하세요.
투명한 데이터 암호화로 보호된 데이터베이스를 이동하기
Azure 내에서 작업용 데이터베이스를 해독할 필요가 없습니다. 원본 데이터베이스 또는 주 데이터베이스의 TDE 설정은 대상에서 투명하게 상속됩니다. 포함되는 작업은 다음과 같습니다.
- 지역 복원
- 셀프 서비스 특정 시점 복원
- 삭제된 데이터베이스 복원
- 활성 지리적 복제
- 데이터베이스 복사본 생성
TDE로 보호된 데이터베이스를 BACPAC 파일로 내보내면 데이터베이스의 내보낸 콘텐츠가 암호화되지 않습니다. 기존 빈 데이터베이스로 가져오는 경우 암호화는 해당 데이터베이스에서 TDE를 사용할 수 있는지 여부에 따라 달라집니다.
투명한 데이터 암호화 관리
Azure portal
TDE를 활성화하거나 비활성화하려면 Azure Portal에서 전용 SQL 풀을 열고 투명 데이터 암호화를 선택한 후 선택한 상태로 저장하세요. 고객 관리 프로텍터를 구성하려면 논리 서버에서 투명 데이터 암호화를 열고 Azure Key Vault에서 키를 선택하세요. 사용자 데이터베이스에서 TDE 설정을 찾습니다. 기본값으로 서버 수준 암호화 키가 사용됩니다. TDE 인증서는 데이터베이스가 포함된 서버에 대해 자동으로 생성됩니다.
PowerShell
PowerShell을 사용하여 TDE를 관리합니다.
Important
Az 모듈은 AzureRM바꿉니다. 향후의 모든 개발은 Az.Sql 모듈을 위한 것입니다.
PowerShell을 통해 TDE를 구성하려면 Azure 소유자, 참가자 또는 SQL 보안 관리자로 연결되어 있어야 합니다.
다음 Az.SQL 명령어를 사용하세요:
| Cmdlet (커맨드렛) | Purpose |
|---|---|
| Set-AzSqlDatabaseTransparentDataEncryption | 전용 SQL 풀에 대해 TDE를 활성화하거나 비활성화하세요. |
| Get-AzSqlDatabaseTransparentDataEncryption | 현재 TDE 상태를 확인하세요. |
| Add-AzSqlServerKeyVaultKey | 논리 서버에 키를 추가하세요. |
| Get-AzSqlServerKeyVaultKey | 논리 서버에서 사용할 수 있는 키를 나열합니다 |
| Set-AzSqlServerTransparentDataEncryptionProtector | 서버의 TDE 프로텍터를 설정하세요. |
| Get-AzSqlServerTransparentDataEncryptionProtector | 현재 TDE 보호기를 가져옵니다. |
| Remove-AzSqlServerKeyVaultKey | 논리 서버에서 키를 제거하세요. |
Transact-SQL
Transact-SQL을 사용하여 TDE를 관리합니다.
데이터베이스에서 master 역할의 관리자 또는 멤버로 로그인하여 데이터베이스에 연결합니다.
| Command | Description |
|---|---|
| ALTER DATABASE(Azure SQL Database) |
SET ENCRYPTION ON/OFF 데이터베이스를 암호화하거나 복호화합니다 |
| sys.dm_database_encryption_keys | 데이터베이스 및 연결된 해당 데이터베이스 암호화 키의 암호화 상태에 대한 정보를 반환합니다. |
| sys.dm_pdw_nodes_database_encryption_keys | 각 Azure Synapse 노드 및 연결된 해당 데이터베이스 암호화 키의 암호화 상태에 대한 정보를 반환합니다. |
Transact-SQL을 사용해서 Azure Key Vault의 키로 TDE 프로텍터를 전환할 수 없습니다. 대신 PowerShell 또는 Azure Portal을 사용합니다.
REST API
다음 SQL 관리 자원은 논리 서버와 전용 SQL 풀에 적용됩니다.
REST API를 통해 TDE를 구성하려면 Azure 소유자, 참가자 또는 SQL 보안 관리자로 연결되어 있어야 합니다.
Azure Synapse Analytics 독립형 전용 SQL 풀에 대해 다음 명령어 집합을 사용하세요:
| Command | Description |
|---|---|
| 서버 만들기 또는 업데이트 | Microsoft Entra ID(이전의 Azure Active Directory)의 ID를 서버에 추가합니다. (Azure Key Vault에 대한 액세스 권한을 부여하는 데 사용됨) |
| 서버 키 만들기 또는 업데이트 | 서버에 Azure Key Vault 키를 추가합니다. |
| 서버 키 삭제 | 서버에서 Azure Key Vault 키를 제거합니다. |
| 서버 키 가져오기 | 서버에서 특정 Azure Key Vault 키를 가져옵니다. |
| 서버별 서버 키 나열 | 서버에 대한 Azure Key Vault 키를 가져옵니다. |
| 암호화 보호기 만들기 또는 업데이트 | 서버에 대한 TDE 보호기를 설정합니다. |
| 암호화 보호기 가져오기 | 서버에 대한 TDE 보호기를 가져옵니다. |
| 서버별 암호화 보호기 나열 | 서버에 대한 TDE 보호기를 가져옵니다. |
| 투명한 데이터 암호화 구성 만들기 또는 업데이트 | 데이터베이스에 대해 TDE를 사용하거나 사용하지 않도록 설정합니다. |
| 투명한 데이터 암호화 구성 가져오기 | 데이터베이스에 대한 TDE 구성을 가져옵니다. |
| 투명한 데이터 암호화 구성 결과 나열 | 데이터베이스에 대한 암호화 결과를 가져옵니다. |