Kluster instans HSM mengelompokkan instans HSM dari wilayah yang sama di berbagai zona. Saat beberapa instans melayani workload yang sama, aplikasi Anda menggunakan algoritma polling untuk mendistribusikan operasi kriptografi di seluruh kluster—memberikan ketersediaan tinggi, load balancing, dan skalabilitas horizontal tanpa perlu mengubah kode aplikasi.
Untuk penerapan produksi, tempatkan minimal dua instans HSM di zona berbeda dalam wilayah yang sama guna menghindari risiko kegagalan akibat ketergantungan pada satu zona saja.
Untuk membuat kluster HSM untuk instans manajemen kunci perangkat keras KMS, lihat Konfigurasikan kluster HSM untuk instans KMS tipe manajemen kunci perangkat keras.
Cara kerja
Kluster terdiri dari satu HSM utama dan satu atau beberapa HSM anak. Semua instans harus berada dalam Virtual Private Cloud (VPC) yang sama, tetapi dapat berada di subnet atau zona yang berbeda.
Jika Anda telah mengonfigurasi informasi kluster saat membeli GVSM, CloudHSM secara otomatis membuat kluster berdasarkan konfigurasi tersebut. Anda dapat melewati langkah ini.
Sinkronisasi kluster menyalin kunci, sertifikat SSL, dan data pengguna dari HSM utama ke semua HSM anak. Metode sinkronisasi bergantung pada tanggal pembelian HSM Anda:
| Tanggal pembelian | Metode sinkronisasi default |
|---|---|
| Pada atau setelah 9 Januari 2025 | Otomatis — data disinkronkan segera setelah terjadi perubahan apa pun pada HSM utama |
| Sebelum 9 Januari 2025 | Manual — sinkronkan kluster secara manual setelah setiap perubahan pada HSM utama |
Untuk meningkatkan dari sinkronisasi manual ke otomatis, hubungi kami.
Peningkatan ini tidak dapat dikembalikan. Lakukan selama jam sepi.
Pengguna instans manajemen kunci perangkat keras KMS:
Control plane (membuat dan menghapus kunci): tidak tersedia selama peningkatan, dilanjutkan secara otomatis setelahnya
Data plane (enkripsi dan dekripsi): tidak terpengaruh
Pengguna lain: Tingkatkan versi kit pengembangan perangkat lunak (SDK) HSM yang digunakan aplikasi Anda sebelum melakukan peningkatan.
Control plane: tidak tersedia selama peningkatan, dilanjutkan secara otomatis setelahnya
Data plane: berisiko mengalami gangguan layanan pada beberapa arsitektur
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans HSM. Lihat Beli instans HSM
Instans Elastic Compute Service (ECS) Windows dalam VPC yang sama dengan HSM. Instans ini menjalankan tool management HSM — bukan server bisnis. Lihat Memulai instans Windows
Langkah 1: Buat dan aktifkan kluster
Jika Anda telah mengonfigurasi informasi kluster saat membeli instans General-purpose Virtual Security Module (GVSM), Cloud Hardware Security Module (CloudHSM) akan membuat kluster secara otomatis. Lewati langkah ini.
Aktifkan HSM utama.
Buka halaman VSMs di Konsol CloudHSM. Di bilah navigasi atas, pilih wilayah.
Temukan HSM dan klik Enable di kolom Actions.
Pada kotak dialog Configure HSM Instance, atur parameter berikut dan klik OK. Saat konfigurasi berhasil, status HSM berubah menjadi Enabled.
Parameter Deskripsi VPC ID VPC yang akan di-bind ke HSM. Harus sama dengan VPC instans ECS Anda. VPC Subnet Subnet yang akan ditetapkan ke HSM dalam VPC. Private IP Address Alamat IP privat yang akan ditetapkan ke HSM. Harus termasuk dalam subnet yang ditetapkan. Sistem menyisihkan alamat yang berakhiran 253, 254, atau 255 — jangan gunakan alamat tersebut. Configure HSM Whitelist Alamat IP dan Blok CIDR yang diizinkan mengakses HSM ini. Masukkan satu alamat atau blok per baris, maksimal 10 baris. Jika dibiarkan kosong, semua alamat IP dapat mengakses HSM. Jika entri ditambahkan, hanya alamat tersebut yang diizinkan. Catatan: Jika 0.0.0.0/0dimasukkan, semua IP diizinkan — ini setara dengan daftar putih kosong. Untuk keamanan, biarkan daftar putih kosong daripada memasukkan0.0.0.0/0. Penting: Daftar putih kluster menggantikan daftar putih HSM. Misalnya, jika daftar putih HSM berisi10.10.10.10dan daftar putih kluster berisi172.16.0.1, hanya172.16.0.1yang dapat mengakses HSM.
Buat kluster.
Temukan HSM utama dan klik Create Cluster di kolom Actions.
Pada panel Create and Activate Cluster, atur parameter berikut:
Parameter Deskripsi Cluster Name Nama unik hingga 24 karakter. Configure Whitelist Alamat IP dan Blok CIDR yang diizinkan mengakses kluster. Masukkan satu alamat atau blok per baris, maksimal 10 baris. Jika dibiarkan kosong, semua alamat IP dapat mengakses kluster. Penting: Daftar putih kluster menggantikan daftar putih setiap HSM. Memasukkan 0.0.0.0/0mengizinkan semua IP — biarkan daftar putih kosong jika Anda ingin akses tanpa batasan.Specify vSwitches vSwitch untuk kluster. Pilih minimal dua untuk membuat dan mengaktifkan kluster.
Inisialisasi HSM utama, lalu klik Next. Kluster hanya dapat diaktifkan ketika status HSM utama adalah Initialized. Pilih salah satu metode berikut:
Metode Langkah Metode 1: Inisialisasi dengan beberapa klik (hanya GVSM, tidak memerlukan UKEY) Di panel, klik Initialize the master HSM with a few clicks. Di kotak dialog Tips, klik OK. Inisialisasi memerlukan waktu 1–5 menit. Klik ikon
di samping Selected Master HSM: untuk refresh status. Saat status menunjukkan Initialized, jangan inisialisasi ulang HSM.Metode 2: Gunakan tool management HSM (hanya Windows) Di panel, klik Download HSM Management Tool. Ekstrak paket dan ikuti bab "3.2.1 Initial Setup" dalam panduan pengguna yang disertakan. Ikuti petunjuk untuk menambahkan HSM anak ke kluster, lalu klik Complete.
Langkah 2: Konfigurasikan autentikasi TLS mutual (opsional)
Otentikasi TLS mutual (mTLS) menggunakan Otoritas Sertifikat (CA) yang Anda kendalikan untuk membangun kepercayaan kriptografi antara client Anda dan kluster HSM. Sertifikat CA yang Anda hasilkan atau unduh menjadi root of trust kriptografi untuk semua koneksi kluster—setiap client dan server dalam kluster diverifikasi terhadap CA ini. Simpan kunci privat CA di mesin offline yang aman dan batasi akses kepadanya.
Skenario 1: HSM menghasilkan sertifikat secara otomatis saat pembelian
Hanya instans GVSM yang mendukung pembuatan sertifikat otomatis. Dalam skenario ini, CloudHSM menghasilkan dan menerapkan sertifikat ke HSM sisi server secara otomatis. Anda hanya perlu menerapkan sertifikat klien.
Di halaman detail HSM, klik Get Cluster Certificate. Folder yang diunduh berisi file berikut:
certs/ ├── client.p12 (Sertifikat klien dalam format PKCS12, mencakup kunci privat) ├── client.pem (Sertifikat klien dalam format PEM) ├── rootca.key (Kunci privat CA) ├── rootca.pem (Sertifikat CA dalam format PEM) ├── server.p12 (Sertifikat server dalam format PKCS12) └── passphrase (Password untuk sertifikat .p12)Terapkan
client.p12danrootca.pemke client Anda. Di file konfigurasi client, atur path file untukclient.p12danrootca.pem, serta passphrase-nya. Lihat dokumentasi dalam paket yang diunduh untuk detail lebih lanjut.
CloudHSM secara otomatis menerapkan sertifikat ke HSM. Tidak diperlukan tindakan di sisi server.
Sertifikat server berlaku selama 10 tahun secara default. CloudHSM secara otomatis menghasilkan sertifikat baru dan melakukan rotasi sebelum masa berlaku habis. Jangan gunakan tool management HSM untuk membuat administrator UKEY—hal ini menyebabkan kegagalan rotasi sertifikat.
Skenario 2: Pembuatan sertifikat manual
Instans GVSM mendukung pembuatan sertifikat otomatis, tetapi jika fitur ini tidak diaktifkan saat pembelian, Anda dapat mengikuti langkah-langkah berikut untuk menghasilkan dan menerapkan sertifikat secara manual.
Jika instans GVSM Anda tidak memiliki fitur pembuatan sertifikat otomatis yang diaktifkan saat pembelian, hasilkan dan terapkan sertifikat secara manual.
Hasilkan sertifikat
Unduh tool pembuatan sertifikat (dkms_cert_tool).
Tidak ada batasan lingkungan operasi untuk tool ini—Anda dapat menjalankannya di komputer lokal, instans ECS, atau lingkungan lain yang memenuhi persyaratan tool. Jika Anda dapat menghasilkan sertifikat CA, klien, dan server tanpa tool ini, Anda dapat menggunakan metode sendiri—tool ini bersifat opsional.
Ekstrak file yang diunduh dan jalankan tool sesuai sistem operasi Anda. Tool ini menghasilkan file sertifikat di folder
certs.PentingUntuk kluster produksi, hasilkan kunci privat CA di mesin offline yang aman dan simpan dengan baik. Untuk pengembangan dan pengujian, lingkungan apa pun yang memenuhi persyaratan tool sudah cukup.
Windows
Opsi A — Klik ganda
hsm_certificate_generate.exedi folderWindows. Sertifikat dihasilkan dengan password default12345678.Opsi B — Jalankan perintah berikut untuk menentukan password kustom:
./hsm_certificate_generate -dir ./certs -pswd 12345678
Linux
Beralih ke direktori yang berisi folder
Linuxdan jalankan:./hsm_certificate_generate -dir ./certs -pswd 12345678macOS
Beralih ke direktori yang berisi folder
darwindan jalankan:./hsm_certificate_generate -dir ./certs -pswd 12345678Flag
-dirmengatur path output. Flag-pswdmengatur password untuk file sertifikat PKCS12 (.p12) dan file kunci privat CA (.key).Setelah perintah selesai, folder
certsberisi:certs/ ├── client.p12 (Sertifikat klien dalam format PKCS12, mencakup kunci privat) ├── client.pem (Sertifikat klien dalam format PEM) ├── rootca.key (Kunci privat CA) ├── rootca.pem (Sertifikat CA dalam format PEM) ├── server.p12 (Sertifikat server dalam format PKCS12) └── server.pem (Sertifikat server dalam format PEM)
Terapkan sertifikat klien
Terapkan client.p12 dan rootca.pem ke client Anda. Di file konfigurasi client, atur path file dan password yang Anda tentukan saat menghasilkan sertifikat. Lihat dokumentasi dalam paket yang diunduh untuk detail lebih lanjut.
Terapkan sertifikat server
Tool management HSM hanya berjalan di Windows.
Klik ikon unduh
di kolom Specifications HSM utama untuk mengunduh tool management HSM.
Ekstrak paket, temukan
PKIManager-X.X.X.X.exe, dan transfer ke instans ECS Windows Anda. Lihat Transfer file ke instans Windows menggunakan Remote Desktop Connection.Di instans ECS, klik ganda
PKIManager-X.X.X.X.exe. Pilih System > TCP/IP Connection.Di kotak dialog TCP/IP Connection, masukkan IP Address dan Port HSM utama. Port-nya adalah
8020. Temukan alamat IP di konsol.
Klik Connect. Di kotak dialog PKIManager, klik OK, lalu klik Login.
Setelah login, daftarkan akun administrator untuk keamanan lebih tinggi. Lihat bagian 2.1.3 Register Administrator dan 2.1.2 Administrator Logon dalam Panduan Manajemen Pengguna GVSM yang disertakan dalam tool.
Lengkapi konfigurasi berikut di tool management HSM:
Konfigurasi Langkah Sertifikat klien ( client.pem)Pilih Key Management > Client Management. Di kotak dialog Client Certificate Management, klik Import Certificate. Atur Certificate Type ke International TLS Client RSA Certificate [pem], pilih client.pem, lalu klik Import.Sertifikat server ( server.p12)Pilih Key Management > Server Management. Di kotak dialog Server P12 Certificate Management, klik Import Certificate. Atur Certificate Type ke International TLS Server RSA Certificate [p12], pilih server.p12, masukkan Certificate Password (password yang Anda atur saat pembuatan; default adalah12345678), lalu klik Import.Properti port perangkat GVSM Pilih Device Management > Host Port Properties. Atur nilai berikut: Socket KeepAlive Time: 60, Message Header Length:0, Message Encoding Format:ASCII, Host Service Communication Mode:Bidirectional Communication, Host Service Communication Protocol:TLSv1.2. Klik Reset, lalu klik Restart Now dan OK.
Langkah 3: Sinkronkan data kluster
Perilaku sinkronisasi bergantung pada tipe kluster Anda:
Sinkronisasi Kluster Otomatis — Tidak perlu tindakan. Kunci, sertifikat SSL, dan data pengguna pada HSM utama disinkronkan ke HSM anak secara otomatis.
Sinkronisasi Kluster Manual — Sinkronkan kluster setelah membuat dan mengaktifkannya, serta setelah setiap perubahan data pada HSM utama. Sinkronisasi tidak diperlukan saat melakukan scale out kluster.
Sinkronisasi kluster memerlukan waktu sekitar 5 menit. Lakukan sinkronisasi selama jam sepi.
Untuk menyinkronkan kluster manual:
Di halaman VSMs, temukan HSM utama dan pastikan tipe klusternya adalah Manual Cluster Synchronization.

