SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
© 2016, Oracle Corporation and/or its affiliates 1
MySQL TDE
June, 2016
Sumi Ryu, MySQL APAC Sales Consultant
sumi.ryu@oracle.com
© 2016, Oracle Corporation and/or its affiliates 2
이 문서는 MySQL 5.7.11에 추가된 MySQL TDE기능에 대해 설명하기 위해 만들어진 문서이며, 해
당 문서의 저작권은 오라클에 있습니다. 내용이 이상하거나 오탈자에 대해 알려주실 분이 계신다
면 위의 제 email로 부탁드립니다. MySQL TDE 기능을 이해하시는데 도움이 되길 바래봅니다.
1. Keyring plugin Installation
// Keyring plugin은 스토리지엔진이 올라오기 전에 먼저 올라와야 하므로 my.cnf 파일에 아래
두변수 추가해준다.
[mysqld]
early-plugin-load=keyring_file.so
keyring_file_data=/usr/local/mysql/mysql-keyring/keyring
2. Keyring plugin 설치 확인
// mysql server restart 한 다음 mysql client로 접속 후 정상적으로 plugin이 active되었는지 확
인한다.
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS
-> WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+--------------+---------------+
| keyring_file | ACTIVE |
+--------------+---------------+
3. Key 생성
© 2016, Oracle Corporation and/or its affiliates 3
// mysql server restart 한 다음 mysql client로 접속 후 정상적으로 plugin이 active되었는지 확
인한다.
mysql> alter instance rotate innodb master key;
Query OK, 0 rows affected (0.00 sec)
[root@smdomain mysql]# cd mysql-keyring/
[root@smdomain mysql-keyring]# ll
total 4
-rw-r-----. 1 mysql mysql 155 May 27 03:43 keyring
[root@smdomain mysql-keyring]# hexdump keyring
0000000 654b 7279 6e69 2067 6966 656c 7620 7265
0000010 6973 6e6f 313a 302e 0080 0000 0000 0000
0000020 0030 0000 0000 0000 0003 0000 0000 0000
0000030 0000 0000 0000 0000 0020 0000 0000 0000
0000040 4e49 4f4e 4244 654b 2d79 3332 6238 3833
0000050 3636 322d 6530 2d66 3131 3665 392d 6566
0000060 2d62 3830 3030 3732 6632 6465 6635 312d
0000070 4541 0153 1ea0 c241 65b1 4da5 9e8a 918b
0000080 d433 aac9 a023 3c5e 4753 58a5 c2cb 3487
0000090 4972 0093 0000 0000 4f45 0046
000009b
// Default 위치가 아닌 다른 위치에 Keyring 파일을 저장할 경우 아래의 작업이 필요함, default
위치에 mysql을 설치한 후 keyring 파일도 default 위치를 설정한다면 아래 작업은 필요없다.
shell> cd /usr/local/mysql
shell> mkdir mysql-keyring
shell> chmod 750 mysql-keyring
shell> chown mysql mysql-keyring
shell> chgrp mysql mysql-keyring
© 2016, Oracle Corporation and/or its affiliates 4
4. TDE 테스트를 위한 DB 및 Table 생성
// DB 생성
mysql> create database mytest;
Query OK, 1 row affected (0.00 sec)
// 암호화 테스트를 위한 테이블 t1을 생성하고, 아래처럼 테이블 생성 시 encryption="Y"를 꼭
추가해줘야 암호화 됨.
mysql> create table t1 (id int(10) unsigned not null auto_increment primary key, name
varchar(20)) engine=innodb encryption="Y";
Query OK, 0 rows affected (0.02 sec)
// 테이블 생성 후 TDE가 정상적으로 적용됐는지 확인
mysql> select table_schema, table_name, create_options from information_schema.tables where
create_options like 'ENCRYPTION="Y"';
+--------------+------------+----------------+
| table_schema | table_name | create_options |
+--------------+------------+----------------+
| mytest | t1 | ENCRYPTION="Y" |
+--------------+------------+----------------+
1 row in set (0.07 sec)
// 데이터 적재 및 암호화 하지 않은 table t2 생성
mysql> insert into t1 (name) values ('sumi');
Query OK, 1 row affected (0.02 sec)
mysql> insert into t1 (name) values ('Hyeyoung');
Query OK, 1 row affected (0.00 sec)
mysql> insert into t1 (name) values ('Seoyoun');
© 2016, Oracle Corporation and/or its affiliates 5
Query OK, 1 row affected (0.00 sec)
mysql> insert into t1 (name) values ('Hyunwoo');
Query OK, 1 row affected (0.00 sec)
mysql> create table t1 (id int(10) unsigned not null auto_increment primary key, name
varchar(20)) engine=innodb encryption="N";
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t2 (name) values ('sumi');
Query OK, 1 row affected (0.01 sec)
mysql> insert into t2 (name) values ('Hyeyoung');
Query OK, 1 row affected (0.00 sec)
mysql> insert into t2 (name) values ('Hyunwoo');
Query OK, 1 row affected (0.00 sec)
mysql> insert into t2 (name) values (Seoyoun);
Query OK, 1 row affected (0.01 sec)
5. TDE 정상적으로 적용되었는지
// 테이블 생성과 테이타를 insert가 끝났다면 정말 해당 데이터가 암호화되어 저장되어 있는지
확인해 본다. 이를 위해서 mysql user로 login 한다.
암호화된 t1 테이블에 대한 ibd파일을 strings로 보면 아래처럼 암호화어 보여진다.
ash-4.1$ strings t1.ibd
;R'v=>0
#MvR
c^V_?
9@0
Xyc2
U[9=q
b<Rm
© 2016, Oracle Corporation and/or its affiliates 6
~;P0O
rD h
중략 …
// 암호화되지 않은 t2에 대한 ibd파일을 strings로 보면 문자열이 그대로 보이는 걸 확인할 수
있다.
bash-4.1$ strings t2.ibd
infimum
supremum
sumi
Hyeyoung
Hyunwoo
Seoyoun

Más contenido relacionado

La actualidad más candente

MySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOMySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOI Goo Lee
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQLI Goo Lee
 
MySQL_Fabric_운영시유의사항
MySQL_Fabric_운영시유의사항MySQL_Fabric_운영시유의사항
MySQL_Fabric_운영시유의사항I Goo Lee
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTI Goo Lee
 
Gluster fs guide(v1.0)
Gluster fs guide(v1.0)Gluster fs guide(v1.0)
Gluster fs guide(v1.0)sprdd
 
Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구ajj007
 
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀EXEM
 
텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축I Goo Lee
 
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀EXEM
 
Zabbix haproxy configuration_guide
Zabbix haproxy configuration_guideZabbix haproxy configuration_guide
Zabbix haproxy configuration_guidesprdd
 

La actualidad más candente (11)

MySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOMySQL Deep dive with FusionIO
MySQL Deep dive with FusionIO
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQL
 
MySQL_Fabric_운영시유의사항
MySQL_Fabric_운영시유의사항MySQL_Fabric_운영시유의사항
MySQL_Fabric_운영시유의사항
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMT
 
Gluster fs guide(v1.0)
Gluster fs guide(v1.0)Gluster fs guide(v1.0)
Gluster fs guide(v1.0)
 
Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구
 
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
 
텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축
 
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
 
테스트
테스트테스트
테스트
 
Zabbix haproxy configuration_guide
Zabbix haproxy configuration_guideZabbix haproxy configuration_guide
Zabbix haproxy configuration_guide
 

Destacado

MySQL Tech Tour 2015 - 5.7 Security
MySQL Tech Tour 2015 - 5.7 SecurityMySQL Tech Tour 2015 - 5.7 Security
MySQL Tech Tour 2015 - 5.7 SecurityMark Swarbrick
 
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)Tomoaki Uchida
 
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBWhat's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBMikiya Okuno
 
