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 節「支援的金鑰環金鑰類型和長度」。