투명한 데이터 암호화 살펴보기

완료됨

Microsoft SQL Server의 TDE(투명한 데이터 암호화)는 페이지 수준에서 대상 데이터베이스 내의 모든 데이터를 암호화합니다. 데이터는 디스크의 데이터 페이지에 기록되고 메모리로 읽을 때 해독되므로 암호화되므로 디스크의 모든 데이터 페이지가 암호화됩니다.

TDE는 테이블 또는 열 수준에서 데이터를 암호화하지 않습니다. 적절한 권한이 있는 모든 사용자는 데이터를 읽고, 복사하고, 공유할 수 있습니다. 미사용 데이터 암호화는 보안되지 않은 서버에 백업을 복원하거나 데이터베이스 및 트랜잭션 로그 파일을 다른 보안되지 않은 서버로 복사하지 않도록 보호합니다. 백업 작업 중에 암호 해독이 발생하지 않습니다.

TDE는 미사용 데이터를 보호하고 다양한 업계 법률, 규정 및 지침을 준수합니다. 이를 통해 소프트웨어 개발자는 기존 애플리케이션을 변경하지 않고 AES 및 3DES 암호화 알고리즘을 사용하여 데이터를 암호화할 수 있습니다.

투명한 데이터 암호화 아키텍처를 보여 주는 다이어그램

2017년 5월 이후에 Azure SQL Database에서 만든 데이터베이스에는 TDE가 자동으로 사용하도록 설정됩니다. 2017년 5월 이전에 만든 데이터베이스는 TDE를 수동으로 사용하도록 설정해야 합니다. Azure SQL Managed Instance의 경우 TDE는 2019년 2월 이후에 만든 데이터베이스에 대해 기본적으로 사용하도록 설정됩니다. 2019년 2월 이전에 만든 데이터베이스는 TDE를 수동으로 사용하도록 설정해야 합니다.

Azure SQL Database에서 TDE를 사용하도록 설정하려면 Azure Portal에서 데이터베이스를 편집합니다. 투명한 데이터 암호화 창에서 데이터 암호화를 사용하도록 선택합니다.

Azure SQL Database에 대한 투명한 데이터 암호화 설정을 보여 주는 스크린샷

기본적으로 Azure SQL Database의 데이터베이스는 Microsoft에서 제공하는 인증서(서비스 관리형 키)를 사용하여 암호화됩니다. 또한 Azure는 BYOK(Bring Your Own Key) 옵션을 제공하여 회사에서 만들고 Azure Key Vault에 업로드한 고객 관리형 키를 사용할 수 있도록 합니다. 고객 관리형 키가 Azure에서 제거되면 데이터베이스 연결이 닫히고 데이터베이스에 대한 액세스가 거부됩니다.

몇 가지 T-SQL 명령만 필요하므로 Microsoft SQL Server 데이터베이스 내에서 TDE를 사용하도록 설정하는 것은 쉬운 프로세스입니다. 이 프로세스에는 다음 단계가 포함됩니다.

  1. CREATE MASTER KEY ENCRYPTION 명령을 사용하여 master 데이터베이스 내에서 마스터 키를 설정합니다.
  2. 명령을 사용하여 master 데이터베이스에 인증서를 만듭니다 CREATE CERTIFICATE .
  3. 명령을 사용하여 데이터베이스 내에서 데이터베이스 암호화 키를 만듭니다 CREATE DATABASE ENCRYPTION KEY .
  4. 명령을 사용하여 암호화 키를 사용하도록 ALTER DATABASE 설정합니다.
USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<your-pwd>';
GO

CREATE CERTIFICATE MyServerCert
    WITH SUBJECT = 'TDEDemo_Certificate';
GO

USE [TDE_Demo];
GO

CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO

ALTER DATABASE TDE_Demo SET ENCRYPTION ON;
GO

TDE를 사용하도록 설정하면 각 페이지를 읽고 암호화하고 디스크에 다시 기록해야 하므로 데이터베이스를 암호화하는 데 시간이 걸립니다. 데이터베이스가 클수록 이 프로세스가 더 오래 걸립니다. 이 백그라운드 프로세스는 시스템의 I/O 또는 CPU 오버로드를 방지하기 위해 낮은 우선 순위로 실행됩니다.

TDE에서 사용하는 인증서는 수동으로 백업하고 안전하게 저장해야 합니다. SQL Server는 Azure Key Vault와 같은 EKM(Enterprise Key Manager)과 통합하여 암호화 키를 관리합니다. 인증서가 손실되고 백업에서 데이터베이스를 복원해야 하는 경우 데이터베이스를 읽을 수 없으므로 복원이 실패하기 때문에 인증서를 관리하는 것이 중요합니다.

참고

Always On 가용성 그룹의 데이터베이스에서 TDE를 사용하려면 데이터베이스를 암호화하는 데 사용되는 인증서를 데이터베이스의 복사본을 호스팅할 가용성 그룹의 다른 서버로 백업하고 복원해야 합니다.

고객 관리형 키

또는 BYOK를 사용하고 Azure Key Vault를 활용할 수 있습니다. 고객 관리형 키를 사용할 때의 이점은 다음과 같습니다.

  • TDE 보호기의 사용 및 관리를 완벽하게 세부적으로 제어
  • TDE 보호기 사용의 투명성
  • 조직 내 키 및 데이터 관리에서 업무 분리를 구현할 수 있음
  • Key Vault 관리자가 키 액세스 권한을 해지하여 암호화된 데이터베이스에 액세스할 수 없도록 설정할 수 있음
  • AKV의 키 중앙 관리
  • AKV는 Microsoft가 암호화 키를 보거나 추출할 수 없도록 디자인되었으므로 최종 고객의 신뢰가 향상됨

TDE를 위한 고객 관리형 키와 함께 사용자 할당 관리 ID (UMI)를 활용할 수도 있습니다.

  • 사용자 할당 관리 ID를 만들고 서버 또는 데이터베이스를 만들기 전에 키 자격 증명 모음에 대한 액세스 권한을 부여하여 Azure SQL 논리 서버에 대한 키 자격 증명 모음 액세스를 미리 인증할 수 있습니다.
  • TDE 및 CMK를 사용하도록 설정된 Azure SQL 논리 서버를 만들 수 있습니다.
  • 동일한 사용자 할당 관리 ID를 여러 서버에 할당할 수 있으므로 각 Azure SQL 논리 서버에 대해 시스템 할당 관리 ID를 개별적으로 설정하여 키 자격 증명 모음에 액세스 권한을 부여할 필요가 없습니다.
  • 사용 가능한 기본 제공 Azure 정책을 사용하여 서버 생성 시 CMK를 적용하는 기능을 제공합니다.

TDE를 사용하는 고객 관리형 키에 대해 자동 키 회전이 도입되었습니다. 사용하도록 설정하면 서버는 TDE 보호기로 사용되는 키의 새 버전에 대해 키 자격 증명 모음을 지속적으로 확인합니다. 새 버전의 키가 검색되면 서버의 TDE 보호기가 60분 이내에 자동으로 최신 키 버전으로 회전됩니다.

Azure Disk Encryption

이러한 SQL Server 보안 기능 외에도 Azure VM에는 추가 보안 계층​​인 Azure Disk Encryption이 포함되어 있습니다. 이 기능은 데이터를 보호하고 보안을 설정하며 조직 및 규정 준수 약정을 충족하는 데 유용합니다. TDE를 사용하는 경우 데이터는 Azure Disk Encryption을 사용하여 여러 계층의 암호화로 보호됩니다.