MySQLおじさんの逆襲
MySQLおじさんの逆襲MySQLおじさんの逆襲
MySQLおじさんの逆襲yoku0825
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことyoku0825
 

Destacado (6)

MySQL Tech Tour 2015 - 5.7 Security
MySQL Tech Tour 2015 - 5.7 SecurityMySQL Tech Tour 2015 - 5.7 Security
MySQL Tech Tour 2015 - 5.7 Security
 
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
 
SQLite の暗号化
SQLite の暗号化SQLite の暗号化
SQLite の暗号化
 
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBWhat's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
 
MySQLおじさんの逆襲
MySQLおじさんの逆襲MySQLおじさんの逆襲
MySQLおじさんの逆襲
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 

Similar a My sql tde kr_v1.0

제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancementsbeamofhope
 
MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)OracleMySQL
 
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL TuningPgDay.Seoul
 
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracleSQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracle엑셈
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQLrockplace
 
DB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQLDB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQLrockplace
 
Azure Database for MySQL
Azure Database for MySQLAzure Database for MySQL
Azure Database for MySQLrockplace
 
회사에서 써보는 SQLAlchemy
회사에서 써보는 SQLAlchemy회사에서 써보는 SQLAlchemy
회사에서 써보는 SQLAlchemyJc Kim
 
Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)TaekSoon Jang
 
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle엑셈
 
04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)Hankyo
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드cranbe95
 
