Script de amostra para gerar segredos BYOK para Backup e Recover Next e Data 360
O Shield Platform Encryption fornece um script para ajudá-lo a carregar material de chave fornecido pelo cliente para Backup & Recover Next e Data 360. Ele cria uma chave raiz que você pode carregar para o Salesforce. O script gera um número aleatório como seu segredo e usa a chave pública do certificado para criptografar o segredo.
Edições obrigatórias
| Disponível no Salesforce Classic (não disponível em todas as organizações) e no Lightning Experience. |
| Disponível em: Edições Enterprise, Performance e Unlimited com as licenças Salesforce Shield ou Shield Platform Encryption. |
| Disponível gratuitamente na Developer Edition. |
Antes de usar esse script, primeiro criar um certificado compatível com BYOK e gerar um token de importação. Você precisa apenas de um certificado autoassinado. Depois de carregar sua chave-raiz, o Salesforce exclui automaticamente o certificado.
Esse script cria um único arquivo chamado EncryptedKeyMaterial.bin que está pronto para upload. Ele é agrupado e codificado para atender aos requisitos da Shield Platform Encryption.
- Crie um arquivo que contenha o script e salve-o no mesmo diretório que o arquivo de certificado e token de sessão que você baixou anteriormente.
-
Certifique-se de que o script seja executável com
chmod 775.Por padrão, os arquivos temporários não são excluídos. Descomente a linha final do script para que sejam excluídos automaticamente. -
Execute o script especificando o nome do certificado e o arquivo de token da sessão. Por exemplo, se você tiver nomeado seu script
2025_dc_rootkeygen.she seu arquivo de certificado tiver o nome2025_dc_byok.crt, execute ./2025_dc_rootkeygen.sh 2025_dc_byok.crt. -
O script gera um arquivo chamado EncryptedKeyMaterial.bin.
Carregue EncryptedKeyMaterial.bin e o arquivo de token de importação para seu certificado autoassinado que você criou anteriormente.
Conteúdo do arquivo 2025_dc_rootkeygen.sh. Você pode executar esse script em sistemas Linux ou MacOs.
Esse script gera uma chave-raiz segura compatível com os repositórios de dados Backup & Recover Next e Data 360. Você fornece o token de importação e o certificado que você gerou na página BYOK.
- Verifique se um nome de certificado é passado e se ele é recuperável. Saída na falha.
- Extraia a chave pública do certificado. Saída na falha.
- Crie o material de chave real (neste script, usamos um número aleatório de 32 bits) como um arquivo chamado PlainTextKeyMaterial.bin.
- Use o openssl para quebrar (criptografar) o arquivo PlainTextKeyMaterial.bin com a chave pública do certificado usando os protocolos de quebra RSAES_OAEP_SHA_256 e RSA_4096. Esse processo produz o arquivo EncryptedKeyMaterial.bin.
- Opcionalmente, exclua os arquivos de texto simples temporários e o arquivo de entrada PublicKey.b64.
Você então pode carregar o arquivo EncryptedKeyMaterial.bin e o token de importação original para o Salesforce.
#!/bin/bash
## BYOK for Backup & Recover Next Data 360 sample script to generate and prepare a root key for upload.
## Pass in as parameter: Certificate file (.crt) downloaded from the
## Generate Certificate page (referred in this script as certificate.crt or CERT_FILE).
## Validate input parameter
if [ -z "$1" ]; then
echo "Error: Please provide a certificate file as parameter."
echo "Usage: ./2025_dc_rootkeygen.sh certificate.crt."
exit 1
fi
if [ ! -f "$1" ]; then
echo "Error: File '$1' not found."
exit 1
fi
CERT_FILE="$1"
PUBLIC_KEY_FILE="public_key.pem"
## Step 1: Extract public key from certificate
echo "Extracting public key from certificate..."
openssl x509 -in "$CERT_FILE" -pubkey -noout > "$PUBLIC_KEY_FILE"
if [ $? -ne 0 ]; then
echo "Error: Failed to extract public key from certificate."
exit 1
fi
echo "Public key extracted to $PUBLIC_KEY_FILE."
## 3.0 Generate Key material as PlaintextKeyMaterial.bin
openssl rand -out PlaintextKeyMaterial.bin 32
## 3.1 wrap key material
# Note: we are using RSAES_OAEP_SHA_256 and RSA_4096 for wrapping
# Using PEM format public key directly
openssl pkeyutl \
-encrypt \
-in PlaintextKeyMaterial.bin \
-out EncryptedKeyMaterial.bin \
-inkey "$PUBLIC_KEY_FILE" \
-keyform PEM \
-pubin \
-pkeyopt rsa_padding_mode:oaep \
-pkeyopt rsa_oaep_md:sha256 \
-pkeyopt rsa_mgf1_md:sha256
echo "=== Output file:"
echo " EncryptedKeyMaterial.bin created."
## Optional cleanup. Remove the # from the next two lines if you want to delete the files automatically
# rm PlaintextKeyMaterial.bin
# rm "$PUBLIC_KEY_FILE"
