SQL Database, SQL Managed Instance, Azure Synapse Analytics에 대한 투명한 데이터 암호화
적용 대상: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
TDE(투명한 데이터 암호화)는 미사용 데이터를 암호화하여 악의적인 오프라인 작업의 위협으로부터 Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics를 보호하는 데 도움이 됩니다. 애플리케이션에 대한 변경 없이 미사용 데이터베이스, 연결된 백업 및 트랜잭션 로그 파일의 실시간 암호화 및 암호 해독을 수행합니다. 기본적으로 TDE는 새로 배포된 모든 Azure SQL 데이터베이스에 대해 사용하도록 설정되며, Azure SQL Database의 이전 데이터베이스에 대해서는 수동으로 사용하도록 설정해야 합니다. Azure SQL Managed Instance의 경우 TDE는 인스턴스 수준 및 새로 만들어진 데이터베이스에서 사용하도록 설정됩니다. Azure Synapse Analytics에 대해 TDE를 수동으로 사용하도록 설정해야 합니다.
참고
이 문서는 Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics(전용 SQL 풀(이전의 SQL DW))에 적용됩니다. Synapse 작업 영역 내의 전용 SQL 풀을 위한 투명한 데이터 암호화에 대한 문서는 Azure Synapse Analytics 암호화를 참조하세요.
테이블 이름, 개체 이름 및 인덱스 이름과 같이 고객 콘텐츠로 간주되는 일부 항목은 Microsoft의 지원 및 문제 해결을 위해 로그 파일로 전송될 수 있습니다.
TDE를 통해 페이지 수준에서 데이터의 실시간 I/O 암호화 및 암호 해독을 수행합니다. 각 페이지는 메모리로 읽을 때 해독된 다음, 디스크에 쓰기 전에 암호화됩니다. TDE는 DEK(데이터베이스 암호화 키)라는 대칭 키를 사용하여 전체 데이터베이스의 스토리지를 암호화합니다. 데이터베이스 시작 시 암호화된 DEK는 암호 해독된 후 SQL Server 데이터베이스 엔진 프로세스의 데이터베이스 파일을 암호 해독 및 재암호화하는 데 사용됩니다. DEK는 TDE 보호기에 의해 보호됩니다. TDE 보호기는 서비스 관리 인증서(서비스 관리 투명한 데이터 암호화) 또는 Azure Key Vault 고객 관리형 투명한 데이터 암호화에 저장된 비대칭 키(Bring Your Own Key)입니다.
Azure SQL Database와 Azure Synapse의 경우 TDE 보호기는 서버 수준에서 설정되며 해당 서버와 연결된 모든 데이터베이스에서 상속됩니다. Azure SQL Managed Instance의 경우 TDE 보호기는 인스턴스 수준에서 설정되며 해당 인스턴스의 모든 암호화된 데이터베이스에 의해 상속됩니다. 서버라는 용어는 달리 언급하지 않는 한, 이 문서 전체에서 서버와 인스턴스를 모두 나타냅니다.
Important
새로 생성한 모든 SQL Database는 기본값으로 서비스 관리형 투명한 데이터 암호화를 사용하여 암호화됩니다. 데이터베이스 원본이 암호화되면 복원, 지역 복제 및 데이터베이스 복사본을 통해 생성한 대상 데이터베이스는 기본값으로 암호화됩니다. 그러나 데이터베이스 원본이 암호화되지 않으면 복원, 지역 복제 및 데이터베이스 복사본을 통해 생성한 대상 데이터베이스는 기본값으로 암호화되지 않습니다. 2017년 5월 이전에 생성한 기존 SQL Database 및 2019년 2월 이전에 생성한 기존 SQL Managed Instance 데이터베이스는 기본적으로 암호화되지 않습니다. 복원을 통해 만든 SQL Managed Instance 데이터베이스는 원본에서 암호화 상태를 상속합니다. 기존 TDE로 암호화된 데이터베이스를 복원하려면 먼저 필요한 TDE 인증서를 SQL Managed Instance로 가져와야 합니다. 데이터베이스에 대한 암호화 상태를 확인하려면 sys.dm_database_encryption_keys DMV에서 선택 쿼리를 실행하고 encryption_state_desc
열의 상태를 검사합니다.
참고 항목
TDE는 SQL Database 및 SQL Managed Instance에서 master
데이터베이스와 같은 시스템 데이터베이스를 암호화하는 데 사용할 수 없습니다. master
데이터베이스에는 사용자 데이터베이스에서 TDE 작업을 수행하는 데 필요한 개체가 포함되어 있습니다. 중요한 데이터를 시스템 데이터베이스에 저장하지 않는 것이 좋습니다. 예외는 tempdb
이며, 항상 TDE를 사용하여 암호화되어 저장된 데이터를 보호합니다.
서비스 관리 투명한 데이터 암호화
Azure에서 TDE에 대한 기본 설정은 DEK가 기본 제공 서버 인증서로 보호되는 것입니다. 기본 제공 서버 인증서는 각 서버에 대해 고유하며, 사용되는 암호화 알고리즘은 AES 256입니다. 데이터베이스가 지역 복제 관계에 있는 경우 주 데이터베이스와 지역 보조 데이터베이스는 모두 주 데이터베이스의 부모 서버 키로 보호됩니다. 두 개의 데이터베이스가 동일한 서버에 연결되어 있으면 동일한 기본 제공 인증서도 공유합니다. Microsoft는 내부 보안 정책에 따라 이러한 인증서를 자동으로 회전하며, 루트 키는 Microsoft 내부 비밀 저장소를 통해 보호됩니다. 고객은 Microsoft 보안 센터에서 제공하는 독립 타사 감사 보고서에서 내부 보안 정책에 대한 SQL Database 및 SQL Managed Instance 준수를 확인할 수 있습니다.
또한 Microsoft는 지역 복제 및 복원에 필요한 대로 키를 원활하게 이동하고 관리합니다.
고객 관리형 투명한 데이터 암호화 - Bring Your Own Key
고객 관리형 TDE는 TDE를 위한 BYOK(Bring Your Own Key) 지원이라고도 합니다. 이 시나리오에서 DEK를 암호화하는 TDE 보호기는 고객이 소유 및 관리하는 Azure Key Vault(Azure의 클라우드 기반 외부 키 관리 시스템)에 저장되고 키 자격 증명 모음을 벗어날 수 없는 고객 관리형 비대칭 키입니다. TDE 보호기는 키 자격 증명 모음에 의해 생성되거나 온-프레미스 HSM(하드웨어 보안 모듈) 디바이스에서 키 자격 증명 모음으로 전송될 수 있습니다. DEK를 해독하고 암호화하려면 SQL Database, SQL Managed Instance, Azure Synapse에 고객 소유 키 자격 증명 모음에 대한 권한을 부여해야 합니다. Key Vault에 대한 서버의 권한이 철회되면 데이터베이스에 액세스할 수 없게 되고 모든 데이터가 암호화됩니다.
TDE와 Azure Key Vault가 통합되면 사용자는 키 회전, Key Vault 권한, 키 백업을 포함한 키 관리 작업을 제어하고, Azure Key Vault 기능을 사용하여 모든 TDE 보호기에 감사/보고를 사용하도록 설정할 수 있습니다. Key Vault는 중앙 집중식 키 관리를 제공하고, 철저하게 모니터링되는 HSM을 활용하고, 보안 정책 규정을 준수하도록 키 관리와 데이터 관리의 책임을 분리합니다. Azure SQL Database 및 Azure Synapse의 BYOK에 대한 자세한 내용은 Azure Key Vault 통합을 통한 투명한 데이터 암호화를 참조하세요.
Azure Key Vault 통합을 사용하는 TDE 지원 사용을 시작하려면 Key Vault에서 사용자 고유 키를 사용하여 투명한 데이터 암호화 설정 방법 가이드를 확인하세요.
투명한 데이터 암호화로 보호된 데이터베이스 이동
Azure 내에서 작업용 데이터베이스를 해독할 필요가 없습니다. 원본 데이터베이스 또는 주 데이터베이스의 TDE 설정은 대상에서 투명하게 상속됩니다. 포함되는 작업은 다음과 같습니다.
- 지역 복원
- 셀프 서비스 특정 시점 복원
- 삭제된 데이터베이스 복원
- 활성 지리적 복제
- 데이터베이스 복사본 생성
- Azure SQL Managed Instance에 백업 파일 복원
중요
암호화에 사용되는 인증서에 액세스할 수 없으므로 Azure SQL Managed Instance에서는 서비스 관리 TDE로 암호화된 데이터베이스에 대한 COPY-ONLY(복사 전용) 수동 백업은 지원되지 않습니다. 특정 시점 복원 기능을 사용하여 이러한 유형의 데이터베이스를 다른 SQL Managed Instance로 이동하거나 고객 관리형 키로 전환합니다.
TDE로 보호된 데이터베이스를 내보낼 때 데이터베이스의 내보낸 콘텐츠는 암호화되지 않습니다. 이 내보낸 콘텐츠는 암호화되지 않은 BACPAC 파일에 저장됩니다. 새 데이터베이스 가져오기가 완료되면 BACPAC 파일을 적절하게 보호하고 TDE를 사용하도록 설정해야 합니다.
예를 들어 SQL Server 인스턴스에서 BACPAC 파일을 내보낸 경우 가져온 새 데이터베이스의 콘텐츠가 자동으로 암호화되지 않습니다. 마찬가지로 BACPAC 파일을 SQL Server 인스턴스로 가져온 경우 새 데이터베이스도 자동으로 암호화되지 않습니다.
데이터베이스를 내보내는 한 가지 예외는 SQL Database 간에 내보내는 경우입니다. 새 데이터베이스에서 TDE를 사용하도록 설정되지만 BACPAC 파일 자체는 여전히 암호화되지 않습니다.
투명한 데이터 암호화 관리
Azure Portal에서 TDE를 관리합니다.
Azure Portal을 통해 TDE를 구성하려면 Azure 소유자, 참가자 또는 SQL 보안 관리자로 연결되어 있어야 합니다.
데이터베이스 수준에서 TDE를 사용하거나 사용하지 않도록 설정합니다. Azure SQL Managed Instance의 경우 T-SQL(Transact-SQL)을 사용하여 데이터베이스에서 TDE를 설정 및 해제합니다. Azure SQL Database 및 Azure Synapse의 경우 Azure 관리자 또는 참가자 계정으로 로그인한 후 Azure Portal에서 데이터베이스에 대한 TDE를 관리할 수 있습니다. 사용자 데이터베이스에서 TDE 설정을 찾습니다. 기본값으로 서버 수준 암호화 키가 사용됩니다. TDE 인증서는 데이터베이스가 포함된 서버에 대해 자동으로 생성됩니다.
서버 또는 인스턴스 수준에서 TDE 보호기라는 TDE 마스터 키를 설정합니다. BYOK 기반 TDE 지원을 사용하고 Azure Key Vault의 키를 사용하여 데이터베이스를 보호하려면 서버 또는 관리형 인스턴스의 TDE 설정을 엽니다.
Azure SQL Database의 데이터베이스 수준에서 TDE에 대해 고객 관리형 키를 사용할 수도 있습니다. 자세한 내용은 데이터베이스 수준에서 고객 관리형 키 기반 TDE(투명한 데이터 암호화)를 참조하세요.