MySQL 5.7 TDE

來源:互聯網
上載者:User

標籤:text   完全   cal   taf   open   search   chown   usr   creat   

目錄

  • 一. 簡介
  • 二. 配置
  • 三. 使用
  • 四. 限制
  • 五. 還原測試
  • 六. 效能測試
  • 七.秘鑰備份
  • 八.參考文獻
一. 簡介

MySQL 5.7之後支援通過mysql keyring(一種兩層加密架構,由一個master key和多個tablespace key組成;當InnoDB表被加密的時候,其實是對tablespace key加密並儲存在資料表空間檔案頭裡,當訪問被加密的InnoDB表的時候,InnoDB使用master key進行解密)對獨立資料表空間中的InnoDB表的資料進行加密,來提升物理檔案的安全性。

企業版與非企業版外掛程式區別

MySQL Enterprise Edition offers the keyring_okv plugin,When InnoDB tablespace encryption uses OKV for encryption key management, the feature is referred to as “MySQL Enterprise Transparent Data Encryption (TDE)”.

non-enterprise editions of MySQL uses the keyring_file plugin for encryption key management.

加密方式為AES
InnoDB tablespace encryption supports the Advanced Encryption Standard (AES) block-based encryption algorithm

加密鍵
tablespace key
master key rotation

Only one keyring plugin should be enabled at a time. Enabling multiple keyring plugins is not supported.

二. 配置
  • MySQL 5.7.11之後,所有版本包含keyring_file外掛程式
  • MySQL 5.7.12之後,企業版包含keyring_okv外掛程式
  • MySQL 5.7.13之後,所有版本包含key管理的SQL介面(UDF,使用者定義函數)

設定檔】 在my.cnf裡添加2行
early-plugin-load=keyring_file.so
keyring_file_data=/usr/local/mysql/keyring/keyring

添加目錄
Linux > mkdir -p /usr/local/mysql/keyring
Linux > chown -R mysql:mysql /usr/local/mysql/keyring/
Linux > chmod 750 /usr/local/mysql/keyring/

安裝外掛程式
mysql> INSTALL PLUGIN keyring_file soname ‘keyring_file.so‘;

卸載外掛程式】 忽略
mysql > UNINSTALL PLUGIN keyring_file;

秘鑰備份
Linux > mkdir /root/backup
Linux > cp /usr/local/mysql/keyring/keyring /root/backup

外掛程式檢查
mysql > show plugins ; 查看外掛程式是否啟用

旋轉主加密金鑰
mysql > ALTER INSTANCE ROTATE INNODB MASTER KEY;

三. 使用

加密表建立
CREATE TABLE t1 (c1 INT) ENCRYPTION=‘Y‘;

查看所有加密表
select * from information_schema.tables where create_options like ‘%ENCRYPTION%="y"%‘;

修改表加密
ALTER TABLE t1 ENCRYPTION=‘Y‘;
ALTER TABLE t1 ENCRYPTION=‘N‘;

查看秘鑰
show variables like ‘%keyring%‘;

四. 限制

InnoDB資料表空間加密限制

  • 進階加密標準(AES)是唯一支援的密碼編譯演算法。 InnoDB資料表空間加密為資料表空間祕密金鑰加密和密碼分組連結(CBC)塊加密模式使用電子密碼本(ECB)塊加密模式進行資料加密。

  • 支援改變表的ENCRYPTION屬性ALGORITHM = COPY操作。 ALGORITHM = INPLACE不支援。

  • InnoDB資料表空間加密僅支援儲存在單獨資料表空間的InnoDB表。儲存在其他InnoDB資料表空間類型(包括常規資料表空間,系統資料表空間,撤消日誌資料表空間和暫存資料表空間)中的表不支援加密。

  • 無法將加密表從單獨資料表空間移動或複製到不支援的InnoDB資料表空間類型。

  • 資料表空間加密僅適用於資料表空間中的資料。資料在重做日誌撤消日誌二進位日誌中不加密。

  • 直接從keyring_file外掛程式遷移到keyring_okv外掛程式目前不受支援。更改密鑰環外掛程式需要解密表,卸載當前的密鑰環外掛程式,安裝和配置其他密鑰環外掛程式,並重新加密表。

五. 還原測試

備忘:發現master key線上刪除後,加密表還是可以訪問,所以猜測,每次mysql啟動時候會調用master key對加密表進行解密,而不是即時解密,實際通過觀察errorlog中啟動流程發現確實如此。

mysqldump】 備份檔案可以還原到開啟加密外掛程式的mysql執行個體上,會自動產生master key

xtranbackup】在沒有master key的情況下,不可以開啟加密表,可以開啟非加密表。

物理備份】 在沒有master key的情況下,不可以開啟加密表,可以開啟非加密表。
物理備份】 在有master key的情況下,可以開啟加密表。

[ERROR] InnoDB: Encryption can‘t find master key, please check the keyring plugin is loaded.[ERROR] InnoDB: Encryption information in datafile: ./test/emp.ibd can‘t be decrypted , please confirm the keyfile is match and keyring plugin is loaded.

丟失master key 或 master key錯誤

[ERROR] InnoDB: Encryption information in datafile: ./test/emp.ibd can‘t be decrypted , please confirm the keyfile is match and keyring plugin is loaded.[Warning] InnoDB: Ignoring tablespace `test/emp` because it could not be opened.
六. 效能測試

實驗環境: 5.7.19-log MySQL Community Server
實驗目的:驗證資料表空間加密和正常資料表空間對SQL語句的效能影響
實驗步驟:

  1. 複製兩張表到測試MySQL中
  2. 一張表加密,另外一張表不加密
  3. 使用mysqlslap分別對select、update、insert語句進行測試

實驗結果:

SQL類型 select update insert
非加密表 8.762秒 32.447秒 24.064秒
加密表 8.899秒 32.505秒 26.154秒

結論:

官方提供的資料是加密表大約影響5%左右的效能,我們測試下來對SQL的效能加密表和非加密表影響不大,完全可以滿足公司需要。

七.秘鑰備份

秘鑰在MySQL執行個體啟動時需要對加密資料表空間進行解密,如果秘鑰丟失可能會導致無法開啟加密資料表空間,造成資料丟失,所以秘鑰是很重要的檔案。
正式項目需要考慮秘鑰異機備份事宜,將keyring_file_data參數對應的秘鑰目錄下所有檔案進行複製。

八.參考文獻

https://zhuanlan.zhihu.com/p/29761390
https://dev.mysql.com/doc/refman/5.7/en/innodb-tablespace-encryption.html
http://www.dbsec.cn/research/research/20170802.html

MySQL 5.7 TDE

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.