使用Key Management Service(Key Management Service)的硬體密鑰管理執行個體時,需要串連Data Encryption Service密碼機叢集,由密碼機叢集實現資料自動同步、負載平衡以及資料高可用性。本文介紹如何配置KMS硬體密鑰管理執行個體的密碼機叢集。
架構樣本
KMS整合密碼機叢集可以兼顧密鑰管理的靈活性與硬體級安全保障,滿足國密或FIPS 140-2 Level 3的合規要求。KMS提供密鑰管理,確保密鑰的生命週期得到嚴格管控,降低使用密碼機的複雜度,HSM通過硬體級的安全保障設施,安全儲存體金鑰材料。雙方通訊採用TLS雙向認證加密通道,確保傳輸安全。
由於密碼機管理工具僅支援安裝在阿里雲ECS,因此您必須在主密碼機所屬的VPC子網內部署一台ECS伺服器,用於串連主密碼機進行密碼機相關配置。您也可以使用本地終端進行配置,但需確保與密碼機網路打通。
注意事項
KMS硬體密鑰管理執行個體關聯的密碼機僅支援通用密碼機。
密碼機、KMS硬體密鑰管理執行個體、ECS執行個體必須屬於同一個地區、且屬於同一個VPC。
管理中國內地密碼機時,ECS需要為Windows作業系統。管理非中國內地密碼機時,ECS需要為CentOS 8或 Alibaba Cloud Linux作業系統。
密碼機支援的地區和可用性區域
中國內地
地區 | 地區ID | 可用性區域 |
華東1(杭州) | cn-hangzhou | 可用性區域A、可用性區域G |
華東2(上海) | cn-shanghai | 可用性區域A、可用性區域B、可用性區域F |
華北2(北京) | cn-beijing | 可用性區域A、可用性區域F、可用性區域K |
華南1(深圳) | cn-shenzhen | 可用性區域A、可用性區域E |
西南1(成都) | cn-chengdu | 可用性區域A、可用性區域B |
非中國內地
地區 | 地區ID | 可用性區域 |
中國香港 | cn-hongkong | 可用性區域B、可用性區域C |
新加坡 | ap-southeast-1 | 可用性區域A、可用性區域B |
馬來西亞(吉隆坡) | ap-southeast-3 | 可用性區域A、可用性區域B |
沙特(利雅得) | me-central-1 | 可用性區域A、可用性區域B |
印尼(雅加達) | ap-southeast-5 | 可用性區域A、可用性區域B |
配置GVSM(國密)密碼機叢集
步驟一:購買密碼機叢集
叢集即將處於同一地區不同可用性區域、用於相同業務的一組密碼機執行個體關聯起來,進行統一管理,為業務應用提供密碼計算的高可用性、負載平衡以及橫向擴充的能力。
登入Data Encryption Service管理主控台,在頂部功能表列,選擇目標地區。
在虛擬密碼機執行個體頁簽,單擊建立密碼機執行個體。
在Data Encryption Service購買頁面,參考下表配置資訊,單擊立即購買並完成支付。
配置項 | 說明 |
地區 | 選擇密碼機執行個體的地區。
重要 密碼機執行個體只能在VPC中使用,且必須與您的VPC、KMS硬體密鑰管理執行個體的地區相同。 |
密碼服務類型 | 選擇泛型服務器密碼機GVSM。 |
部署模式 | 選擇雙可用性區域。 |
叢集名稱 | 長度為1~24個字元,以英文大小寫字母、中文或數字開頭,可包含數字、底線(_)或中劃線(-)。 |
專用網路 | 選擇密碼機所屬的VPC。 |
加入白名單 | 選擇是。此時HSM會將VPC網段加入到叢集白名單中,使得該VPC下的IP均可訪問密碼機叢集。 |
交換器 | 選擇2~4個交換器,交換器的可用性區域不能重複。 |
自動產生認證 | 選擇是。此時HSM會自動產生加密通訊所需認證並完成加密機內認證配置,KMS將自動擷取相關認證檔案並完成用戶端配置,使用者無需關心認證產生及配置流程。KMS和密碼機叢集採用TLS雙向認證加密通道,確保傳輸安全。認證有效期間10年。
重要 請勿為密碼機註冊UKEY管理員。認證有效期間10年,到期前HSM可自動輪轉認證,註冊UKEY管理員將導致輪轉失敗。 |
資料備份恢複 | 支援密碼機執行個體備份和恢複功能,確保資料安全持久性。每個備份可以備份一個密碼機資料。 備份鏡像在密碼機執行個體釋放後將保留90天,期滿自動刪除。此外,提供鏡像跨地區複製功能,以增強災難恢複能力。詳細介紹,請參見資料備份恢複。 |
鏡像擴充 | 備份中的鏡像數量,每個鏡像可以備份一次密碼機資料。 密碼機執行個體每日的北京時間00:00自動備份一次,產生一個鏡像。當鏡像數量達到上限時,系統將自動覆蓋最早產生的鏡像。 |
購買數量 | 預設為2,無需修改。 |
購買時間長度 | 選擇購買的有效服務時間。 為了防止Data Encryption Service到期未及時續約而導致的密鑰永久性丟失,建議您購買時選擇到期自動續約。當您選擇到期自動續約後,阿里雲會在服務到期前9個自然日從您購買密碼機時使用的支付賬戶自動扣款,為了防止計費失敗,請確保您的支付賬戶餘額充足。 |
仔細閱讀服務合約,單擊去支付,然後單擊訂購,完成購買。
購買成功後,您可以在虛擬密碼機執行個體頁面查看密碼機執行個體,密碼機叢集將在約5分鐘後完成建立。
步驟二:同步叢集資料
根據叢集同步方式,確定是否需要同步叢集中密碼機的資料。
配置GVSM(FIPS)密碼機叢集
步驟一:購買2個密碼機執行個體
登入Data Encryption Service管理主控台,在頂部功能表列,選擇目標地區。
在虛擬密碼機執行個體頁簽,單擊建立密碼機執行個體。
在Data Encryption Service購買頁面,參考下表配置資訊,單擊立即購買。
配置項 | 說明 |
地區 | 選擇密碼機執行個體的地區。
重要 密碼機執行個體只能在VPC中使用,且必須與您的VPC、KMS硬體密鑰管理執行個體的地區相同。 |
密碼服務類型 | 選擇通用密碼機。 |
部署模式 | 選擇雙可用性區域,具體可用性區域由HSM分配。 |
資料備份恢複 | 每個備份可以備份一個密碼機資料。開啟後需要選擇鏡像數量,每個鏡像表示可以備份一次密碼機資料。詳細介紹,請參見資料備份恢複。 |
購買數量 | 預設為2,無需修改。 |
購買時間長度 | 購買的有效服務時間。建議您選擇與KMS硬體密鑰管理執行個體相同的購買時間長度。
說明 建議您購買時選擇到期自動續約,防止Data Encryption Service到期未及時續約而導致的密鑰永久性丟失。您選擇到期自動續約後,阿里雲會在服務到期前9個自然日從您購買密碼機時使用的支付賬戶自動扣款。 |
仔細閱讀服務合約,單擊去支付,然後單擊訂購,完成購買。
步驟二:啟用密碼機執行個體
只需啟用主密碼機,無需啟用子密碼機。
訪問Data Encryption Service控制台的虛擬密碼機執行個體頁面,在頂部功能表列,選擇目標地區。
啟用主密碼機。
在密碼機執行個體配置對話方塊,配置密碼機執行個體,然後單擊確定。配置成功後,密碼機執行個體的狀態變為已啟用。
配置項 | 說明 |
所屬的VPC網路ID | 選擇密碼機執行個體需要綁定的VPC,和KMS硬體密鑰管理執行個體所屬的VPC必須保持一致。 |
所屬的VPC子網 | 選擇密碼機執行個體所屬的VPC子網IP,即選擇VPC下的其中一個交換器。 |
分配私網IP地址 | 為密碼機執行個體配置一個私網IP地址。 |
設定密碼機執行個體白名單 | 本情境下無需配置。 由於在後續建立並啟用叢集操作中會設定密碼機叢集的白名單,而叢集的白名單優先順序高於叢集中密碼機執行個體的白名單, 因此本情境下無需配置。 |
步驟三:建立並啟用叢集
叢集即將處於同一地區不同可用性區域、用於相同業務的一組密碼機執行個體關聯起來,進行統一管理,為業務應用提供密碼計算的高可用性、負載平衡以及橫向擴充的能力。
使用主密碼機建立叢集,然後添加子密碼機。
訪問Data Encryption Service控制台的虛擬密碼機執行個體頁面,在頂部功能表列,選擇目標地區。
定位到主密碼機執行個體,單擊操作列的建立叢集。
在建立並啟用叢集面板,完成①建立叢集,然後單擊下一步 。
配置項 | 說明 |
叢集名稱 | 自訂叢集的名稱。名稱不能重複且長度不允許超過24個字元。 |
設定叢集訪問白名單 | 允許訪問叢集的IP地址。 您可以輸入單個IP地址或網段地址,每行輸入1條資料,最多可以輸入10條資料。 在本文樣本中請確保如下IP均已添加到白名單中。 叢集中各密碼機執行個體所在交換器的網段 例如,叢集中密碼機執行個體所屬的VPC子網(交換器)網段分別為172.16.1.0/24和172.16.2.0/24,則在編輯框中增加輸入兩行,內容分別為:172.16.1.0/24和172.16.2.0/24。 ECS執行個體的私網IP 例如,ECS執行個體的私網IP為172.16.3.0,則在編輯框中增加輸入一行,內容為:172.16.3.0。 KMS執行個體綁定的交換器的網段 如果此時還未購買KMS執行個體,請在購買並啟用KMS執行個體後,再為叢集添加該白名單。
重要 叢集的白名單優先順序高於叢集中密碼機執行個體的白名單。例如,您設定的叢集中密碼機執行個體的白名單為10.10.10.10,叢集的白名單為172.16.0.1,則您只能通過172.16.0.1訪問叢集中的密碼機執行個體。 不支援配置為0.0.0.0/0(允許存取所有來源IP)。 基於安全考慮,不推薦您允許存取所有來源IP。如果因臨時測試等原因確實需要允許存取所有來源IP,不配置白名單即可。
|
指定叢集的交換器(2~4個) | 配置另外一個密碼機執行個體綁定的交換器。 |
在建立並啟用叢集面板,完成②啟用叢集。
匯入叢集認證。
在匯入叢集認證地區,單擊叢集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管理主控台,匯入叢集認證並單擊提交。
初始化主密碼機執行個體。
步驟 | 說明 |
步驟1:下載密碼機執行個體管理工具。 |
重要 密碼機執行個體管理工具僅支援安裝在Linux作業系統。 選擇如下方式之一下載工具: 下載密碼機執行個體管理工具。 執行如下命令下載密碼機執行個體管理工具,該操作需要您的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'
在執行個體列表頁面,找到目標密碼機執行個體,通過單擊密碼機執行個體的規格列資訊,然後單擊下載密碼機執行個體管理工具。 在啟用叢集頁面,單擊下載密碼機執行個體管理工具。
|
步驟2:安裝密碼機管理工具。 | 執行如下命令:將程式和設定檔安裝在/opt/hsm目錄下。 sudo yum install -y hsm-client-v2.03.15.10-1.x86_64.rpm
|
步驟3:修改用戶端設定檔。 | 在密碼機管理工具的安裝目錄下,修改/opt/hsm/etc/hsm_mgmt_tool.cfg檔案中的servers配置項。 hsm_mgmt_tool.cfg檔案樣本 {
"servers": [{
"name": "172.16.XX.XX",
"hostname": "172.16.XX.XX",
"port": 2225,
"certificate": "/opt/hsm/etc/client.crt",
"pkey": "/opt/hsm/etc/client.key",
"CAfile": "",
"CApath": "/opt/hsm/etc/certs",
"ssl_ciphers": "",
"server_ssl": "yes",
"enable": "yes",
"owner_cert_path": "<issuerCA.crt file path>"
}],
"scard": {
"enable": "no",
"port": 2225,
"ssl": "no",
"ssl_ciphers": "",
"certificate": "cert-sc",
"pkey": "pkey-sc",
}
}
|
步驟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使用者不會自動同步至子密碼機。 為了確保安全性,KMS硬體密鑰管理執行個體通過使用者名稱為kmsuser的CU使用者身份訪問密碼機叢集。 使用密碼機執行個體管理工具登入主密碼機,執行createUser命令建立一個名為kmsuser的Crypto User(CU)使用者。 createUser CU kmsuser <enter password>
重要 請您牢記kmsuser的初始密碼,在後續啟用KMS硬體密鑰管理執行個體時會用到。 執行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 kmsuser NO 0 NO
執行quit命令退出管理工具。 cloudmgmt>quit
disconnecting from servers, please wait...
|
步驟7:驗證主密碼機狀態 | 返回到Data Encryption Service控制台,在啟用叢集頁面單擊 表徵圖重新整理密碼機狀態,然後單擊下一步。 |
在③添加加密機頁面,根據提示將子密碼機添加到叢集,然後單擊完成。
說明 當待添加的密碼機執行個體狀態是已初始化時,無法添加到叢集,請聯絡我們。
配置成功後,叢集會自動將主要金鑰資料同步到子密碼機,例如將主密碼機中的kmsuser同步至子密碼機。您只需查看叢集中兩台密碼機執行個體的摘要資訊是否一致,若摘要資訊不一致,請聯絡我們。
後續配置
請前往Key Management Service控制台購買KMS硬體密鑰管理執行個體,並完成相關配置。具體操作,請參見購買和啟用KMS執行個體。