金鑰環服務使用者需要安裝金鑰環元件或外掛程式
若要使用金鑰環外掛程式,請從此處的指示開始。(此外,如需有關安裝外掛程式的一般資訊,請參閱第 7.6.1 節,「安裝和解除安裝外掛程式」。)
若要改為使用金鑰環元件,請從第 8.4.4.2 節,「金鑰環元件安裝」開始。
如果您打算將金鑰環函數與選擇的金鑰環元件或外掛程式搭配使用,請在使用第 8.4.4.12 節,「通用金鑰環金鑰管理函數」中的指示安裝該元件或外掛程式後,安裝這些函數。
一次只能啟用一個金鑰環元件或外掛程式。不支援啟用多個金鑰環元件或外掛程式,且結果可能不如預期。
如果需要支援儲存持續系統變數值的安全儲存,則必須在 MySQL Server 執行個體上啟用金鑰環元件,而不是不支援此功能的金鑰環外掛程式。請參閱持續儲存敏感系統變數。
MySQL 提供這些金鑰環外掛程式選擇
keyring_okv
:與 KMIP 相容的後端金鑰環儲存產品(例如 Oracle Key Vault 和 Gemalto SafeNet KeySecure Appliance)搭配使用的 KMIP 1.1 外掛程式。適用於 MySQL 企業版散佈。keyring_aws
:與 Amazon Web Services 金鑰管理服務通訊,作為金鑰產生的後端,並使用本機檔案進行金鑰儲存。適用於 MySQL 企業版散佈。keyring_hashicorp
:與 HashiCorp Vault 通訊以進行後端儲存。適用於 MySQL 企業版散佈。
若要讓伺服器能夠使用,外掛程式程式庫檔案必須位於 MySQL 外掛程式目錄中(由 plugin_dir
系統變數命名的目錄)。如有必要,請在伺服器啟動時設定 plugin_dir
的值來設定外掛程式目錄位置。
金鑰環元件或外掛程式必須在伺服器啟動順序的早期載入,以便其他元件在自己的初始化期間可以根據需要存取它。例如,InnoDB
儲存引擎會使用金鑰環進行表格空間加密,因此金鑰環元件或外掛程式必須在 InnoDB
初始化之前載入並可供使用。
每個金鑰環外掛程式的安裝方式都類似。下列指示說明如何安裝 keyring_okv
。若要使用不同的金鑰環外掛程式,請以其名稱取代 keyring_okv
。
keyring_okv
外掛程式程式庫檔案基本名稱為 keyring_okv
。檔案名稱字尾會因平台而異(例如,Unix 和類 Unix 系統的 .so
,Windows 的 .dll
)。
若要載入外掛程式,請使用 --early-plugin-load
選項來命名包含該外掛程式的程式庫檔案。例如,在程式庫檔案字尾為 .so
的平台上,請在伺服器 my.cnf
檔案中使用這些行,並根據需要調整平台的 .so
字尾
[mysqld]
early-plugin-load=keyring_okv.so
在啟動伺服器之前,請檢查您選擇的金鑰環外掛程式的注意事項,以取得該外掛程式專屬的設定指示
keyring_okv
:第 8.4.4.6 節, 「使用 keyring_okv KMIP 外掛程式」。keyring_aws
:第 8.4.4.7 節,「使用 keyring_aws Amazon Web Services 金鑰環外掛程式」keyring_hashicorp
:第 8.4.4.8 節,「使用 HashiCorp Vault 金鑰環外掛程式」
在執行任何外掛程式特定的組態後,啟動伺服器。透過檢查 Information Schema PLUGINS
資料表或使用 SHOW PLUGINS
陳述式(請參閱第 7.6.2 節,「取得伺服器外掛程式資訊」)來驗證外掛程式的安裝。例如
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+--------------+---------------+
| keyring_okv | ACTIVE |
+--------------+---------------+
如果外掛程式初始化失敗,請檢查伺服器錯誤日誌以取得診斷訊息。
外掛程式可以使用除了 --early-plugin-load
以外的方法載入,例如 --plugin-load
或 --plugin-load-add
選項,或 INSTALL PLUGIN
陳述式。然而,使用這些方法載入的金鑰環外掛程式,在伺服器啟動序列中可能會太晚才可用於某些使用金鑰環的組件,例如 InnoDB
使用
--plugin-load
或--plugin-load-add
載入外掛程式發生在InnoDB
初始化之後。使用
INSTALL PLUGIN
安裝的外掛程式會註冊在mysql.plugin
系統資料表中,並在後續伺服器重新啟動時自動載入。然而,由於mysql.plugin
是一個InnoDB
資料表,因此在啟動期間,只有在InnoDB
初始化之後,才能載入其中任何已命名的外掛程式。
如果當組件嘗試存取金鑰環服務時,沒有可用的金鑰環組件或外掛程式,則該組件無法使用該服務。因此,該組件可能無法初始化,或可能以有限的功能初始化。例如,如果 InnoDB
在初始化時發現有加密的表空間,它會嘗試存取金鑰環。如果金鑰環不可用,InnoDB
只能存取未加密的表空間。為了確保 InnoDB
也可以存取加密的表空間,請使用 --early-plugin-load
來載入金鑰環外掛程式。