Configure um cluster de Cloud Hardware Security Module (Cloud HSM) do zero: ative um hardware security module (HSM) como mestre, crie e ative o cluster, conecte o cliente HSM e gere sua primeira chave criptográfica.
Não use chaves de teste em ambientes de produção. Essas chaves servem apenas para validação e não oferecem as garantias de segurança exigidas em produção.
Para usar um cluster HSM com uma instância do Key Management Service (KMS) do tipo gerenciamento de chaves de hardware, consulte Configurar um cluster HSM para uma instância do KMS do tipo gerenciamento de chaves de hardware . As etapas 4 e 5 deste guia não se aplicam a esse cenário.
Pré-requisitos
Antes de começar, verifique se você tem:
Um HSM adquirido e ativado. Consulte Adquirir e ativar um HSM.
Uma instância ECS executando CentOS 8 ou Alibaba Cloud Linux na mesma Virtual Private Cloud (VPC) do HSM. Essa instância ECS serve para instalar a ferramenta de gerenciamento do HSM, e não como servidor de negócios. Consulte Introdução às instâncias Linux.
Etapa 1: Ativar um HSM como mestre
Um cluster HSM consiste em um HSM mestre e vários HSMs não mestres. Antes de criar o cluster, designe um HSM como mestre.
Acesse a página VSMs no console do Cloud Hardware Security Module. Na barra de navegação superior, selecione uma região.
Na página VSMs, localize o HSM e clique em Enable na coluna Actions.
-
Na caixa de diálogo Configure HSM instance, defina os parâmetros a seguir e clique em OK. Após a configuração bem-sucedida, o Status do HSM muda para Enabled.
Parâmetro
Descrição
VPC ID
A VPC a ser vinculada ao HSM.
VPC subnet
A sub-rede a ser atribuída ao HSM na VPC.
Private IP address
O endereço IP privado a ser atribuído ao HSM. Deve pertencer à sub-rede selecionada. O sistema reserva endereços IP cujo último octeto é 253, 254 ou 255 — não os utilize.
Configure HSM whitelist
Os endereços IP ou blocos CIDR com permissão para acessar o HSM. Suporta até 10 entradas (uma por linha). Se deixado em branco, todos os endereços IP poderão acessar o HSM. Caso haja uma lista de permissões configurada para o cluster, ela terá precedência sobre a lista do HSM. A entrada
0.0.0.0/0não é suportada — para permitir todos os endereços IP, deixe a lista de permissões em branco.
Etapa 2: Criar e ativar um cluster HSM
Esta etapa estabelece sua propriedade e controle sobre o cluster por meio de uma cadeia de confiança baseada em certificados. O processo envolve:
Criar o cluster e especificar a configuração de rede
Gerar uma autoridade certificadora (CA) autoassinada e usá-la para assinar a solicitação de assinatura de certificado (CSR) do cluster
Inicializar o HSM mestre com a ferramenta de gerenciamento do HSM
Os HSMs na mesma zona usam a mesma sub-rede VPC.
Criar o cluster
Na página VSMs, localize o HSM mestre e clique em Create cluster na coluna Actions.
-
No painel Create and activate cluster, conclua a etapa Create cluster e clique em Next.
Parâmetro
Descrição
Cluster name
Um nome exclusivo para o cluster. Máximo de 24 caracteres.
Configure whitelist
Os endereços IP ou blocos CIDR com permissão para acessar o cluster. Suporta até 10 entradas (uma por linha). A lista de permissões do cluster tem precedência sobre qualquer lista de permissões no nível do HSM. A entrada
0.0.0.0/0não é suportada — para permitir todos os endereços IP, deixe a lista de permissões em branco.Specify vSwitches
Os vSwitches para o cluster. São necessários pelo menos 2 vSwitches.
Ativar o cluster
Importar um certificado de cluster
O processo de ativação do cluster usa um certificado CA gerado localmente para assinar a CSR do cluster. Isso comprova sua propriedade dos HSMs e cria a base de confiança para todas as conexões futuras.
Na seção Upload cluster certificate, clique em Cluster CSR certificate para baixar o arquivo CSR (
cluster.csr). Faça upload do arquivo para sua instância ECS.-
Gere uma chave privada e defina uma senha para ela. Isso cria o arquivo
issuerCA.key.openssl genrsa -aes256 -out issuerCA.key 2048 -
Crie um certificado CA autoassinado. Isso gera o arquivo
issuerCA.crt, que será usado nas etapas seguintes.openssl req -new -x509 -days 3652 -key issuerCA.key -out issuerCA.crt -
Assine a CSR do cluster usando seu certificado CA e a chave correspondente. Isso gera o arquivo
cluster.crt, que você enviará ao console na próxima etapa.Este comando usa
cluster.csr,issuerCA.crteissuerCA.key.openssl x509 -req -in cluster.csr -days 3652 -CA issuerCA.crt -CAkey issuerCA.key -set_serial 01 -out cluster.crt -
De volta à etapa Activate cluster no console, importe o certificado e clique em Submit:
Na seção Enter the issuer certificate in PEM format, cole o conteúdo de
issuerCA.crt.Na seção Enter the issued cluster certificate in PEM format, cole o conteúdo de
cluster.crt.
Inicializar o HSM mestre
O HSM mestre só pode ser inicializado usando a ferramenta de gerenciamento do HSM em um sistema operacional Linux.
Etapa 1: Baixar a ferramenta de gerenciamento do HSM
A versão da ferramenta varia conforme a região onde o HSM está localizado.
Região Indonésia (Jacarta)
-
CentOS
Método 1: Acesse hsm-client-v2.09.07.02-1.202411041707.x86_64.rpm para baixar a ferramenta de gerenciamento do HSM.
Método 3: Na página VSMs, localize a instância do HSM e clique no ícone
na coluna Specifications.Método 3: Na página Activate Cluster, clique em Download HSM Management Tool.
-
Debian
Acesse hsm-client-v2.09.07.02-1.202411041707.x86_64.deb para baixar a ferramenta de gerenciamento do HSM.
Todas as regiões exceto Indonésia (Jacarta)
A versão da ferramenta depende da sua região:
-
Região Indonésia (Jacarta)
CentOS: Baixar hsm-client-v2.09.07.02-1.202411041707.x86_64.rpm ou clique em Download HSM management tool na página Activated cluster.
Debian: Baixar hsm-client-v2.09.07.02-1.202411041707.x86_64.deb
-
Todas as outras regiões
-
CentOS: Escolha um dos métodos a seguir:
Execute o seguinte comando (requer acesso à internet a partir da instância ECS): ``
bash 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'``Clique em Download HSM management tool na página Activate cluster.
-
Etapa 2: Instalar a ferramenta de gerenciamento do HSM
A ferramenta é instalada em /opt/hsm.
-
CentOS — substitua
<TOOL_NAME>pelo nome real do arquivo (por exemplo,hsm-client-v2.09.07.02-1.202411041707.x86_64.rpm):sudo yum install -y <TOOL_NAME> -
Debian — substitua
<TOOL_NAME>pelo nome real do arquivo (por exemplo,hsm-client-2.03.15.10-20240710_1.x86_64.deb):sudo dpkg -i <TOOL_NAME>
Etapa 3: Atualizar o arquivo de configuração do cliente
Edite a seção servers do arquivo /opt/hsm/etc/hsm_mgmt_tool.cfg:
Defina
nameehostnamecomo o endereço IP privado do HSM mestre (visível na página Instances).Defina
owner_cert_pathcomo o caminho completo deissuerCA.crt.
Exemplo de configuração:
{
"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"
}
}
Etapa 4: Fazer login no HSM mestre e verificar usuários
-
Faça login no HSM mestre:
/opt/hsm/bin/hsm_mgmt_tool /opt/hsm/etc/hsm_mgmt_tool.cfg -
Execute
listUserspara visualizar os usuários padrão: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 NOOs usuários padrão são
admin(precrypto officer, PRECO) eapp_user(app user, AU).
Etapa 5: Promover o PRECO a crypto officer (CO)
-
Faça login como PRECO:
server0>loginHSM PRECO admin password loginHSM success -
Altere a senha do PRECO. Isso promove o usuário
adminde PRECO para CO:cloudmgmt>changePswd PRECO admin <NewPassword> -
Verifique a alteração de função com
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 CO admin NO 0 NO 2 AU app_user NO 0 NOO usuário
adminagora aparece como CO.
Etapa 6: Criar um crypto user (CU)
Crie o CU antes de adicionar quaisquer HSMs não mestres ao cluster. As informações do CU são sincronizadas com os HSMs não mestres apenas no momento da adição — HSMs adicionados antes da criação do CU não terão o usuário CU.
-
Execute
createUserpara criar um CU. Nome de usuário: até 20 caracteres ASCII. Senha: 8–32 caracteres ASCII.Se estiver configurando o cluster para uma instância de gerenciamento de chaves de hardware do KMS, use
kmsusercomo nome de usuário.createUser CU crypto_user <enter password> -
Execute
listUserspara confirmar que o CU foi criado: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
Etapa 7: Confirmar o status do HSM mestre e prosseguir
Na etapa Activate cluster do console, clique no ícone
para atualizar o status do HSM mestre e, em seguida, clique em Next.
Adicionar HSMs não mestres
Na etapa Add HSM, adicione os HSMs não mestres ao cluster conforme solicitado e clique em Complete.
Você pode adquirir HSMs adicionais e adicioná-los ao cluster posteriormente, conforme suas necessidades.
Etapa 3: Iniciar o cliente HSM hsm_proxy
O hsm_proxy é o cliente HSM que executa na sua instância ECS e encaminha solicitações criptográficas para o cluster HSM.
-
Edite o arquivo
/opt/hsm/etc/hsm_proxy.cfg: Exemplo de configuração:Defina
server.hostnamecomo o endereço IP da VPC à qual a instância atual pertence.Defina
client.e2e_owner_crt_pathcomo o caminho completo deissuerCA.crt(o certificado CA autoassinado criado na Etapa 2).
{ "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 } } -
Inicie o
hsm_proxy:/opt/hsm/bin/hsm_proxy /opt/hsm/etc/hsm_proxy.cfgA saída exibe o caminho do arquivo de log:
logfiles_location is not specified, logs will be available in current directory Logs will be available in liquidSecurity.1.WKCrty.log file -
Verifique a conexão consultando o arquivo de log:
tail liquidSecurity.1.WKCrty.logUma conexão bem-sucedida inclui a seguinte linha:
2023-10-28T13:33:05Z liquidSecurity INF: e2e_handle_client_request: HSM FIPS STATE 2A saída completa esperada é semelhante a:
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 !
Etapa 4: Criar uma chave
Ignore esta etapa se estiver configurando o cluster para uma instância de gerenciamento de chaves de hardware do KMS. Consulte Configurar um cluster HSM para uma instância de gerenciamento de chaves de hardware do KMS .
-
Inicie o
key_mgmt_tool:/opt/hsm/bin/key_mgmt_tool -
Faça login como crypto user (CU):
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 -
Gere uma chave simétrica:
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: SUCCESSAnote o identificador da chave (
6neste exemplo) — use-o para referenciar a chave nas operações subsequentes. -
Confirme a existência da chave com
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 -
Saia do
key_mgmt_tool:Command: exit
Etapa 5: Criptografar e descriptografar dados
Ignore esta etapa se estiver configurando o cluster para uma instância de gerenciamento de chaves de hardware do KMS. Consulte Configurar um cluster HSM para uma instância de gerenciamento de chaves de hardware do KMS .
Para usar o cluster HSM em operações criptográficas, escolha uma das interfaces a seguir:
Próximos passos
Para gerenciar seu cluster — adicionar ou remover HSMs, renomear o cluster ou atualizar a lista de permissões de acesso — consulte Criar e ativar um cluster HSM validado pelo NIST FIPS.