메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

Microsoft SQL Server Transparent Data Encryption(TDE) 지원

Amazon RDS는 Microsoft SQL Server를 실행하는 DB 인스턴스에 저장된 데이터를 암호화하기 위하여 Transparent Data Encryption(TDE) 이용을 지원합니다. TDE는 스토리지에 데이터를 쓰기 전에 자동으로 데이터를 암호화한 뒤에 데이터를 스토리지에서 읽을 때 다시 자동으로 복호화합니다.

Amazon RDS는 다음 SQL Server 버전에 TDE를 지원합니다.

  • SQL Server 2016 Enterprise Edition

  • SQL Server 2014 Enterprise Edition

  • SQL Server 2012 Enterprise Edition

  • SQL Server 2008 R2 Enterprise Edition

SQL Server 기반 DB 인스턴스에서 TDE를 활성화하려면 해당 DB 인스턴스와 연동되어 있는 Amazon RDS 옵션 그룹에서 TDE 옵션을 지정해야 합니다.

SQL Server의 TDE는 2계층 키 아키텍처를 사용하여 암호화 키 관리 기능을 지원합니다. 데이터베이스 마스터 키에서 생성된 인증서는 데이터 암호화 키를 보호하는 데 사용됩니다. 사용자 데이터베이스의 데이터를 실제로 암호화 및 복호화하는 것이 바로 이 데이터베이스 암호화 키입니다. Amazon RDS는 데이터베이스 마스터 키와 TDE 인증서를 백업 및 관리합니다. 또한 몇 가지 보안 기준을 준수하기 위해 Amazon RDS는 주기적으로 마스터 키를 자동으로 교체하고 있습니다.

TDE는 민감한 데이터를 암호화해야 하는 시나리오에 사용됩니다. 예를 들어 제 3자가 데이터 파일과 백업 파일을 구했을 때나 보안 관련 규정 준수 문제를 해결해야 할 때가 그렇습니다. 단, Model이나 Master 데이터베이스 같은 SQL Server의 시스템 데이터베이스까지 암호화할 수는 없습니다.

TDE에 대한 자세한 설명은 본 문서의 범위에서 벗어나지만 보안과 관련하여 각 암호화 알고리즘과 키의 장단점은 잘 알고 있어야 합니다. SQL Server의 TDE에 대한 자세한 내용은 Microsoft 웹사이트에서 Transparent Data Encryption(TDE)을 참조하십시오.

혹시 DB 인스턴스가 TDE 옵션이 추가된 옵션 그룹과 이미 연동되어 있지 않은지 먼저 확인해야 합니다. DB 인스턴스와 연동되어 있는 옵션 그룹은 RDS 콘솔, describe-db-instance AWS CLI 명령, 또는 API 작업 DescribeDBInstances를 사용하여 확인할 수 있습니다.

SQL Server DB 인스턴스에서 TDE를 활성화하는 방법은 다음과 같습니다.

  1. DB 인스턴스가 TDE 옵션이 추가된 옵션 그룹과 연동되어 있지 않으면 먼저 옵션 그룹을 생성한 후 TDE 옵션을 추가하거나 연동되어 있는 옵션 그룹의 설정을 변경하여 TDE 옵션을 추가합니다. 옵션 그룹의 생성 및 변경에 대한 자세한 내용은 옵션 그룹 작업 항목을 참조하십시오. 옵션 그룹에 옵션을 추가하는 방법에 대한 자세한 내용은 옵션을 옵션 그룹에 추가하기 항목을 참조하십시오.

  2. DB 인스턴스를 TDE 옵션이 있는 옵션 그룹과 연결합니다. DB 인스턴스와 옵션 그룹의 연동에 대한 자세한 내용은 Microsoft SQL Server 데이터베이스 엔진 기반 DB 인스턴스의 수정 단원을 참조하십시오.

TDE 옵션을 옵션 그룹에 추가하면 Amazon RDS가 암호화 프로세스에 사용할 인증서를 생성합니다. 그러면 이 인증서를 사용하여 DB 인스턴스의 데이터베이스에 저장된 데이터를 암호화하는 SQL 문을 실행할 수 있습니다. 다음은 RDSTDECertificateName이라고 하는 RDS 생성 인증서를 사용하여 customerDatabase라는 데이터베이스를 암호화하는 예제입니다.