대량의 DML 작업에 대한 성능개선방안_Wh oracle
대량의 DML 작업에 대한 성능개선방안_Wh oracle대량의 DML 작업에 대한 성능개선방안_Wh oracle
대량의 DML 작업에 대한 성능개선방안_Wh oracle엑셈
 
MySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptxMySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptxNeoClova
 
게임을 위한 AWS의 다양한 관리형 Database 서비스 Hands on Lab (김성수 솔루션즈 아키텍트, AWS) :: Gaming ...
게임을 위한 AWS의 다양한 관리형 Database 서비스 Hands on Lab (김성수 솔루션즈 아키텍트, AWS) :: Gaming ...게임을 위한 AWS의 다양한 관리형 Database 서비스 Hands on Lab (김성수 솔루션즈 아키텍트, AWS) :: Gaming ...
게임을 위한 AWS의 다양한 관리형 Database 서비스 Hands on Lab (김성수 솔루션즈 아키텍트, AWS) :: Gaming ...Amazon Web Services Korea
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례if kakao
 
[AWSKRUG] 모바일게임 하이브 런칭기 (2018)
[AWSKRUG] 모바일게임 하이브 런칭기 (2018)[AWSKRUG] 모바일게임 하이브 런칭기 (2018)
[AWSKRUG] 모바일게임 하이브 런칭기 (2018)용호 최
 
MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바NeoClova
 
실전 DataSnap!
실전 DataSnap!실전 DataSnap!
실전 DataSnap!Devgear
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Javajigi Jaesung
 

Similar a My sql tde kr_v1.0 (20)

제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements
 
MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)
 
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning
 
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracleSQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQL
 
DB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQLDB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQL
 
Azure Database for MySQL
Azure Database for MySQLAzure Database for MySQL
Azure Database for MySQL
 
회사에서 써보는 SQLAlchemy
회사에서 써보는 SQLAlchemy회사에서 써보는 SQLAlchemy
회사에서 써보는 SQLAlchemy
 
Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)
 
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
 
04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
대량의 DML 작업에 대한 성능개선방안_Wh oracle
대량의 DML 작업에 대한 성능개선방안_Wh oracle대량의 DML 작업에 대한 성능개선방안_Wh oracle
대량의 DML 작업에 대한 성능개선방안_Wh oracle
 
MySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptxMySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptx
 
게임을 위한 AWS의 다양한 관리형 Database 서비스 Hands on Lab (김성수 솔루션즈 아키텍트, AWS) :: Gaming ...
게임을 위한 AWS의 다양한 관리형 Database 서비스 Hands on Lab (김성수 솔루션즈 아키텍트, AWS) :: Gaming ...게임을 위한 AWS의 다양한 관리형 Database 서비스 Hands on Lab (김성수 솔루션즈 아키텍트, AWS) :: Gaming ...
게임을 위한 AWS의 다양한 관리형 Database 서비스 Hands on Lab (김성수 솔루션즈 아키텍트, AWS) :: Gaming ...
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
[AWSKRUG] 모바일게임 하이브 런칭기 (2018)
[AWSKRUG] 모바일게임 하이브 런칭기 (2018)[AWSKRUG] 모바일게임 하이브 런칭기 (2018)
[AWSKRUG] 모바일게임 하이브 런칭기 (2018)
 
MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바
 
실전 DataSnap!
실전 DataSnap!실전 DataSnap!
실전 DataSnap!
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
 

