Cifrado de datos
SE APLICA A: Azure Database for PostgreSQL con servidor flexible
Todos los datos administrados por una instancia de servidor flexible de Azure Database for PostgreSQL siempre se cifran en reposo. Estos datos incluyen todas las bases de datos de usuario y del sistema, archivos temporales, registros de servidor, segmentos de registro de escritura anticipada y copias de seguridad.
Para lograr el cifrado de los datos, el servidor flexible de Azure Database for PostgreSQL usa cifrado de Azure Storage para los datos en reposo, lo que proporciona claves para cifrar y descifrar datos en los servicios Blob Storage y Azure Files. Estas claves se deben almacenar en Azure Key Vault o en el Módulo de seguridad de hardware (HSM) administrado de Azure Key Vault. Para más información, vea Claves administradas por el cliente para el cifrado de Azure Storage.
El servidor flexible de Azure Database for PostgreSQL admite la configuración del cifrado de datos en dos modos diferentes: clave administrada de servicio y clave administrada por el cliente. El modo de configuración solo se puede seleccionar en el momento de creación del servidor. No se puede cambiar de un modo a otro durante la vigencia del servidor.
Con la clave de cifrado administrada por el servicio, el servidor flexible de Azure Database for PostgreSQL se encarga del aprovisionamiento de Azure Key Vault en el que se conservan las claves y asume toda la responsabilidad de proporcionar la clave con la que se cifran y descifran los datos. El servicio también se encarga de almacenar, proteger, auditar el acceso, configurar redes y rotar automáticamente la clave.
Con la clave de cifrado administrada por el cliente asume toda la responsabilidad. Por tanto, debe implementar una instancia propia de Azure Key Vault o HSM de Azure Key Vault. Debe generar o importar una clave propia. Debe conceder los permisos necesarios en Key Vault para que el servidor flexible de Azure Database for PostgreSQL pueda realizar las acciones necesarias en la clave. Debe encargarse de configurar todos los aspectos de redes de la instancia de Azure Key Vault en la que se mantiene la clave para que el servidor flexible de Azure Database for PostgreSQL pueda acceder a ella. La auditoría del acceso a la clave también es responsabilidad suya. Por último, es responsable de rotar la clave y, cuando sea necesario, actualizar la configuración del servidor flexible de Azure Database for PostgreSQL para que haga referencia a la versión rotada de la clave.
Al configurar claves administradas por el cliente para una cuenta de almacenamiento, Azure Storage encapsula la clave de cifrado de datos (DEK) raíz de la cuenta con la clave administrada por el cliente en el almacén de claves o HSM administrado asociado. La protección de la clave de cifrado raíz cambia, pero los datos de la cuenta de Azure Storage siguen cifrados en todo momento. No se necesita ninguna acción adicional por su parte para asegurarse de que los datos están protegidos. La protección de las claves administradas por el cliente surte efecto de manera inmediata.
Azure Key Vault es un sistema de administración de claves externas basado en la nube. Presenta alta disponibilidad y ofrece almacenamiento seguro y escalable para claves criptográficas RSA, respaldadas opcionalmente por módulos de seguridad de hardware (HSM) con certificación FIPS 140. No permite el acceso directo a una clave almacenada, pero proporciona servicios de cifrado y descifrado a entidades autorizadas. Key Vault puede generar la clave, importarla o recibirla después de que se transfiera desde un dispositivo HSM local.
Ventajas proporcionadas por cada modo
El cifrado de datos con claves administradas por el cliente para el servidor flexible de Azure Database for PostgreSQL proporciona las siguientes ventajas:
- El servicio controla de forma automática y completa el acceso a los datos.
- El servicio controla de forma automática y completa el ciclo de vida de la clave, incluida su rotación.
- No es necesario preocuparse por administrar las claves de cifrado de datos.
- El cifrado de datos basado en claves administradas por el servicio no afecta negativamente al rendimiento de las cargas de trabajo.
- Simplifica la administración de lo siguiente
El cifrado de datos con claves administradas por el cliente para el servidor flexible de Azure Database for PostgreSQL proporciona las siguientes ventajas:
- Controla completamente el acceso a los datos. Puede quitar una clave para que una base de datos sea inaccesible.
- Controla completamente el ciclo de vida de una clave, incluida su rotación, para alinearse con las directivas corporativas.
- Puede administrar y organizar de forma centralizada todas las claves de cifrado en instancias propias de Azure Key Vault.
- El cifrado de datos basado en claves administradas por el cliente no afecta negativamente al rendimiento de las cargas de trabajo.
- Puede implementar una separación de tareas entre los responsables de seguridad, los administradores de bases de datos y los administradores del sistema.
Requisitos
A continuación se muestra la lista de requisitos a fin de configurar el cifrado de datos para el servidor flexible de Azure Database for PostgreSQL:
- Key Vault y Azure Database para PostgreSQL Flexible Server deben pertenecer al mismo tenant de Microsoft Entra. No se admiten las interacciones de servidor y Key Vault entre inquilinos. Para mover los recursos de Key Vault posteriormente, es necesario volver a configurar el cifrado de datos.
- Se recomienda establecer la configuración Días durante los cuales se conservarán los almacenes eliminados de Key Vault en 90 días. Si ha configurado una instancia de Key Vault existente con un número inferior, debería seguir siendo válida. Pero si quiere modificar este ajuste y aumentar el valor, es necesario crear una instancia de Key Vault. Una vez que se crea una instancia, no es posible modificar su configuración.
- Habilite la característica de eliminación temporal en Key Vault para ayudar a proteger contra la pérdida de datos si se elimina accidentalmente una clave o una instancia de Key Vault. Key Vault conserva los recursos eliminados temporalmente durante 90 días a menos que el usuario los recupere o purgue mientras tanto. Las acciones de recuperación y purga tienen sus propios permisos asociados a una instancia de Key Vault, un rol RBAC o a un permiso de directiva de acceso. La característica de eliminación temporal está habilitada de manera predeterminada. Si tiene alguna instancia de Key Vault que se implementado hace mucho tiempo, es posible que todavía tenga deshabilitada la eliminación temporal. En ese caso, puede activarla mediante la CLI de Azure.
- Habilite la protección de purga para aplicar un período de retención obligatorio para almacenes eliminados y objetos de almacén.
- Conceda a la identidad administrada asignada por el usuario del servidor flexible de Azure Database for PostgreSQL acceso a la clave mediante lo siguiente:
- Preferido: Azure Key Vault se debe configurar con el modelo de permisos RBAC y la identidad administrada se debe asignar al rol de usuario de cifrado de servicio criptográfico de Key Vault.
- Heredado: si Azure Key Vault está configurado con el modelo de permisos de directiva de acceso, conceda los permisos siguientes a la identidad administrada:
- get: para recuperar las propiedades y la parte pública de la clave en Key Vault.
- list: para enumerar e iterar por las claves almacenadas en Key Vault.
- wrapKey: para cifrar la clave de cifrado de datos.
- unwrapKey: para descifrar la clave de cifrado de datos.
- La clave que se usa para cifrar la clave de cifrado de datos solo puede ser asimétrica, RSA o RSA-HSM. Se admiten los tamaños de clave de 2048, 3072 y 4096. Se recomienda usar una clave de 4096 bits para mejorar la seguridad.
- La fecha y hora de activación de claves (si se establece) deben estar en el pasado. La fecha y hora de expiración (si se establece) deben estar en el futuro.
- La clave debe estar en estado Habilitado.
- Si va a importar una clave existente en Key Vault, proporciónela en los formatos de archivo admitidos (
.pfx
,.byok
, o.backup
).
Recomendaciones
Cuando use una clave administrada por el cliente para el cifrado de datos, siga estas recomendaciones para configurar Key Vault:
- Establezca un bloqueo de recursos en Key Vault para evitar la eliminación accidental o no autorizada de este recurso crítico.
- Habilite la auditoría y la generación de informes en todas las claves de cifrado. Key Vault proporciona registros que son fáciles de insertar en otras herramientas de administración de eventos e información de seguridad (SIEM). Los registros de Azure Monitor son un ejemplo de un servicio que ya está integrado.
- Para bloquear Key Vault, seleccione Deshabilitar el acceso público y Permitir que los servicios de Microsoft de confianza omitan este firewall.
Nota:
Después de seleccionar Deshabilitar el acceso público y Permitir que los servicios de Microsoft de confianza omitan este firewall, es posible que reciba un error similar al siguiente al intentar usar el acceso público para administrar Key Vault a través del portal: "Ha habilitado el control de acceso a la red. Solo las redes permitidas tendrán acceso a este almacén de claves". Este error no impide la capacidad de proporcionar claves durante la instalación de la clave administrada por el cliente, ni capturar claves de Key Vault durante las operaciones del servidor.
- Almacene una copia de la clave administrada por el cliente en un lugar seguro o deposítela en el servicio de custodia.
- Si Key Vault genera la clave, cree una copia de seguridad de claves antes de usar la clave por primera vez. Solo se puede restaurar la copia de seguridad en Key Vault.
Consideraciones especiales
Revocación accidental del acceso a la clave de Key Vault
Es posible que alguien con derechos de acceso suficientes para Key Vault deshabilite accidentalmente el acceso del servidor a la clave si:
- Anula la asignación del rol RBAC Usuario de cifrado del servicio criptográfico de Key Vault o revoca los permisos de la identidad que se usa para recuperar la clave en Key Vault.
- Eliminación de la clave.
- Eliminación de la instancia de Key Vault.
- Cambio de las reglas de firewall de Key Vault.
- Eliminación de la identidad administrada del servidor en Microsoft Entra ID.
Supervisión de las claves guardadas en Azure Key Vault
A fin de supervisar el estado de la base de datos y activar alertas para la pérdida de acceso al protector de cifrado de datos, configure las siguientes características de Azure:
- Resource Health: Una base de datos que perdió el acceso a la CMK aparece como Inaccesible después de denegar la primera conexión a la base de datos.
- Registro de actividad: Cuando se produce un error en el acceso a CMK en la instancia de Key Vault administrada por el cliente, se agregan entradas al registro de actividad. Puede restablecer el acceso si crea alertas para estos eventos lo antes posible.
- Grupos de acciones: Defina estos grupos para recibir notificaciones y alertas en función de sus preferencias.
Restauración de copias de seguridad de un servidor configurado con una clave administrada por el cliente
Después de cifrar un servidor flexible de Azure Database for PostgreSQL con una clave administrada de un cliente almacenada en Key Vault, también se cifra cualquier copia recién creada del servidor. Puede realizar esta nueva copia a través de una restauración a un momento dado (PITR) de operación o réplicas de lectura.
Al configurar el cifrado de datos con una clave administrada por el cliente, durante una operación como la restauración de una copia de seguridad o la creación de una réplica de lectura, puede evitar problemas si sigue estos pasos en los servidores principal y restaurado o de réplica:
- Inicie el proceso de restauración o el proceso de creación de una réplica de lectura a partir de la instancia de servidor flexible de Azure Database for PostgreSQL principal.
- En el servidor de réplica o restaurado, puede cambiar la clave administrada por el cliente y la identidad administrada asignada por el usuario que se usa para acceder a Key Vault. Asegúrese de que la identidad asignada en el servidor recién creado tiene los permisos necesarios en Key Vault.
- No revoque la clave original después de restaurarla. En este momento, no se admite la revocación de claves después de restaurar un servidor con una clave administrada por el cliente en otro.
HSM administrados
Los módulos de seguridad de hardware (HSM) son dispositivos de hardware resistentes a alteraciones que ayudan a proteger los procesos criptográficos mediante la generación, protección y administración de claves usadas para cifrar datos, descifrar datos, crear firmas digitales y crear certificados digitales. Los HSM se prueban, validan y certifican con los estándares de seguridad más altos, incluidos FIPS 140 y Criterios comunes.
HSM administrado de Azure Key Vault es un servicio en la nube totalmente administrado, de alta disponibilidad, de un solo inquilino y compatible con los estándares. Puede usarlo para proteger las claves criptográficas de las aplicaciones en la nube a través de HSM validados de FIPS 140-3.
Al crear instancias de servidor flexible de Azure Database for PostgreSQL en Azure Portal con la clave administrada por el cliente, puede elegir HSM administrado de Azure Key Vault como almacén de claves como una alternativa a Azure Key Vault. Los requisitos previos, en términos de identidad y permisos definidos por el usuario, son los mismos que con Azure Key Vault (como se muestra anteriormente en este artículo). Para más información sobre cómo crear una instancia de HSM administrada, sus ventajas y diferencias de un almacén de certificados compartido basado en Key Vault y cómo importar claves en HSM administrado, vea ¿Qué es HSM administrado de Azure Key Vault?.
Condición de clave administrada por el cliente inaccesible
Cuando configura el cifrado de datos con una clave administrada por el cliente almacenada en Key Vault, es necesario el acceso continuo a esta clave para que el servidor permanezca en línea. Si el servidor pierde el acceso a la clave almacenada en Key Vault, comienza a denegar todas las conexiones en un plazo de 10 minutos. El servidor emite un mensaje de error correspondiente y cambia el estado del servidor a inaccesible.
Algunas de las posibles razones por las que el estado del servidor se podría convertir en Inaccesible son las siguientes:
- Si rota la clave y olvida actualizar la instancia del servidor flexible de Azure Database for PostgreSQL para que apunte a la nueva versión de la clave. La clave antigua, a la que apuntaba la instancia, expira finalmente y convierte el estado del servidor en Inaccesible. Para evitarlo, cada vez que gira la clave, asegúrese de actualizar también la instancia del servidor para que apunte a la nueva versión. Para ello, puede usar el
az postgres flexible-server update
, siguiendo el ejemplo que describe "Cambiar clave/identidad para el cifrado de datos. El cifrado de datos no se puede habilitar después de la creación del servidor; esto solo actualizará la clave o la identidad". Como alternativa, puede invocar la API de REST Servidores - Actualizar del servicio. - Si elimina la instancia de Key Vault, la instancia de servidor flexible de Azure Database for PostgreSQL no puede acceder a la clave y se mueve a un estado de Inaccesible. Para que el servidor Disponible, recuperar la instancia de Key Vault y volver a validar el cifrado de datos.
- Si elimina la clave de Key Vault, la instancia de servidor flexible de Azure Database for PostgreSQL no puede acceder a la clave y se mueve a un estado de Inaccesible. Para que el servidor Disponible, recuperar la clave y volver a validar el cifrado de datos.
- Si elimina, de Microsoft Entra ID, una identidad administrada que se usa para recuperar una clave de Key Vault o mediante la eliminación de la asignación de roles de RBAC de Azure con el rol Usuario de cifrado del servicio criptográfico de Key Vault. la instancia de servidor flexible de Azure Database for PostgreSQL no puede acceder a la clave y pasa al estado Inaccesible. Para que el servidor Disponible, recuperar la identidad y volver a validar el cifrado de datos.
- Si revoca las directivas de acceso Key Vaultlist, get, wrapKey, y unwrapKey de la identidad administrada que se usa para recuperar una clave de Key Vault, la instancia de servidor flexible de Azure Database for PostgreSQL no puede acceder a la clave y se mueve a un estado de Inaccesible. Agregar directivas de acceso necesarias a la identidad en Key Vault.
- Si configura reglas de firewall de Key Vault excesivamente restrictivas, el servidor flexible de Azure Database for PostgreSQL no puede comunicarse con Key Vault para recuperar claves. Al configurar un firewall de Key Vault, asegúrese de seleccionar la opción para permitir que los servicios de Microsoft de confianza omitan el firewall.
Nota:
Cuando una clave está deshabilitada, eliminada, expirada o no accesible, un servidor que tiene datos cifrados a través de esa clave se convierte en Inaccesible, como se indicó anteriormente. El servidor no está disponible hasta que vuelva a habilitar la clave o asigne una nueva.
Por lo general, un servidor se convierte en Inaccesible en un plazo de 60 minutos después de deshabilitar, eliminar, expirar o no acceder a una clave. Después de que la clave esté disponible, el servidor puede tardar hasta 60 minutos en volverse Accesible de nuevo.
Recuperación de la eliminación de una identidad administrada
Si la identidad administrada asignada por el usuario que se usa para acceder a la clave de cifrado almacenada en Key Vault se elimina en Microsoft Entra ID, debe seguir estos pasos para recuperarla:
- Recupere la identidad o cree una identidad administrada de Entra ID.
- Si ha creado una identidad, incluso si tiene el mismo nombre que antes de que se eliminara, actualice las propiedades de Azure Database para servidor flexible a fin de que sepa que tiene que usar esta nueva identidad para acceder a la clave de cifrado.
- Asegúrese de que esta identidad tenga los permisos adecuados para las operaciones en la clave en Azure Key Vault (AKV).
- Espere aproximadamente una hora hasta que el servidor vuelva a validar la clave.
Importante
Por sí misma, la creación de una nueva identidad de Entra ID con el mismo nombre que la identidad eliminada no recupera la eliminación de la identidad administrada.
Uso del cifrado de datos con claves administradas por el cliente y características de continuidad empresarial con redundancia geográfica
El servidor flexible de Azure Database for PostgreSQL admite características avanzadas de recuperación de datos, como réplicas y copia de seguridad con redundancia geográfica. A continuación se muestran los requisitos para configurar el cifrado de datos con CMK y estas características, además de requisitos básicos para el cifrado de datos con CMK:
- La clave de cifrado de copia de seguridad con redundancia geográfica se debe crear en una instancia de Key Vault que debe existir en la región donde se almacena la copia de seguridad con redundancia geográfica.
- La versión de la API de REST de Azure Resource Manager (ARM) para admitir servidores CMK habilitados para copia de seguridad con redundancia geográfica es "2022-11-01-preview". Si quiere usar Plantillas de Azure Resource Manager para automatizar la creación de servidores que usan cifrado con CMK y características de copia de seguridad con redundancia geográfica, use esta versión de API.
- No puede usar la misma identidad administrada por el usuario para autenticarse para la instancia de Key Vault de la base de datos principal y la instancia de Key Vault que contiene la clave de cifrado para la copia de seguridad con redundancia geográfica. Para mantener la resistencia regional, se recomienda crear la identidad administrada por el usuario en la misma región que las copias de seguridad con redundancia geográfica.
- Si configura una base de datos de réplica de lectura para cifrarse con CMK durante la creación, su clave de cifrado debe estar en una instancia de Key Vault en la región donde reside la base de datos de réplica de lectura. La identidad asignada por el usuario para autenticarse en esta instancia de Key Vault debe crearse en la misma región.
Limitaciones
Estas son las limitaciones actuales para configurar la clave administrada por el cliente en el servidor flexible de Azure Database for PostgreSQL:
- Solo puede configurar el cifrado de clave administrada por el cliente durante la creación de un servidor, no como una actualización de una instancia de servidor flexible de Azure Database for PostgreSQL existente. En su lugar, puede restaurar la copia de seguridad de PITR en un nuevo servidor con cifrado CMK.
- Después de configurar el cifrado de clave administrada por el cliente, no puede volver a la clave administrada por el sistema. Si quiere revertirlo, debe restaurar el servidor a uno nuevo con el cifrado de datos configurado con la clave administrada por el sistema.
- La instancia de HSM administrado de Azure Key Vault o la instancia de Azure Key Vault en la que planea almacenar la clave de cifrado, debe existir en la misma región en la que se crea la instancia de Azure Database para un servidor flexible.