Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Important
Los clústeres de macrodatos de Microsoft SQL Server 2019 se retiran. La compatibilidad con clústeres de macrodatos de SQL Server 2019 finalizó a partir del 28 de febrero de 2025. Para obtener más información, consulte la entrada de blog del anuncio y las opciones de macrodatos en la plataforma de Microsoft SQL Server.
En este artículo se proporcionan detalles sobre cómo configurar proveedores de claves externas en clústeres de macrodatos de SQL Server para la administración de claves.
Para obtener más información sobre cómo se usan las versiones de clave en clústeres de macrodatos de SQL Server, consulte: Versiones de claves en clústeres de macrodatos de SQL Server.
Para obtener información sobre cómo configurar y usar el cifrado en reposo, consulte las siguientes guías:
- Conceptos y guía de configuración del cifrado en reposo
- Guía de uso de las zonas de cifrado de HDFS de Clústeres de macrodatos de SQL Server
- Guía de uso del cifrado de datos transparente (TDE) en reposo de Clústeres de macrodatos de SQL Server
Prerequisites
- Notas de lanzamiento de SQL Server 2019 sobre clústeres de macrodatos. CU11+ required.
- Herramientas de macrodatos , como azdata 20.3.5+.
- Usuario de Clústeres de macrodatos de SQL Server con privilegios administrativos de Kubernetes (miembro del rol clusterAdmins). Para obtener más información, consulte Administración del acceso al clúster de macrodatos en el modo de Active Directory.
- Aplicación de plantilla de proveedor externo. Consulte Cifrado de SQL Server BDC en reposo.
Cifrado de clave raíz mediante proveedores externos
Con la capacidad de incorporar claves externas en clústeres de macrodatos de SQL Server, la clave de cifrado principal captura la clave pública mediante la aplicación que implementa el cliente. Cuando se rotan y utilizan las claves HDFS, las llamadas para su descifrado se envían al plano de control y posteriormente se redirigen a la aplicación utilizando el identificador de clave proporcionado por el cliente. En el caso de SQL Server, el plano de control envía y satisface las solicitudes de cifrado, ya que tiene la clave pública. Las solicitudes para descifrar la clave de cifrado de datos (DEK) de SQL Server también se envían al plano de control y, a continuación, se redirigen a la aplicación que interactúa con el proveedor externo, como un módulo de seguridad de hardware (HSM).
En el diagrama siguiente se explican las interacciones al configurar claves externas en el plano de control:
Una vez instalada la clave, la clave de cifrado principal protege el cifrado y el descifrado de diferentes cargas. Esta protección es similar a las claves administradas por el sistema, salvo que las llamadas de descifrado enrutadas al plano de control se enrutan a la aplicación de complemento del servicio de administración de claves (KMS). La aplicación del complemento KMS enruta la solicitud a la ubicación adecuada, como un HSM, Hashicorp Vault u otro producto.
Configuration
La aplicación de plantilla proporcionada es el complemento que se usa para interactuar con el proveedor de claves externa. Esta aplicación debe personalizarse e implementarse en clústeres de macrodatos para servir como punto de integración con el proveedor de claves externo elegido.
En la aplicación de plantilla, hay ejemplos sobre cómo integrarse con implementaciones de proveedor externo mediante el protocolo PKCS11 estándar mediante SoftHSM. También hay ejemplos de uso de Azure Key Vault y Hashicorp Vault. Las aplicaciones tipo plantilla se proporcionan as-is para servir de implementaciones de referencia.
En las secciones siguientes se proporcionan los pasos necesarios para configurar un proveedor de claves externas para que actúe como clave raíz del cifrado para las bases de datos de SQL Server y las zonas de cifrado de HDFS.
Creación de una clave RSA 2048 en el proveedor de claves externas
Cree un archivo PEM con una clave RSA de 2048 bits y cárguelo en el almacén de valores de clave en el proveedor de claves externo.
Por ejemplo, el fichero de claves se puede agregar al almacén de KV en Hashicorp Vault en la ruta bdc-encryption-secret y el nombre del secreto puede ser rsa2048.
Personalización e implementación de la aplicación de integración en clústeres de macrodatos
En la máquina local, vaya a la carpeta que contiene kms_plugin_app, las aplicaciones de plantilla AppDeploy de clústeres de macrodatos.
Personalice la aplicación eligiendo una de las plantillas y ajustandola a su escenario:
- File custom_softhsm.py contiene una implementación de referencia mediante SoftHSM
- El custom_akv.py de archivos contiene un ejemplo de Azure Key Vault
- El custom_hcv.py de archivo contiene un ejemplo de HashiCorp Vault
Caution
No cambie los contratos o firmas de función, que son los puntos de integración. Cambie solo las implementaciones de función, si es necesario.
Asigne un nombre al archivo que va a crear a partir de la plantilla anterior en consecuencia. Por ejemplo, guarde custom_softhsm.py como my_custom_integration_v1.py y, a continuación, realice las personalizaciones. Este enfoque es importante para el siguiente paso.
app.py es el punto de entrada que cargará la aplicación. En este archivo, es necesario cambiar la línea 11 para que apunte al nombre de archivo personalizado sin la extensión .py del paso anterior. Por ejemplo anterior, cambie:
... import utils from json_objects import EncryptDecryptRequest import custom_softhsm as custom def handler(operation, payload, pin, key_attributes, version): ...para el siguiente valor:
... import utils from json_objects import EncryptDecryptRequest import my_custom_integration_v1 as custom def handler(operation, payload, pin, key_attributes, version): ...En la carpeta que tiene spec.yaml, implemente la aplicación en Clústeres de macrodatos mediante este comando:
azdata app create -sEspere a que se complete la implementación de la aplicación y se pueda comprobar el estado listo mediante este comando:
azdata app list
Configuración de clústeres de macrodatos para usar el proveedor de claves externas
Establezca la
AZDATA_EXTERNAL_KEY_PINvariable de entorno para proporcionar el token que permite el acceso al proveedor de claves externa:export AZDATA_EXTERNAL_KEY_PIN=<your PIN/token here>Note
El proceso de implementación de la aplicación de integración usa el token para acceder al proveedor de claves externas. Sin embargo, la variable se guarda cifrada en el
AZDATA_EXTERNAL_KEY_PINplano de control de clústeres de macrodatos para que la aplicación pueda interpretarla. También se puede usar un mecanismo de autenticación diferente, pero la aplicación debe cambiarse. Revise la aplicación de Python custom*.py para obtener la lógica de integración completa que se está utilizando.Configure la clave en Clústeres de macrodatos mediante la siguiente
azdataestructura de comandos. Cambie los parámetros necesarios para tu implementación específica. En el ejemplo siguiente se usa una estructura hashiCorp Vault tal como se proporciona en custom2.py.azdata bdc kms update --app-name <YOUR-APP-NAME> --app-version <YOUR-APP-VERSION> \ --key-attributes keypath=<YOUR-KEY-PATH>,vaulturl=http://<YOUR-IP>:<YOUR-PORT>,keyname=<YOUR-KEY-NAME> \ --provider ExternalEl valor del parámetro
--provider Externalconfigura KMS de Big Data Clusters para utilizar la aplicación de integración como punto de conexión para las operaciones clave.Compruebe la clave de cifrado raíz como la administrada externamente mediante el comando siguiente.
azdata bdc kms show
Cifrado de las bases de datos y zonas de cifrado con las nuevas claves
Después de la configuración, las bases de datos de SQL Server y las zonas de cifrado de HDFS siguen cifradas por la jerarquía de claves anterior. Debe cifrar explícitamente mediante las claves administradas externamente.
En SQL Server, se instala una nueva clave asimétrica basada en la clave administrada externamente. Úselo para cifrar las bases de datos.
La clave asimétrica se puede ver mediante la siguiente consulta T-SQL, con la vista de catálogo del sistema sys.asymmetric_keys.
USE master;
select * from sys.asymmetric_keys;
La clave asimétrica aparece con la convención de nomenclatura tde_asymmetric_key_<version>. Después, el administrador de SQL Server puede cambiar el protector de la clave de cifrado de datos (DEK) a la clave asimétrica mediante ALTER DATABASE ENCRYPTION KEY. Por ejemplo, use el siguiente comando T-SQL:
USE db1;
ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY tde_asymmetric_key_0;
Ejecute el siguiente comando para comprobar la clave de cifrado actual:
azdata bdc hdfs key describeObtenga información sobre la versión de la clave que protege la clave de zona de cifrado:
azdata bdc hdfs key describe --name <key name>Actualiza tu clave a la nueva clave administrada externamente.
azdata bdc hdfs key roll --name <new key name>Inicie el cifrado mediante este comando:
azdata bdc hdfs encryption-zone reencrypt –-path <your EZ path> --action startCompruebe la jerarquía de claves mediante los siguientes comandos:
azdata bdc kms show azdata bdc hdfs key describe