Migração do site clássico Block Storage do HPCS para Key Protect
Migre sua criptografia Hyper Protect Crypto Services (HPCS) para volumes Block Storage clássicos para usar IBM Key Protect ( Key Protect ) em vez disso.
Antes de Iniciar
Antes de começar, verifique se você precisa migrar os volumes do Classic Block Storage para usar Key Protect em vez de HPCS. Você pode concluir esse processo manualmente seguindo as etapas desta seção ou pode consultar a visão geral da migração para obter detalhes sobre o uso de um script de detecção automatizado.
Siga estas etapas para determinar manualmente se você precisa migrar seus volumes do Classic Block Storage.
-
Verifique se a criptografia HPCS está sendo usada pelo plug-in de armazenamento em bloco no seu cluster.
- Liste todos os segredos de
kms-configem seu cluster.
kubectl get secrets -A --field-selector type=ibm.io/kms-config ``` 2. Para cada segredo `kms-config` encontrado, verifique se ele é do tipo `hpcs`, verificando se a configuração contém `hs-crypto`. ```sh {: pre} kubectl get secret <kms-config-name> -n <namespace> -o json | jq '.data | map_values(@base64d)' | grep "hs-crypto" ``` 3. Para cada configuração HPCS encontrada, identifique os PVCs que os utilizam. ```sh {: pre} kubectl get pvc -A -l "encryptionKeySecret=<kms-config-name>" ``` - Liste todos os segredos de
-
Se não forem encontrados PVCs criptografados por HPCS, não será necessária nenhuma migração. Se forem encontrados PVCs criptografados por HPCS, prossiga com as etapas de migração.
Pré-requisitos para a migração
Conclua estas etapas antes de iniciar a migração.
-
Faça backup de todos os recursos do cluster antes de iniciar o processo de migração.
Planeje manter seus backups de recursos por várias semanas, caso seja necessário fazer uma reversão.
kubectl get pvc --all-namespaces -o yaml > all-pvcs.yaml kubectl get pv -o yaml > all-pv.yaml kubectl get storageclass -o yaml > all-storage-classes.yaml kubectl get secrets --field-selector type=ibm.io/kms-config --all-namespaces -o yaml > all-kms-config.yaml kubectl get secrets -n ibm-block-secrets --field-selector type=ibm.io/dek-secret -o yaml > all-dek-secrets.yaml -
Crie uma nova instância ou use uma instância existente do IBM Key Protect.
-
Crie uma chave raiz em sua instância Key Protect. Anote o ID da chave raiz para uso nas etapas de migração.
-
Verifique se você tem as permissões de IAM necessárias para acessar as instâncias HPCS e Key Protect.
-
Instale o plug-in Key Protect CLI, se ainda não estiver instalado.
ibmcloud plugin install kp -r "IBM Cloud"
Etapas da migração
Siga estas etapas para migrar seus volumes do Classic Block Storage do HPCS para Key Protect.
Etapa 1: Substitua o segredo HPCS por uma configuração Key Protect
-
Crie um novo arquivo de configuração do KMS para sua instância do Key Protect. Salve o arquivo a seguir como
target-kp-config.yaml. Certifique-se de substituir os valores do espaço reservado pelos detalhes de sua instância Key Protect.apiVersion: v1 kind: Secret metadata: name: <kms-config-name> namespace: <namespace> stringData: config: |- { "api_key":"<your-api-key>", "iam_endpoint":"https://iam.cloud.ibm.com", "key_protect_endpoint":"https://<region>.api.<region>.kms.appdomain.cloud", "instance_id":"<kp-instance-id>", "root_key_id":"<kp-root-key-id>" } type: ibm.io/kms-configValores
<kms-config-name>: O nome de seu segredo de configuração HPCS KMS existente.<namespace>: O namespace em que o segredo está localizado.<your-api-key>: Uma chave de API com acesso à sua instância Key Protect.<region>: A região em que sua instância do Key Protect está localizada.<kp-instance-id>: O ID da sua instância do Key Protect.<kp-root-key-id>: O ID da chave raiz que você criou em Key Protect.
-
Exclua o segredo de configuração do HPCS KMS existente.
kubectl delete secret <kms-config-name> -n <namespace> -
Crie o novo segredo de configuração Key Protect.
kubectl create -f target-kp-config.yaml
Etapa 2: Atualize as chaves de criptografia do PVC para usar Key Protect
Para cada PVC criptografado que precisa ser migrado, siga estas etapas para retirar a chave de criptografia de dados (DEK) do HPCS e reenquadrá-la com Key Protect.
-
Configure a CLI do Key Protect para apontar para sua instância do HPCS.
export KP_PRIVATE_ADDR=https://<hpcs-instance-id>.api.<region>.hs-crypto.appdomain.cloud export KP_INSTANCE_ID=<hpcs-instance-id> export ROOT_KEY_ID=<hpcs-root-key-id> -
Recupera o HPCS wrapped DEK (WDEK) para o PVC criptografado.
- Encontre o segredo DEK para seu PVC.
kubectl get secrets -n ibm-block-secrets --field-selector type=ibm.io/dek-secret | grep <pv-name> ``` 2. Extraia o DEK embrulhado do segredo. ```sh {: pre} kubectl get secrets -n ibm-block-secrets <pv-secret-name> -o yaml | grep wrappedDEK | awk '{print $2}' | base64 --decode ``` -
Desembrulhe a DEK agrupada usando a chave raiz HPCS. Salve o DEK não embrulhado da saída.
ibmcloud kp key unwrap $ROOT_KEY_ID <wrapped-dek> -
Configure a CLI do Key Protect para apontar para sua instância do Key Protect.
Use uma janela de terminal separada para evitar a alternância acidental entre as configurações HPCS e Key Protect.
export KP_PRIVATE_ADDR=https://<kp-instance-id>.api.<region>.kms.appdomain.cloud export KP_INSTANCE_ID=<kp-instance-id> export ROOT_KEY_ID=<kp-root-key-id> -
Reenrole a DEK usando a chave raiz Key Protect. Salve o DEK agrupado da saída.
ibmcloud kp key wrap $ROOT_KEY_ID -p UNWRAPPED-DEK-BASE64 -
Substitua o DEK envolto em HPCS pelo DEK envolto em Key Protect no segredo de PVC.
- Codifique o novo DEK embrulhado em base64.
echo <kp-wrapped-dek> | base64 ``` 2. Edite o segredo DEK e substitua o valor `wrappedDEK` pelo novo base64-encoded Key Protect wrapped DEK. ```sh {: pre} kubectl edit secret -n ibm-block-secrets <pv-secret-name> ``` -
Opcional: Verifique o volume reiniciando o pod que usa o PVC criptografado.
kubectl delete pod <pod-name> -n <namespace> -
Repita essas etapas para todos os PVCs criptografados que precisam ser migrados do HPCS para Key Protect.
-
Verifique se todos os pods que usam PVCs criptografados estão em um estado de execução.
kubectl get pods -A
Próximas etapas
- Atualize a documentação e os manuais de execução para refletir a nova configuração do site Key Protect.
- Considere a possibilidade de configurar políticas de rotação de chaves para suas chaves raiz Key Protect.
- Se você encontrar algum problema durante ou após a migração, abra um tíquete de suporte em IBM Cloud.