My sql tde kr_v1.0

  • 1. © 2016, Oracle Corporation and/or its affiliates 1 MySQL TDE June, 2016 Sumi Ryu, MySQL APAC Sales Consultant sumi.ryu@oracle.com
  • 2. © 2016, Oracle Corporation and/or its affiliates 2 이 문서는 MySQL 5.7.11에 추가된 MySQL TDE기능에 대해 설명하기 위해 만들어진 문서이며, 해 당 문서의 저작권은 오라클에 있습니다. 내용이 이상하거나 오탈자에 대해 알려주실 분이 계신다 면 위의 제 email로 부탁드립니다. MySQL TDE 기능을 이해하시는데 도움이 되길 바래봅니다. 1. Keyring plugin Installation // Keyring plugin은 스토리지엔진이 올라오기 전에 먼저 올라와야 하므로 my.cnf 파일에 아래 두변수 추가해준다. [mysqld] early-plugin-load=keyring_file.so keyring_file_data=/usr/local/mysql/mysql-keyring/keyring 2. Keyring plugin 설치 확인 // mysql server restart 한 다음 mysql client로 접속 후 정상적으로 plugin이 active되었는지 확 인한다. mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS -> WHERE PLUGIN_NAME LIKE 'keyring%'; +--------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS | +--------------+---------------+ | keyring_file | ACTIVE | +--------------+---------------+ 3. Key 생성
  • 3. © 2016, Oracle Corporation and/or its affiliates 3 // mysql server restart 한 다음 mysql client로 접속 후 정상적으로 plugin이 active되었는지 확 인한다. mysql> alter instance rotate innodb master key; Query OK, 0 rows affected (0.00 sec) [root@smdomain mysql]# cd mysql-keyring/ [root@smdomain mysql-keyring]# ll total 4 -rw-r-----. 1 mysql mysql 155 May 27 03:43 keyring [root@smdomain mysql-keyring]# hexdump keyring 0000000 654b 7279 6e69 2067 6966 656c 7620 7265 0000010 6973 6e6f 313a 302e 0080 0000 0000 0000 0000020 0030 0000 0000 0000 0003 0000 0000 0000 0000030 0000 0000 0000 0000 0020 0000 0000 0000 0000040 4e49 4f4e 4244 654b 2d79 3332 6238 3833 0000050 3636 322d 6530 2d66 3131 3665 392d 6566 0000060 2d62 3830 3030 3732 6632 6465 6635 312d 0000070 4541 0153 1ea0 c241 65b1 4da5 9e8a 918b 0000080 d433 aac9 a023 3c5e 4753 58a5 c2cb 3487 0000090 4972 0093 0000 0000 4f45 0046 000009b // Default 위치가 아닌 다른 위치에 Keyring 파일을 저장할 경우 아래의 작업이 필요함, default 위치에 mysql을 설치한 후 keyring 파일도 default 위치를 설정한다면 아래 작업은 필요없다. shell> cd /usr/local/mysql shell> mkdir mysql-keyring shell> chmod 750 mysql-keyring shell> chown mysql mysql-keyring shell> chgrp mysql mysql-keyring
  • 4. © 2016, Oracle Corporation and/or its affiliates 4 4. TDE 테스트를 위한 DB 및 Table 생성 // DB 생성 mysql> create database mytest; Query OK, 1 row affected (0.00 sec) // 암호화 테스트를 위한 테이블 t1을 생성하고, 아래처럼 테이블 생성 시 encryption="Y"를 꼭 추가해줘야 암호화 됨. mysql> create table t1 (id int(10) unsigned not null auto_increment primary key, name varchar(20)) engine=innodb encryption="Y"; Query OK, 0 rows affected (0.02 sec) // 테이블 생성 후 TDE가 정상적으로 적용됐는지 확인 mysql> select table_schema, table_name, create_options from information_schema.tables where create_options like 'ENCRYPTION="Y"'; +--------------+------------+----------------+ | table_schema | table_name | create_options | +--------------+------------+----------------+ | mytest | t1 | ENCRYPTION="Y" | +--------------+------------+----------------+ 1 row in set (0.07 sec) // 데이터 적재 및 암호화 하지 않은 table t2 생성 mysql> insert into t1 (name) values ('sumi'); Query OK, 1 row affected (0.02 sec) mysql> insert into t1 (name) values ('Hyeyoung'); Query OK, 1 row affected (0.00 sec) mysql> insert into t1 (name) values ('Seoyoun');
  • 5. © 2016, Oracle Corporation and/or its affiliates 5 Query OK, 1 row affected (0.00 sec) mysql> insert into t1 (name) values ('Hyunwoo'); Query OK, 1 row affected (0.00 sec) mysql> create table t1 (id int(10) unsigned not null auto_increment primary key, name varchar(20)) engine=innodb encryption="N"; Query OK, 0 rows affected (0.02 sec) mysql> insert into t2 (name) values ('sumi'); Query OK, 1 row affected (0.01 sec) mysql> insert into t2 (name) values ('Hyeyoung'); Query OK, 1 row affected (0.00 sec) mysql> insert into t2 (name) values ('Hyunwoo'); Query OK, 1 row affected (0.00 sec) mysql> insert into t2 (name) values (Seoyoun); Query OK, 1 row affected (0.01 sec) 5. TDE 정상적으로 적용되었는지 // 테이블 생성과 테이타를 insert가 끝났다면 정말 해당 데이터가 암호화되어 저장되어 있는지 확인해 본다. 이를 위해서 mysql user로 login 한다. 암호화된 t1 테이블에 대한 ibd파일을 strings로 보면 아래처럼 암호화어 보여진다. ash-4.1$ strings t1.ibd ;R'v=>0 #MvR c^V_? 9@0 Xyc2 U[9=q b<Rm
  • 6. © 2016, Oracle Corporation and/or its affiliates 6 ~;P0O rD h 중략 … // 암호화되지 않은 t2에 대한 ibd파일을 strings로 보면 문자열이 그대로 보이는 걸 확인할 수 있다. bash-4.1$ strings t2.ibd infimum supremum sumi Hyeyoung Hyunwoo Seoyoun