金鑰環服務消費者需要安裝金鑰環元件或外掛程式
若要使用金鑰環外掛程式,請從此處的指示開始。(此外,如需有關安裝外掛程式的一般資訊,請參閱第 7.6.1 節,〈安裝和解除安裝外掛程式〉。)
若要改用金鑰環元件,請從第 8.4.4.2 節,〈金鑰環元件安裝〉開始。
如果您打算搭配選定的金鑰環元件或外掛程式使用金鑰環函式,請在安裝該元件或外掛程式之後安裝函式,並使用第 8.4.4.12 節,〈通用金鑰環金鑰管理函式〉中的指示。
一次只能啟用一個金鑰環元件或外掛程式。不支援啟用多個金鑰環元件或外掛程式,且結果可能不如預期。
如果需要支援持久化系統變數值的安全儲存,則必須在 MySQL 伺服器執行個體上啟用金鑰環元件,而不是不支援此功能的金鑰環外掛程式。請參閱持久化敏感系統變數。
MySQL 提供下列金鑰環外掛程式選擇
keyring_okv
:適用於與 KMIP 相容的後端金鑰環儲存產品 (例如 Oracle Key Vault 和 Gemalto SafeNet KeySecure Appliance) 的 KMIP 1.1 外掛程式。在 MySQL 企業版發行版中提供。keyring_aws
:與 Amazon Web Services 金鑰管理服務通訊,作為金鑰產生的後端,並使用本機檔案進行金鑰儲存。適用於 MySQL Enterprise Edition 發行版本。keyring_hashicorp
:與 HashiCorp Vault 通訊以進行後端儲存。適用於 MySQL Enterprise Edition 發行版本。
若要讓伺服器使用,外掛程式庫檔案必須位於 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
來載入金鑰環外掛程式。