Di kolom Actions, klik Synchronize Cluster. Di kotak dialog, klik Synchronize Cluster lagi.
Langkah 4: Hubungkan dan jalankan operasi kriptografi
Paket perangkat lunak HSM berisi panduan developer dan program uji SDK. Gunakan API seperti yang dijelaskan dalam panduan untuk melakukan operasi kriptografi.
Untuk mengunduh paket perangkat lunak: di halaman VSMs, temukan HSM yang diperlukan dan klik
di samping kolom Specifications, lalu ekstrak paket tersebut.
Contoh berikut menggunakan GVSM. Buka Alibaba Cloud GVSM software package > SDK > JAVA > Server HSM interface material > Test demo directory > Test case APITest.java dan jalankan test case tersebut.
Ganti 192.168.XX.XX dengan alamat IP privat yang ditetapkan ke HSM Anda.package cn.tass.hsm;
import cn.tass.SJJ1507.devices.RasKeyUtils;
import cn.tass.common.kits.Padding;
import cn.tass.exceptions.TAException;
import cn.tass.hsm.GHSMAPI;
import cn.tass.kits.Forms;
import cn.tass.hsm.Host;
import cn.tass.hsm.LogConfig;
import cn.tass.util.encoders.Base64;
import org.junit.Test;
import javax.naming.ConfigurationException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class APITest {
LogConfig logConfig = new LogConfig("error", "./");
Host host1 = new Host("GHSM", -3, "192.168.XX.XX", 8019, 5);
List<Host> hosts = new ArrayList<Host>() {{
add(host1);
}};
String config =
"{"
+ "[LOGGER];"
+ "logsw=debug,error;logPath=./;"
+ "[HOST 1];"
+ "hsmModel=GHSM;"
+ "host=192.168.XX.XX;linkNum=-3;"
+ "port=8019;"
+ "timeout=5;"
+ "}";
// GHSMAPI api = GHSMAPI.getInstance(hosts, logConfig);
GHSMAPI api = GHSMAPI.getInstance(config);
/**
* Kunci simetris yang dienkripsi oleh local master key (LMK)
*/
byte[] symmetricKey = Forms.hexStringToByteArray("669C1CEDDAFA267CC5D727EA727558B5");
byte[] verifyValue = Forms.hexStringToByteArray("BD8596C22E5A4D88");
byte[] symmetricKey1 = Forms.hexStringToByteArray("93EF12C95813586FEC3EFDBC7B37642D");
byte[] verifyValue1 = Forms.hexStringToByteArray("78306FD68851B8E6");
/**
* Ciphertext kunci sesi yang dienkripsi oleh LMK
*/
byte[] symmetricKeyKEK = Forms.hexStringToByteArray("2E80A42018F186BCCBCF639F644629E8");
/**
* Nilai checksum kunci sesi
*/
byte[] verifyValueMAC = Forms.hexStringToByteArray("734D092CD8C23E38");
/**
* Ciphertext yang dilindungi oleh protection key
*/
byte[] protectionKey = Forms.hexStringToByteArray("2EACE685C5EB2638D1208742F3BE60CD44210B43C894A77C");
/**
* Message Authentication Code (MAC) ciphertext yang dilindungi oleh protection key
*/
byte[] protectionMAC = Forms.hexStringToByteArray("0CB8702D41CBE487");
/**
* Kunci publik RSA dalam format DER
*/
byte[] publicKeyRSA = Forms.hexStringToByteArray("308186028180E14CAAFFCEC6D014457D7CA3E943DBABA1299BDBC17690C8E70F7BFA10EA02450805DA4C6CDC38BFBF1349C95B81A88177BA31C08E366EF965CA41EB36A2DACE611B80A752615A094B8291AAB6F8BB3A5894E72842371F34FA04C10DF42C2FEA95C51B9D49BE8B795E10474954FE01BAAC63532520069465FA62EDB266AADEBB020103");
public APITest() throws TAException, ConfigurationException {
}
/**
* Pembuatan kunci simetris
*/
@Test
public void genSymmKey() throws TAException {
ArrayList<byte[]> bytes = api.genSymmKey(3);
System.out.println("Kunci simetris yang dienkripsi oleh LMK:" + Forms.byteToHexString(bytes.get(0)));
System.out.println("Nilai checksum kunci simetris:" + Forms.byteToHexString(bytes.get(1)));
}
/**
* Enkripsi dan dekripsi data menggunakan kunci simetris
*/
@Test
public void generalDataEnc() throws TAException {
byte[] bytes1 = api.generalDataDec(Forms.hexStringToByte("789F01F9CC1BE0FF7429D7EAB215ABA1"),TACryptConst.ENC_MODE_CBC, TACryptConst.KEY_TYPE_RULE, TACryptConst.KEY_ALG_AES128,
Forms.hexStringToByte("AE6BA9133D0D4BB0090882E33F03D905D779785299F12C241936CB6AE45B9D2CB5C6B4E6C96D74BEB7D4A53684A18E0764DBE6A2383FB43C8CCCBDC1E84DF4D593141B302CB0F96074B32E06924F54AC342584EF47D41EF0022362A89F07B96071D3D0910C7A581FE0F7BC564F28107C9EBDD060AB11DC0700E3577606BCD666C93207E2AFDCF84E6FA7FE84A60BB39B0B0489EDDBEFB1C95768EA9010C993B2D51B8A752396FE585422F766CBAC3CCC7301C92483D726DEF325A685D861ABFFABF2C91022DB984D8E606CAA8AEE01DA969C72F81F0D13E96DCDE0DEAAF4309517618FB4C5BA6281F262C511E3A90F9ED952FD6D0ACEB6CCD4F5FA96DD6C15A2A2B848C1A224AAE1081102FC7313EB233112B1C0079352310E974EB1155A759374004095E2256B0ADC3BFFFF150AF071"), b);
System.out.println("Hasil dekripsi AES:" + Forms.byteToHexString(bytes1));
}
/**
* Pembuatan dan verifikasi signature RSA
*/
@Test
public void RSAencdata() throws TAException {
byte[] bytes = api.RSAPubEncData(11, 1, TACryptConst.DIGEST_ALG_SHA256, new byte[0], Forms.hexStringToByte("{createTime=1606380202000, createUserId=144, ip=124.204.XX.XX, key=SYJHD202011266020179058, orderNumber=SYJHD202011266020179058, productId=161391, scene=SYJHD}"));
System.out.println("Hasil enkripsi kunci publik:" + Forms.byteToHexString(bytes));
byte[] bytes1 = api.RSAPriDecData(11, 1, TACryptConst.DIGEST_ALG_SHA256, new byte[0], bytes);
System.out.println("Hasil dekripsi kunci privat:" + Forms.byteToHexString(bytes1));
}
/**
* Pasangan kunci SM2 yang dihasilkan dan kunci privat yang dienkripsi oleh LMK
*/
@Test
public void generateSM2Key() throws TAException {
ArrayList<byte[]> bytes = api.genSM2Key();
System.out.println("Kunci publik dalam format DER:" + Forms.byteToHexString(bytes.get(0)));
System.out.println("Kunci privat yang dienkripsi oleh LMK:" + Forms.byteToHexString(bytes.get(1)));
}
/**
* Pembuatan angka acak
*/
@Test
public void genRandom() throws TAException {
String s = api.genRandom(15);
System.out.println(s);
}
/**
* Pemeriksaan status HSM
*/
@Test
public void getHSMstatus() throws TAException {
String hsMstatus = api.getHSMstatus();
System.out.println(hsMstatus);
}
}Operasi tambahan
Scale out kluster
Tambahkan instans HSM dari zona berbeda ke kluster yang sudah ada untuk meningkatkan kapasitas dan ketersediaan. HSM hanya dapat ditambahkan jika semua kondisi berikut terpenuhi:
HSM belum diinisialisasi
HSM berada dalam status Enabled atau New
HSM bertipe sama dengan HSM utama
Tidak ada vSwitch yang dikonfigurasi untuk HSM, atau menggunakan vSwitch yang sama dengan HSM utama
Saat HSM dengan daftar putih yang sudah ada ditambahkan ke kluster, daftar putih kluster menggantikan daftar putih HSM, dan daftar putih HSM asli dihapus.
Untuk melakukan scale out kluster HSM untuk instans manajemen kunci perangkat keras KMS, metode sinkronisasi kluster harus otomatis. Jika sinkronisasi bersifat manual, hubungi dukungan teknis Alibaba Cloud untuk melakukan peningkatan sebelum scale out.
Untuk melakukan scale out:
Di halaman VSMs, temukan HSM utama dan klik Expand Cluster di kolom Actions.
Tambahkan HSM menggunakan salah satu metode berikut:
Tidak ada HSM yang tersedia: Klik Purchase an HSM instance di kotak dialog Add HSM. HSM yang dibeli akan ditambahkan ke kluster secara otomatis—CloudHSM menetapkan alamat IP dan menyinkronkan data kluster.
HSM tersedia: Di kotak dialog Add HSM, pilih HSM, klik ikon
, lalu klik OK.
Hapus instans dari kluster
Hapus HSM anak sebelum menghapus HSM utama. Jika hanya HSM utama yang tersisa, hapus langsung. Kluster akan dihapus secara otomatis saat HSM utama dihapus.
Untuk setiap HSM yang akan dihapus:
Di halaman VSMs, temukan HSM dan klik Disable di kolom Actions. Di kotak dialog, klik Disable lagi.
Klik Remove from Cluster di kolom Actions. Di kotak dialog, klik Remove from Cluster lagi.
Ubah nama kluster dan daftar putih akses
Di halaman VSMs, klik ID instans HSM mana pun dalam kluster (utama atau anak).
Di tab Details, edit nama kluster dan daftar putih akses. Masukkan satu alamat IP atau Blok CIDR per baris, maksimal 10 entri. Jika tidak ada daftar putih yang diatur, semua alamat IP dapat mengakses kluster. Jika entri ada, hanya alamat yang terdaftar yang diizinkan.
Penting- Daftar putih kluster menggantikan daftar putih setiap HSM dalam kluster. Misalnya, jika daftar putih HSM berisi
10.10.10.10dan daftar putih kluster berisi172.16.0.1, hanya172.16.0.1yang dapat mengakses HSM. - Memasukkan0.0.0.0/0mengizinkan semua alamat IP. Biarkan daftar putih kosong jika Anda ingin akses tanpa batasan.
Tukar posisi HSM utama dan HSM anak
Naikkan HSM anak menjadi HSM utama secara manual. Operasi ini hanya tersedia untuk kluster yang menggunakan sinkronisasi manual.
Di halaman VSMs, temukan HSM anak dan klik Switch to Master di kolom Actions.
Di kotak dialog, klik Switch.