本文介紹如何快速上手使用Data Encryption Service。
注意事項
為了保證密碼機執行個體資料的安全,請不要在實際生產環境中使用測試密鑰。
如果您需要建立KMS硬體密鑰管理執行個體的密碼機叢集,請參見配置KMS硬體密鑰管理執行個體的密碼機叢集。
前提條件
已購買密碼機。具體操作,請參見購買密碼機。
已購買Linux系統(CentOS 8或Alibaba Cloud Linux)的ECS執行個體,且ECS執行個體需要和密碼機執行個體在同一VPC。具體操作,請參見Linux系統執行個體快速入門。
說明該ECS執行個體用於安裝密碼機管理工具,而非用於商務服務器。
步驟一:啟用主密碼機執行個體
一個叢集中包括一個主密碼機執行個體與若干個非主密碼機執行個體。建立叢集前,您需要啟用主密碼機執行個體。
訪問Data Encryption Service控制台的虛擬密碼機執行個體頁面,在頂部功能表列,選擇目標地區。
在虛擬密碼機執行個體頁面,定位到已建立的密碼機執行個體,單擊操作列的啟用。
在密碼機執行個體配置對話方塊,配置密碼機執行個體,然後單擊確定。配置成功後,密碼機執行個體的狀態變為已啟用。
配置項
說明
所屬的VPC網路ID
選擇密碼機執行個體需要綁定的VPC。
重要需要與您的ECS執行個體綁定的VPC是同一個。
所屬的VPC子網
選擇密碼機執行個體所屬的VPC子網網段。
分配私網IP地址
為密碼機執行個體分配一個私網IP地址。
重要私網IP地址必須是所屬的VPC子網網段中的IP地址,否則配置將會失敗。
末位為253、254、255的IP地址為系統保留地址,請勿使用。
設定密碼機執行個體白名單
設定訪問該密碼機執行個體的白名單。您可以輸入單個IP地址或網段地址,每行輸入1條資料,最多可以輸入10條資料。
未設定白名單:所有IP地址都能訪問密碼機執行個體。
設定了白名單:僅支援白名單內的訪問請求,不在白名單內的訪問請求將被拒絕。
重要如果您建立了叢集並設定了叢集的白名單,那麼叢集的白名單優先順序高於叢集中密碼機執行個體的白名單。
例如,叢集中密碼機執行個體的白名單為10.10.10.10,叢集的白名單為172.16.0.1,則您只能通過172.16.0.1訪問叢集中的密碼機執行個體。
不支援配置為0.0.0.0/0(允許存取所有來源IP)。
基於安全考慮,不推薦您允許存取所有來源IP。如果因臨時測試等原因確實需要允許存取所有來源IP,不配置白名單即可。
步驟二:建立並啟用叢集
叢集內一個可用性區域的密碼機執行個體使用同一VPC子網。
在虛擬密碼機執行個體頁面,定位到主密碼機執行個體,單擊操作列的建立叢集。
在建立並啟用叢集面板,完成①建立叢集,然後單擊下一步。
配置項
說明
叢集名稱
自訂叢集的名稱。名稱不能重複且長度不允許超過24個字元。
設定叢集訪問白名單
允許訪問叢集的IP地址。如果未設定白名單,則所有IP地址都能訪問叢集,如果設定了白名單,則不在白名單內的訪問請求將被拒絕。
您可以輸入單個IP地址或網段地址,每行輸入1條資料,最多可以輸入10條資料。
重要叢集的白名單優先順序高於叢集中密碼機執行個體的白名單。例如,您設定的叢集中密碼機執行個體的白名單為10.10.10.10,叢集的白名單為172.16.0.1,則您只能通過172.16.0.1訪問叢集中的密碼機執行個體。
不支援配置為0.0.0.0/0(允許存取所有來源IP)。
基於安全考慮,不推薦您允許存取所有來源IP。如果因臨時測試等原因確實需要允許存取所有來源IP,不配置白名單即可。
指定叢集的交換器(2~4個)
根據業務需要選擇可用性區域的交換器。
在密碼機執行個體叢集中,您至少配置2個交換器才能成功建立並啟用叢集。
在建立並啟用叢集面板,完成②啟用叢集。
匯入叢集認證。
在匯入叢集認證地區,單擊叢集CSR認證下載CSR認證檔案,然後上傳到ECS執行個體上儲存。例如,儲存為cluster.csr。
建立私密金鑰,並根據提示設定私密金鑰口令。例如,儲存為issuerCA.key。
openssl genrsa -aes256 -out issuerCA.key 2048建立自我簽署憑證。例如,儲存為issuerCA.crt。
openssl req -new -x509 -days 3652 -key issuerCA.key -out issuerCA.crt簽署叢集CSR認證,頒發的叢集憑證存放區在cluster.crt檔案中。
說明該步驟會使用到cluster.csr、issuerCA.key、issuerCA.crt檔案。
openssl x509 -req -in cluster.csr -days 3652 -CA issuerCA.crt -CAkey issuerCA.key -set_serial 01 -out cluster.crt返回Data Encryption Service管理主控台,匯入叢集認證並單擊提交。
在請輸入簽發者認證(PEM編碼)地區,輸入issuerCA.crt檔案的內容。
在請輸入簽發叢集認證(PEM編碼)地區,輸入cluster.crt檔案的內容。
初始化主密碼機執行個體。
重要僅支援通過密碼機管理執行個體工具初始化主密碼機執行個體,密碼機執行個體管理工具僅支援安裝在Linux作業系統。
步驟
說明
步驟1:下載密碼機執行個體管理工具。
根據密碼機所屬地區不同,工具版本不同。
印尼(雅加達)地區
CentOS
方式一:訪問hsm-client-v2.09.07.02-1.202411041707.x86_64.rpm,下載密碼機執行個體管理工具。
方式三:在虛擬密碼機執行個體頁面,找到目標密碼機執行個體,通過單擊規格列的
表徵圖。方式四:在啟用叢集頁面,單擊下載密碼機執行個體管理工具。
Debian
訪問hsm-client-v2.09.07.02-1.202411041707.x86_64.deb,下載密碼機執行個體管理工具。
除印尼(雅加達)外的其他地區
CentOS
方式一:訪問hsm-client-v2.03.15.10-1.x86_64.rpm,下載密碼機執行個體管理工具。
方式二:執行如下命令下載密碼機執行個體管理工具,該操作需要您的ECS伺服器串連公網。
wget -O hsm-client-v2.03.15.10-1.x86_64.rpm 'https://yundun-hsm4.oss-ap-southeast-1.aliyuncs.com/hsm-client-v2.03.15.10-1.x86_64.rpm'方式三:在虛擬密碼機執行個體頁面,找到目標密碼機執行個體,通過單擊規格列的
表徵圖。方式四:在啟用叢集頁面,單擊下載密碼機執行個體管理工具。
Debian
訪問hsm-client-2.03.15.10-20240710_1.x86_64.deb,下載密碼機執行個體管理工具。
步驟2:安裝密碼機管理工具。
執行如下命令:請將程式和設定檔安裝在/opt/hsm目錄下。
CentOS
請將樣本中的hsm-client-v2.xx.x86_64.rpm替換為實際的工具名稱。
sudo yum install -y hsm-client-v2.xx.x86_64.rpmDebian
請將樣本中的hsm-client-2.xx.x86_64.deb替換為實際的工具名稱。
sudo dpkg -i hsm-client-2.xx.x86_64.deb
步驟3:修改用戶端設定檔。
在密碼機管理工具的安裝目錄下,修改/opt/hsm/etc/hsm_mgmt_tool.cfg檔案中的servers配置項。
name、hostname修改為主密碼機的私人IP地址,您可以在虛擬密碼機執行個體頁面查詢IP。
owner_cert_path修改為issuerCA.crt的檔案路徑。
步驟4:登入主密碼機並查看使用者列表。
通過以下命令登入主密碼機。
/opt/hsm/bin/hsm_mgmt_tool /opt/hsm/etc/hsm_mgmt_tool.cfg執行
listUsers命令顯示使用者列表。cloudmgmt>listUsers Users on server 0(172.16.XX.XX): Number of users found:2 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PRECO admin NO 0 NO 2 AU app_user NO 0 NO
步驟5:將PRECO使用者改為CO使用者。
執行
loginHSM命令並以PRECO身份登入加密機。server0>loginHSM PRECO admin password loginHSM success執行
changePswd命令修改PRECO使用者的密碼,當您更改密碼後,PRECO使用者將成為CO使用者。cloudmgmt>changePswd PRECO admin <NewPassword> *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. Cav server does NOT synchronize these changes with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y Changing password for admin(PRECO) on 1 nodes通過
listUsers命令查看使用者列表,驗證PRECO使用者是否更改為CO使用者。cloudmgmt>listUsers Users on server 0(172.16.XX.XX): Number of users found:2 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 CO admin NO 0 NO 2 AU app_user NO 0 NO
步驟6:建立密碼機操作員(CU使用者)
警告請您先建立CU使用者,再將子密碼機添加到叢集,否則建立的CU使用者不會自動同步至子密碼機。
執行
createUser命令建立一個CU。CU使用者名稱和密碼支援ASCII字元,其中CU使用者名稱不超過20個字元,密碼為8~32個字元。
本文以CU使用者名稱為
crypto_user為例,您可以根據業務需要自主命名。重要如果您是配置KMS硬體密鑰管理執行個體的密碼機叢集,CU使用者名稱請使用
kmsuser。createUser CU crypto_user <enter password>執行
listUsers命令,查看CU是否已經建立成功。預期輸出:
cloudmgmt>listUsers Users on server 0(172.16.XX.XX): Number of users found:3 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 CO admin NO 0 NO 2 AU app_user NO 0 NO 3 CU crypto_user NO 0 NO
步驟7:驗證主密碼機狀態
返回到Data Encryption Service控制台,在啟用叢集頁面單擊
表徵圖重新整理密碼機狀態,然後單擊下一步。
在③添加加密機頁面,根據提示將子密碼機添加到叢集,然後單擊完成。
如果需要更多的密碼機執行個體,您需要購買密碼機執行個體,並將密碼機執行個體添加到叢集。
步驟三:啟動HSM用戶端(hsm_proxy)
修改HSM用戶端設定檔。
在密碼機管理工具的安裝目錄下,找到/opt/hsm/etc/hsm_proxy.cfg檔案,修改server.hostname為當前執行個體所屬VPC的IP地址,client.e2e_owner_crt_path為issuerCA.crt的檔案路徑。
說明issuerCA.crt即您在啟用叢集的過程中建立的自我簽署憑證。具體資訊,請參見步驟二:建立並啟用叢集。
{ "ssl": { "certificate": "/opt/hsm/etc/client.crt", "pkey": "/opt/hsm/etc/client.key", "CApath": "/opt/hsm/etc/certs", "server_ssl": "yes", "server_ch_ssl_ciphers": "default" }, "client": { "socket_type" : "UNIXSOCKET", "tcp_port" : 1111, "zoneid" : 0, "workers" : 1, "daemon_id" : 1, "reconnect_attempts": -1, "reconnect_interval": 1, "log_level": "INFO", "sslreneg": 0, "CriticalAlertScript": "", "e2e_owner_crt_path" : "<issuerCA.crt file path>", "create_object_minimum_nodes" : 1, "logfiles_location" : "" }, "loadbalance" : { "enable" : "yes", "prefer_same_zone": "no", "success_rate_weight" : 1, "relative_idleness_weight" : 1 }, "dualfactor": { "enable" : "no", "port" : 2225, "certificate" : "certificate.crt", "pkey" : "pkey.pem", "dualfactor_ssl": "yes", "dualfactor_ch_ssl_ciphers": "default" }, "server": { "hostname": "<instance ip>", "port": 2224 } }啟動HSM用戶端(hsm_proxy),並設定記錄檔路徑。
本文以將日誌儲存到liquidSecurity.1.WKCrty.log為例。
/opt/hsm/bin/hsm_proxy /opt/hsm/etc/hsm_proxy.cfg logfiles_location is not specified, logs will be available in current directory Logs will be available in liquidSecurity.1.WKCrty.log file驗證hsm_proxy是否串連成功。
通過執行
tail命令擷取hsm_proxy的記錄檔,查看hsm_proxy是否串連成功。例如,執行tail liquidSecurity.1.WKCrty.log命令,如果結果中出現e2e_handle_client_request:HSM FIPS STATE 2,表示已串連成功。tail liquidSecurity.1.WKCrty.log 2023-10-28T13:33:05Z liquidSecurity INF: check_preferred_srv_status_noclock: New preferred server node id:0 2023-10-28T13:33:05Z liquidSecurity INF: do_e2e_encryption_handshake: Trying to login to server as new server connection is established 2023-10-28T13:33:05Z liquidSecurity INF: e2e_handle_client_request: Got Authorize session response 2023-10-28T13:33:05Z liquidSecurity INF: get_partition_info: Get pHSM Info using e2e mgmtch 2023-10-28T13:33:05Z liquidSecurity INF: e2e_handle_client_request: Authorize session SUCCESS 2023-10-28T13:33:05Z liquidSecurity INF: e2e_handle_client_request: Got Partition Info 2023-10-28T13:33:05Z liquidSecurity INF: e2e_handle_client_request: GetPartitionInfo success 0 : HSM Return: SUCCESS 2023-10-28T13:33:05Z liquidSecurity INF: e2e_handle_client_request: HSM FIPS STATE 2 2023-10-28T13:33:06Z liquidSecurity INF: libevmulti_init: Initializing events 2023-10-28T13:33:06Z liquidSecurity INF: libevmulti_init: Ready !
步驟四:建立密鑰
如果您是配置KMS硬體密鑰管理執行個體的密碼機叢集,請跳過本步驟,具體請參見配置KMS硬體密鑰管理執行個體的密碼機叢集。
啟動key_mgmt_tool命令列工具。
/opt/hsm/bin/key_mgmt_tool執行
loginHSM命令,以CU身份登入HSM。Command: loginHSM -u CU -s crypto_user -p <enter password> Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS Cluster Status: Node id 0 status: 0x00000000 : HSM Return: SUCCESS執行
genSymKey命令,產生一個對稱金鑰。Command: genSymKey -l testkey -t 31 -s 32 Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 6 Cluster Status: Node id 0 status: 0x00000000 : HSM Return: SUCCESS執行
findKey命令,查詢您建立的密鑰。Command: findKey Total number of keys present: 1 Number of matching keys from start index 0::0 Handles of matching keys: 6 Cluster Status: Node id 0 status: 0x00000000 : HSM Return: SUCCESS Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS執行
exit命令,退出key_mgmt_tool命令列工具。Command: exit
步驟五:使用密碼機執行個體叢集進行加密解密
如果您是配置KMS硬體密鑰管理執行個體的密碼機叢集,請跳過本步驟,具體請參見配置KMS硬體密鑰管理執行個體的密碼機叢集。
您可以通過OpenSSL引擎、JCE或PKCS#11庫提供的介面使用密碼機叢集。更多資訊,請參見OpenSSL動態引擎、JCE或PKCS #11庫。
相關文檔
如果您需要擴充叢集、移除叢集、修改叢集名稱或訪問白名單,請參見建立GVSM(NIST FIPS)密碼機叢集。