개요
TencentDB for MySQL은 TDE(Transparent Data Encryption) 기능을 지원합니다. TDE란 데이터의 암호화, 복호화 작업을 사용자에게 투명하게 보여주는 것으로, 데이터 파일에 대한 I/O 암호화 및 복호화를 실시간으로 진행합니다. 데이터를 디스크에 입력하기 전에 암호화하고 디스크에서 메모리를 읽을 때 복호화함으로써 정적 데이터 암호화의 컴플라이언스 요구를 충족할 수 있습니다.
키 관리 설명
TencentDB for MySQL은 암호화에 필요한 키와 인증서를 제공하지 않습니다. 투명한 데이터 암호화(Transparent Data Encryption, TDE) 기능에서 사용하는 키는 Key Management Service(KMS)에서 생성 및 관리하며, 키와 관련된 설명은 다음과 같습니다. TDE 기능은 추가 요금이 발생하지 않지만 KMS는 추가 요금이 발생합니다. 자세한 내용은 과금 개요를 참고하십시오. KMS(후불 버전)는 2024년 12월 30일부터 서비스가 중단됩니다. 즉 KMS는 종량제과 같은 후불제 방식을 더 이상 지원하지 않고 선불제 과금 방식만 지원하게 됩니다.
기존 KMS(후불 버전) 사용자의 경우 계정이 연체 상태인 경우 KMS에서 키를 획득할 수 없게 되어 마이그레이션, 업그레이드 등의 작업이 정상적으로 진행되지 않을 수 있습니다.
신규 KMS(선불 버전) 사용자의 경우, 계정이 연체 상태일 때에도 KMS가 일정 기간에 대한 선불 결제가 완료되어 해당 기간 내에는 KMS 키 획득, 마이그레이션 및 업그레이드 작업에 영향을 주지 않습니다. 단, 만료 후 KMS 키가 갱신되지 않으면 TDE 기능 사용에 영향을 미칠 수 있으므로 KMS 키 갱신 시간을 유의하시기 바랍니다. KMS 키 관리는 KMS 콘솔에서 진행할 수 있습니다. TencentDB for MySQL 인스턴스와 KMS가 지원하는 리전 상황은 다릅니다. 키 생성 시 KMS에 중국 본토 해당 리전이 없는 경우 광저우 리전에서 생성할 수 있으며, 중국 경외 해당 리전이 없는 경우 중국 홍콩 리전에서 생성할 수 있습니다.
TDE 암호화 기능을 활성화한 후 한 계정(UIN)에서 암호화된 테이블을 생성한 적이 없는 경우 키 목록에 해당 키 정보가 표시되지 않을 수 있습니다. 반면 계정(UIN)에서 암호화된 테이블을 생성한 적이 있는 경우 해당 키 정보를 확인할 수 있습니다. 암호화된 테이블 생성 방법은 자주 묻는 질문을 참고하십시오. 전제 조건
인스턴스 아키텍처는 범용형 또는 전용형의 2노드 또는 3노드 형태여야 합니다.
인스턴스의 데이터베이스 버전은 MySQL 5.7 또는MySQL 8.0이어야 합니다.
KMS 서비스가 활성화되어 있어야 합니다. 아직 활성화하지 않았다면, 데이터 암호화 활성화 과정에서 안내에 따라 KMS를 활성화할 수 있습니다.
KMS 키 권한이 부여되어야 합니다. 아직 부여되지 않았다면, 데이터 암호화 활성화 과정에서 안내에 따라 권한을 부여할 수 있습니다.
계정을 작업하려면 QcloudAccessForMySQLRole 권한을 보유해야 합니다. 권한이 없다면 데이터 암호화 활성화 과정에서 안내에 따라 권한을 부여할 수 있습니다.
주의 사항
권한 부여 관계를 취소한 후 재시작하면 MySQL 데이터베이스가 사용 불가능 상태가 됩니다.
TDE 암호화 기능은 활성화 후 비활성화할 수 없습니다.
TDE 암호화 기능을 활성화한 후 사용자가 로컬로 데이터를 복원하려면 먼저 데이터를 복호화해야 합니다.
TDE 암호화 기능을 활성화하면 정적 데이터의 보안성을 향상시킬 수 있지만, 암호화된 데이터베이스 접근 시 읽기/쓰기 성능에 영향을 미칠 수 있습니다. 실제 상황을 고려하여 TDE 암호화 기능 활성화 여부를 선택하시기 바랍니다.
마스터 인스턴스가 읽기 전용 인스턴스 또는 재해 복구 인스턴스와 연결된 경우, 마스터 인스턴스의 TDE 기능을 직접 활성화하면 읽기 전용 인스턴스와 재해 복구 인스턴스의 데이터 암호화도 동시에 활성화됩니다.
TDE 기능을 사용할 때 KMS 키가 정상 사용 상태인지 확인하십시오. 그렇지 않으면 KMS에서 키를 가져올 수 없게 되어 마이그레이션, 업그레이드 등의 작업이 정상적으로 진행되지 않을 수 있습니다.
TDE 암호화 기능을 활성화하면 CPU 리소스 소모가 증가하여 성능에 약 5%의 영향을 미칠 수 있습니다.
TDE 암호화 기능을 활성화한 후, 데이터베이스 인증을 통과한 애플리케이션 및 사용자는 애플리케이션 데이터에 투명하게 접근할 수 있습니다.
TDE 암호화 기능을 활성화하면 백업 압축 효과가 저하될 수 있습니다.
TDE 암호화 기능을 활성화한 후 MySQL 8.0 버전의 인스턴스도 자동으로 암호화됩니다. 즉, TDE 암호화 기능을 활성화한 후 생성된 테이블은 모두 기본적으로 암호화됩니다.
작업 단계
TDE 암호화 기능 활성화
1. MySQL 콘솔 에 로그인한 후 인스턴스 목록에서인스턴스 ID또는작업열의관리를 클릭하여 관리 페이지로 이동합니다. 2. 데이터 암호화를 선택하고, 암호화 상태 뒤에 있는 스위치를 클릭합니다.
주의:
데이터 암호화 기능을 활성화한 인스턴스는 물리 백업으로 다른 CVM의 자체 구축 데이터베이스에 복구할 수 없습니다.
데이터 암호화를 활성화한 후에는 비활성화할 수 없습니다.
3. 팝업 창에서 KMS 서비스 활성화 및 KMS 키 권한을 부여받고, 키를 선택한 후에 암호화를 클릭합니다.
Tencent Cloud에서 자동 생성한 키 사용을 선택하면 Tencent Cloud에서 키를 자동으로 생성합니다.
사용자 지정 키 사용을 선택하면 직접 생성한 키를 선택할 수 있습니다.
설명:
사용자 지정 키가 없을 경우 생성하기를 클릭하여 키 관리 시스템 콘솔에서 키를 생성해야 합니다. 자세한 내용은 Creating a Key를 참고하십시오. 데이터 테이블 암호화
TDE 암호화 기능을 활성화한 후, 사용자는 MySQL 테이블에 다음의 DDL 작업을 실행해야 데이터를 암호화할 수 있습니다.
생성 중인 테이블을 암호화하려면 다음 명령어를 실행하시기 바랍니다.
CREATE TABLE t1 (c1 INT) ENCRYPTION=’Y’;
이미 생성한 테이블을 암호화하려면 다음 명령어를 실행하시기 바랍니다.
ALTER TABLE t1 ENCRYPTION=’Y’;
데이터 테이블 복호화
TDE 암호화 기능을 활성화한 후, 사용자는 MySQL 테이블에 다음의 DDL 작업을 실행해야 데이터를 복호화할 수 있습니다.
암호화된 테이블을 복호화하려면 다음 명령어를 실행하시기 바랍니다.
ALTER TABLE t1 ENCRYPTION=’N’;
자주 묻는 질문
TDE 암호화를 활성화한 후 키 목록에 키 정보가 없는 이유는 무엇인가요?
문제 현상
TDE 암호화 활성화 후 정상 키 목록
처리 제안
1. 먼저 KMS 암호화 상태가 정상인지, 계정에 미납 요금이 없는지, TencentDB for MySQL 인스턴스와 KMS가 만료 후 미갱신 상태인지 확인하십시오. 위 사항이 모두 정상인지 확인한 후 다시 시도하십시오.
2. TDE 암호화를 처음 사용하는 경우, 사용자 계정(UIN)에서 암호화된 테이블을 생성한 적이 없다면 키 목록에 키 정보가 표시되지 않게 됩니다. 다음 명령어를 참조하여 데이터 인스턴스에서 암호화된 테이블을 생성한 후 다시 시도하십시오.
CREATE TABLE `user_test` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`userId` int(11) NOT NULL,
`age` int(11) NOT NULL,
`name` varchar(64) DEFAULT NULL,
`ins_date` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_ins_date` (`ins_date`),
KEY `idx_userId` (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ENCRYPTION='Y';
왜 TDE 암호화를 활성화한 후 키를 사용할 수 없나요?
KMS 암호화 상태가 정상인지, 계정에 미납 요금이 없는지, TencentDB for MySQL 인스턴스와 KMS가 만료 후 미갱신 상태인지 확인하십시오. KMS(후불 버전)는 더 이상 생성할 수 없으며, 신규 KMS는 선불제 버전 구매만 지원합니다. 따라서 기존 KMS(후불 버전) 사용자는 KMS 암호화 상태가 비정상이거나 계정에 미납 요금이 있을 경우 키를 사용할 수 없습니다. 계정에 충전한 후 다시 시도하십시오.