component_keyring_file 金鑰環元件將金鑰環資料儲存在伺服器主機本機的檔案中。
對於加密金鑰管理,component_keyring_file 和 component_keyring_encrypted_file 元件並非設計為法規遵循解決方案。PCI、FIPS 和其他安全性標準要求使用金鑰管理系統,以保護、管理和保護金鑰庫或硬體安全性模組 (HSM) 中的加密金鑰。
若要將 component_keyring_file 用於金鑰儲存區管理,您必須
撰寫一份資訊清單,告知伺服器載入
component_keyring_file,如第 8.4.4.2 節「金鑰環元件安裝」所述。撰寫
component_keyring_file的設定檔,如此處所述。
初始化時,component_keyring_file 會讀取全域設定檔,或全域設定檔搭配本機設定檔
元件會嘗試從元件程式庫檔案安裝的目錄(也就是伺服器外掛程式目錄)讀取其全域設定檔。
如果全域設定檔指示使用本機設定檔,則元件會嘗試從資料目錄讀取其本機設定檔。
雖然全域和本機設定檔位於不同的目錄中,但在這兩個位置的檔案名稱都是
component_keyring_file.cnf。如果沒有設定檔存在,則會發生錯誤。
component_keyring_file無法在沒有有效設定的情況下初始化。
本機設定檔允許設定多個伺服器執行個體來使用 component_keyring_file,如此每個伺服器執行個體的元件設定都特定於給定的資料目錄執行個體。這使得相同的金鑰環元件可以用於每個執行個體的不同資料檔案。
component_keyring_file 設定檔具有這些屬性
設定檔必須採用有效的 JSON 格式。
設定檔允許使用這些設定項目
"read_local_config":此項目僅允許在全域設定檔中使用。如果此項目不存在,則元件僅使用全域設定檔。如果此項目存在,其值為true或false,指示元件是否應從本機設定檔讀取設定資訊。如果
"read_local_config"項目與其他項目一起存在於全域設定檔中,則元件會先檢查"read_local_config"項目值如果值為
false,則元件會處理全域設定檔中的其他項目,並忽略本機設定檔。如果值為
true,則元件會忽略全域設定檔中的其他項目,並嘗試讀取本機設定檔。
"path":此項目的值為字串,指定用於儲存金鑰環資料的檔案。檔案名稱應使用絕對路徑,而不是相對路徑。此項目在設定中為必要項目。若未指定,component_keyring_file初始化將會失敗。"read_only":此項目的值表示金鑰環資料檔案是否為唯讀。項目值為true(唯讀) 或false(讀/寫)。此項目在設定中為必要項目。若未指定,component_keyring_file初始化將會失敗。
資料庫管理員有責任建立要使用的任何設定檔,並確保其內容正確。若發生錯誤,伺服器啟動將會失敗,而管理員必須修正伺服器錯誤日誌中指出的任何問題。
考量上述設定檔屬性,若要設定 component_keyring_file,請在安裝 component_keyring_file 程式庫檔案的目錄中,建立名為 component_keyring_file.cnf 的全域設定檔,並可選擇在資料目錄中建立名為 component_keyring_file.cnf 的本機設定檔。以下指示假設將以讀/寫模式使用名為 /usr/local/mysql/keyring/component_keyring_file 的金鑰環資料檔案。
若僅使用全域設定檔,檔案內容如下:
{ "path": "/usr/local/mysql/keyring/component_keyring_file", "read_only": false }請在安裝
component_keyring_file程式庫檔案的目錄中建立此檔案。或者,若要使用全域和本機設定檔配對,全域檔案如下:
{ "read_local_config": true }請在安裝
component_keyring_file程式庫檔案的目錄中建立此檔案。本機檔案如下:
{ "path": "/usr/local/mysql/keyring/component_keyring_file", "read_only": false }請在資料目錄中建立此檔案。
金鑰環操作具有交易性質:component_keyring_file 在寫入操作期間會使用備份檔案,以確保操作失敗時可以回滾至原始檔案。備份檔案的名稱與資料檔案相同,但附帶 .backup 副檔名。
component_keyring_file 支援構成標準 MySQL 金鑰環服務介面的函式。這些函式執行的金鑰環操作可透過 SQL 陳述式存取,如 第 8.4.4.12 節「通用金鑰環金鑰管理函式」所述。
範例
SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');如需有關 component_keyring_file 允許的金鑰值特性的資訊,請參閱 第 8.4.4.10 節「支援的金鑰環金鑰類型與長度」。