Copy
---------- Enabling TDE ------------- -- Find a RDSTDECertificate to use USE [master] GO SELECT name FROM sys.certificates WHERE name LIKE 'RDSTDECertificate%' GO USE [customerDatabase] GO -- Create DEK using one of the certificates from the previous step CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE [RDSTDECertificateName] GO -- Enable encryption on the database ALTER DATABASE [customerDatabase] SET ENCRYPTION ON GO -- Verify that the database is encrypted USE [master] GO SELECT name FROM sys.databases WHERE is_encrypted = 1 GO SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys GO

TDE를 사용해 SQL Server 데이터베이스를 암호화하는 데 걸리는 시간은 DB 인스턴스의 크기, 인스턴스의 PIOPS 활성화 여부, 데이터 용량 등 몇 가지 요인에 따라 다릅니다.

TDE는 영구 옵션이기 때문에 DB 인스턴스 및 백업 파일과 옵션 그룹의 연동을 끊지 않는 한 제거하지 못합니다. TDE 옵션을 옵션 그룹에 추가하면 이 옵션 그룹은 TDE를 사용하는 DB 인스턴스에 한해 연동이 가능합니다. 옵션 그룹의 영구 옵션에 대한 자세한 내용은 옵션 그룹 개요 단원을 참조하십시오.

TDE 옵션은 영구 옵션이기 때문에 옵션 그룹과 연결된 DB 인스턴스 사이에 충돌이 일어날 수 있습니다. 이러한 충돌이 일어나는 상황은 다음과 같습니다.

  • 현재 TDE 옵션이 있는 옵션 그룹을 TDE 옵션이 없는 옵션 그룹으로 변경하는 경우

  • DB 스냅샷에서 TDE 옵션을 포함하는 옵션 그룹이 연결되지 않은 새 DB 인스턴스로 복원하는 경우 이 시나리오에 대한 자세한 내용은 옵션 그룹 고려 사항를 참조하십시오.

DB 인스턴스에서 TDE를 비활성화하려면 먼저 객체를 복호화하거나 삭제하여 DB 인스턴스에 암호화된 객체가 하나도 없어야 합니다. DB 인스턴스에 암호화된 객체가 남아 있을 경우에는 DB 인스턴스에서 TDE를 비활성화하지 못합니다. AWS Management Console을 사용하여 [TDE] 옵션을 옵션 그룹에서 제거할 때는 콘솔이 진행 상황을 표시할 뿐만 아니라 옵션 그룹이 암호화된 DB 인스턴스 또는 스냅샷과 연동되어 있는 경우 오류를 나타내는 이벤트가 생성됩니다.

다음은 customerDatabase라고 하는 데이터베이스에서 TDE 암호화를 제거하는 예제입니다.

Copy
------------- Removing TDE ---------------- USE [customerDatabase] GO -- Disable encryption on the database ALTER DATABASE [customerDatabase] SET ENCRYPTION OFF GO -- Wait until the encryption state of the database becomes 1. The state is 5 (Decryption in progress) for a while SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys GO -- Drop the DEK used for encryption DROP DATABASE ENCRYPTION KEY GO -- Alter to SIMPLE Recovery mode so that your encrypted log gets truncated USE [master] GO ALTER DATABASE [customerDatabase] SET RECOVERY SIMPLE GO

모든 객체가 복호화되면 DB 인스턴스의 설정을 변경하여 TDE 옵션이 없는 옵션 그룹과 연동하거나, TDE 옵션을 옵션 그룹에서 제거할 수 있습니다.

성능 요인

SQL Server DB 인스턴스는 TDE 사용 시 성능에 영향을 받을 수 있습니다.

DB 인스턴스의 데이터베이스 중 암호화된 데이터베이스가 하나 이상만 있어도 마찬가지로 암호화되지 않은 데이터베이스의 성능이 떨어질 수 있습니다. 따라서 암호화되지 않은 데이터베이스와 암호화된 데이터베이스는 별도의 DB 인스턴스에서 관리하는 것이 좋습니다.

암호화의 특성상 데이터베이스 크기와 트랜잭션 로그의 크기가 암호화되지 않은 데이터베이스보다 클 수 밖에 없습니다. 그 결과 백업을 위해 할당한 여유 공간까지 침범하기도 합니다. TDE로 인한 성능 저하는 어쩔 수 없습니다. 높은 성능과 TDE가 동시에 필요하다면 성능에 미치는 영향을 평가하여 요건에 맞춰야 합니다. 프로비저닝된 IOPS와 M3.Large DB 인스턴스 클래스만 사용해도 성능에 미치는 영향을 줄일 수 있습니다.

이 페이지에서: