Acerca de la copia de seguridad de Azure Database for PostgreSQL

Azure Backup y los servicios de base de datos de Azure se han unido para crear una solución de copia de seguridad de clase empresarial para servidores de Azure Database for PostgreSQL que conserve las copias de seguridad hasta 10 años. Además de la retención a largo plazo, la solución ofrece las siguientes funcionalidades:

  • Copia de seguridad a petición y programada controlada por el cliente en el nivel de base de datos individual.
  • Restauraciones en el nivel de base de datos en cualquier servidor PostgreSQL o en cualquier almacenamiento de blobs.
  • Supervisión central de todas las operaciones y trabajos.
  • Las copias de seguridad se almacenan en dominios de seguridad y de error independientes. Si el servidor de origen o la suscripción están en peligro por cualquier circunstancia, las copias de seguridad permanecen seguras en el almacén de Backup (en cuentas de almacenamiento administradas por Azure Backup).
  • El uso de pg_dump permite una mayor flexibilidad en las restauraciones. Esto le ayuda a restaurar entre versiones de base de datos.

Puede usar esta solución de forma independiente o sumada a la solución de copia de seguridad nativa que ofrece Azure Database for PostgreSQL, con una retención de hasta 35 días. La solución nativa es adecuada para las recuperaciones operativas, como la recuperación a partir de las copias de seguridad más recientes. La solución de Azure Backup le ayuda a satisfacer sus necesidades de cumplimiento y ofrece procesos de copia de seguridad y restauración más detallados y flexibles.

Proceso de copia de seguridad

  1. Como administrador de copia de seguridad, puede especificar las bases de datos de Azure Database for PostgreSQL de las que va a realizar una copia de seguridad. Además, también puede especificar los detalles del almacén de claves de Azure que almacena las credenciales necesarias para conectarse a las bases de datos especificadas. El administrador de la base de datos inicializa estas credenciales de forma segura en Azure Key Vault.
  2. A continuación, el servicio de copia de seguridad valida si tiene los permisos adecuados para autenticarse en el servidor PostgreSQL especificado y realizar copias de seguridad de sus bases de datos.
  3. Azure Backup inicia un rol de trabajo (VM) con una extensión de copia de seguridad instalada para comunicarse con el servidor PostgreSQL protegido. Esta extensión consta de un coordinador y un complemento de PostgreSQL. El coordinador desencadena flujos de trabajo para varias operaciones, como la copia de seguridad y la restauración, y el complemento administra el flujo de datos real.
  4. A la hora programada, el coordinador se comunica con el complemento para que empiece a transmitir los datos de la copia de seguridad desde el servidor PostgreSQL mediante pg_dump (personalizado) .
  5. El complemento envía los datos directamente a las cuentas de almacenamiento administradas por Azure Backup (enmascaradas por el almacén de Backup), lo que elimina la necesidad de una ubicación de almacenamiento provisional. El servicio Azure Backup cifra los datos con claves administradas por Microsoft y los almacena en cuentas de almacenamiento.

Diagrama que muestra el proceso de copia de seguridad.

Autenticación de Azure Backup con el servidor PostgreSQL

Azure Backup sigue estrictas directrices de seguridad establecidas por Azure; no se asumen los permisos en el recurso del que se va a realizar una copia de seguridad y el usuario debe concederlos explícitamente.

Modelo de autenticación basado en almacén de claves

El servicio Azure Backup debe conectarse a Azure Database for PostgreSQL mientras se hace cada copia de seguridad. Aunque se usa el "nombre de usuario y contraseña" (o una cadena de conexión) correspondientes a la base de datos para realizar esta conexión, estas credenciales no se almacenan con Azure Backup. En su lugar, el administrador de la base de datos debe inicializar estas credenciales de forma segura en Azure Key Vault como un secreto. El administrador de la carga de trabajo es responsable de administrar y rotar las credenciales. Azure Backup obtiene los detalles más recientes del secreto del almacén de claves para hacer la copia de seguridad.

Diagrama que muestra el flujo de la carga de trabajo o la base de datos.

Conjunto de permisos necesarios para la copia de seguridad de base de datos de Azure Database for PostgreSQL

  1. Conceda los siguientes permisos de acceso a la MSI del almacén de Backup:

    • Acceso de Lector en el servidor de Azure Database for PostgreSQL.
    • Acceso de Usuario de secretos de Key Vault (u obtener y enumerar secretos) en el almacén de claves de Azure.
  2. Acceso a la línea de visión de red en:

    • Servidor de Azure Database for PostgreSQL: marca Permitir el acceso a servicios de Azure establecida en .
    • Almacén de claves: marca Permitir servicios de Microsoft de confianza establecida en .
  3. Privilegios de copia de seguridad del usuario de base de datos en la base de datos

Nota:

Puede conceder estos permisos dentro del flujo de configuración de copia de seguridad con un solo clic si (el administrador de copia de seguridad) tiene acceso de "escritura" en los recursos previstos, o bien usar una plantilla de ARM si no tiene los permisos necesarios (cuando hay varios roles implicados).

Conjunto de permisos necesarios para la restauración de base de datos de Azure Database for PostgreSQL

Los permisos para la restauración son similares a los necesarios para la copia de seguridad y debe conceder los permisos en el servidor PostgreSQL de destino y en el almacén de claves correspondiente. A diferencia de la configuración del flujo de copia de seguridad, la experiencia para conceder estos permisos en línea no está disponible actualmente. Por lo tanto, debe conceder manualmente el acceso en el servidor Postgres y en el almacén de claves correspondiente.

Además, asegúrese de que el usuario de base de datos (correspondiente a las credenciales almacenadas en el almacén de claves) tiene los siguientes privilegios de restauración en la base de datos:

  • ALTER USER username CREATEDB;
  • Asigne el rol azure_pg_admin al usuario de base de datos.

Modelo de autenticación basado en Azure Active Directory

Anteriormente, se había lanzado un modelo de autenticación diferente que se basaba completamente en Azure Active Directory (Azure AD). Sin embargo, ahora proporcionamos el nuevo modelo de autenticación basado en almacén de claves (como se explicó anteriormente) como una opción alternativa, lo que facilita el proceso de configuración.

Descargue este documento para obtener un script automatizado y las instrucciones relacionadas para usar este modelo de autenticación. Este script concederá un conjunto de permisos adecuado para realizar copias de seguridad y restauraciones en un servidor de Azure Database for PostgreSQL.

Nota:

Toda la nueva configuración de protección se llevará a cabo solo con el nuevo modelo de autenticación de almacén de claves. Sin embargo, todas las instancias de copia de seguridad existentes que configuraron la protección con la autenticación basada en Azure AD seguirán existiendo y se realizarán copias de seguridad periódicas. Para restaurar estas copias de seguridad, debe seguir la autenticación basada en Azure AD.

Concesión manual de acceso en el servidor de Azure Database for PostgreSQL y el almacén de claves

Para conceder todos los permisos de acceso necesarios para Azure Backup, consulte las secciones siguientes:

Permisos de acceso en el servidor de Azure Database for PostgreSQL

  1. Establezca el acceso de Lector de la MSI del almacén de Backup en el servidor de Azure Database for PostgreSQL.

    Captura de pantalla en la que se muestra la opción para establecer el acceso de lector de la MSI del almacén de Backup en el servidor de Azure Database for PostgreSQL.

  2. Acceso a la línea de visión de red en el servidor de Azure Database for PostgreSQL: establezca la marca "Permitir el acceso a servicios de Azure" en "Sí".

    Captura de pantalla que muestra la opción de establecer el acceso a la línea de visión de red en el servidor de Azure Database for PostgreSQL.

Permisos de acceso en Azure Key Vault (asociados al servidor de PostgreSQL)

  1. Establezca el acceso de Usuario de secretos de Key Vault de la MSI del almacén de Backup (u obtener y enumerar secretos) en el almacén de claves de Azure. Para asignar permisos, puede usar asignaciones de roles o directivas de acceso. No es necesario agregar el permiso con ambas opciones, ya que no ayuda.

    Captura de pantalla que muestra la opción para proporcionar acceso de usuario de secretos.

    Captura de pantalla en la que se muestra la opción para conceder a la MSI del almacén de Backup acceso de usuario de secretos en el almacén de claves.

  2. Acceso a la línea de visión de red en el almacén de claves: establezca la marca Permitir servicios de Microsoft de confianza en .

    Captura de pantalla que muestra cómo establecer la marca Permitir servicios de Microsoft de confianza en Sí para el acceso a la línea de visión de red en el almacén de claves.

Privilegios de copia de seguridad del usuario de base de datos en la base de datos

Ejecute la siguiente consulta en la herramienta PG admin (reemplace username por el identificador del usuario de base de datos):

DO $do$
DECLARE
sch text;
BEGIN
EXECUTE format('grant connect on database %I to %I', current_database(), 'username');
FOR sch IN select nspname from pg_catalog.pg_namespace
LOOP
EXECUTE format($$ GRANT USAGE ON SCHEMA %I TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL TABLES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON TABLES TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL SEQUENCES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON SEQUENCES TO username $$, sch);
END LOOP;
END;
$do$

Uso de la herramienta PG admin

Descargue la herramienta PG admin si aún no lo ha hecho. Puede conectarse al servidor de Azure Database for PostgreSQL mediante esta herramienta. Además, puede agregar bases de datos y nuevos usuarios a este servidor.

Captura de pantalla en la que se muestra el proceso para conectarse al servidor de Azure PostgreSQL mediante la herramienta PG admin.

Cree un nuevo servidor con el nombre que prefiera. Escriba el nombre de host o el nombre de dirección igual que el nombre del servidor que se muestra en la vista de recursos de Azure Database for PostgreSQL en Azure Portal.

Captura de pantalla en la que se muestra la opción de crear un servidor mediante la herramienta PG admin.

Captura de pantalla que muestra la opción para escribir el nombre de host o el nombre de dirección igual que el nombre del servidor.

Asegúrese de agregar la dirección del identificador de cliente actual a las reglas de firewall para que se permita la conexión.

Captura de pantalla en la que se muestra el proceso para agregar la dirección del identificador de cliente actual a las reglas de firewall.

Puede agregar nuevas bases de datos y usuarios de base de datos al servidor. Para los usuarios de base de datos, agregue un nuevo Inicio de sesión/Roles de grupo. Asegúrese de que Can login? (¿Puede iniciar sesión?) esté establecido en .

Captura de pantalla que muestra el proceso para agregar nuevas bases de datos y usuarios de base de datos al servidor.

Captura de pantalla que muestra el proceso para agregar un nuevo inicio de sesión o rol de grupo para los usuarios de base de datos.

Captura de pantalla que muestra la comprobación de que la opción para poder iniciar sesión esté establecida en Sí.

Pasos siguientes

Copia de seguridad de Azure Database for PostgreSQL