Informazioni sul backup di Database di Azure per PostgreSQL
Backup di Azure e i servizi di database di Azure si sono riuniti per creare una soluzione di backup di livello aziendale per Database di Azure per PostgreSQL server che conservano i backup per un massimo di 10 anni. Oltre alla conservazione a lungo termine, la soluzione offre le funzionalità seguenti:
- I backup pianificati e su richiesta vengono controllati dal cliente a livello di singolo database.
- Il ripristino a livello di database viene ripristinato in qualsiasi server PostgreSQL o in qualsiasi archivio BLOB.
- Monitoraggio centralizzato di tutte le operazioni e di tutti i processi.
- I backup sono archiviati in un domini di sicurezza e di errore separati. Se il server di origine o la sottoscrizione vengono compromessi in qualsiasi circostanza, i backup rimangono al sicuro nell'insieme di credenziali di backup (in Backup di Azure account di archiviazione gestiti).
- L'uso di pg_dump consente una maggiore flessibilità nei ripristini. In questo modo è possibile eseguire il ripristino tra le versioni del database
È possibile usare questa soluzione in modo indipendente o oltre alla soluzione di backup nativa offerta da Azure PostgreSQL che offre conservazione fino a 35 giorni. La soluzione nativa è adatta per i ripristini operativi, ad esempio quando si vuole eseguire il ripristino dai backup più recenti. La soluzione Backup di Azure consente di soddisfare le esigenze di conformità e di eseguire backup/ripristino più granulari e flessibili.
Nota
Database di Azure per PostgreSQL - Server singolo è in fase di ritiro, previsto entro il 28 marzo 2025.
Se attualmente si dispone di un database di Azure per PostgreSQL - Servizio Server singolo che ospita server di produzione, è possibile comunicare che è possibile eseguire la migrazione del database di Azure per PostgreSQL - Server singolo al Server flessibile di Database di Azure per PostgreSQL.
Database di Azure per PostgreSQL - Il server flessibile è un servizio di database completamente pronto per> la produzione progettato per un controllo e una flessibilità più granulari rispetto alle funzioni di gestione del database e alle impostazioni di configurazione con la soluzione di backup di livello aziendale di Backup di Azure. Per altre informazioni su Database di Azure per PostgreSQL - Server flessibile, vedere Database di Azure per PostgreSQL - Server flessibile.
Processo di backup
- Gli amministratori di backup possono specificare i database PostgreSQL di Azure di cui si intende eseguire il backup. È anche possibile specificare i dettagli dell'insieme di credenziali delle chiavi di Azure che archivia le credenziali necessarie per connettersi ai database specificati. Queste credenziali vengono sottoposto a seeding sicuro dall'amministratore del database nell'insieme di credenziali delle chiavi di Azure.
- Il servizio di backup convalida quindi se dispone delle autorizzazioni appropriate per l'autenticazione con il server PostgreSQL specificato e per eseguire il backup dei relativi database.
- Backup di Azure attiva un ruolo di lavoro (VM) con un'estensione di backup installata per comunicare con il server PostgreSQL protetto. Questa estensione è costituita da un coordinatore e da un plug-in PostgreSQL. Il coordinatore attiva i flussi di lavoro per varie operazioni, ad esempio backup e ripristino, e il plug-in gestisce il flusso di dati effettivo.
- All'ora pianificata, il coordinatore comunica con il plug-in per avviare lo streaming dei dati di backup dal server PostgreSQL usando pg_dump (personalizzato).
- Il plug-in invia i dati direttamente ai Backup di Azure account di archiviazione gestiti (mascherati dall'insieme di credenziali di Backup), eliminando la necessità di un percorso di gestione temporanea. I dati vengono crittografati usando chiavi gestite da Microsoft e archiviate dal servizio Backup di Azure negli account di archiviazione.
Backup di Azure l'autenticazione con il server PostgreSQL
Backup di Azure segue rigide linee guida di sicurezza definite da Azure. Le autorizzazioni per la risorsa di cui eseguire il backup non vengono considerate e devono essere fornite in modo esplicito dall'utente.
Modello per l'autenticazione basata sull'insieme di credenziali delle chiavi
Il servizio Backup di Azure deve connettersi ad Azure PostgreSQL durante l'esecuzione di ogni backup. Mentre "nome utente e password" (o stringa di connessione), corrispondente al database, vengono usate per stabilire questa connessione, queste credenziali non vengono archiviate con Backup di Azure. Queste credenziali devono invece essere sottoposto a seeding sicuro dall'amministratore del database nell'insieme di credenziali delle chiavi di Azure come segreto. L'amministratore del carico di lavoro è responsabile della gestione e della rotazione delle credenziali; Backup di Azure richiede i dettagli del segreto più recenti dall'insieme di credenziali delle chiavi per eseguire il backup.
Set di autorizzazioni necessarie per il backup del database PostgreSQL di Azure
Concedere le autorizzazioni di accesso seguenti all'identità del servizio gestito dell'insieme di credenziali di Backup:
- Accesso con autorizzazioni di lettura nel server PostgreSQL di Azure.
- Accesso dell'utente o dell'elenco dei segreti di Key Vault nell'insieme di credenziali delle chiavi di Azure.
Accesso alla linea di rete su:
- Il server PostgreSQL di Azure: consente l'accesso al flag dei servizi di Azure da impostare su Sì.
- Insieme di credenziali delle chiavi: consente l'impostazione del flag di servizi Microsoft attendibile su Sì.
Privilegi di backup dell'utente del database nel database
Nota
È possibile concedere queste autorizzazioni all'interno del flusso di backup configurando un solo clic se l'amministratore del backup ha accesso in scrittura alle risorse desiderate oppure usare un modello di Resource Manager se non si dispone delle autorizzazioni necessarie (quando sono coinvolti più utenti).
Set di autorizzazioni necessarie per il ripristino del database PostgreSQL di Azure
Le autorizzazioni per il ripristino sono simili a quelle necessarie per il backup ed è necessario concedere le autorizzazioni per il server PostgreSQL di destinazione e il relativo insieme di credenziali delle chiavi corrispondente. A differenza di configurare il flusso di backup, l'esperienza per concedere queste autorizzazioni inline non è attualmente disponibile. È quindi necessario concedere manualmente l'accesso nel server Postgres e nell'insieme di credenziali delle chiavi corrispondente.
Assicurarsi inoltre che l'utente del database (corrispondente alle credenziali archiviate nell'insieme di credenziali delle chiavi) disponga dei privilegi di ripristino seguenti nel database:
- ALTER USER username CREATEDB;
- Assegnare il ruolo azure_pg_admin all'utente del database.
Modello di autenticazione basato su Microsoft Entra ID
In precedenza era stato lanciato un modello di autenticazione diverso basato interamente su Microsoft Entra ID. Tuttavia, viene ora fornito il nuovo modello di autenticazione basato sull'insieme di credenziali delle chiavi (come illustrato in precedenza) come opzione alternativa, che semplifica il processo di configurazione.
Scaricare questo documento per ottenere uno script automatizzato e le istruzioni correlate per usare questo modello di autenticazione. Concederà un set appropriato di autorizzazioni a un server PostgreSQL di Azure per il backup e il ripristino.
Nota
Tutte le nuove configurazioni di protezione verranno eseguite solo con il nuovo modello di autenticazione dell'insieme di credenziali delle chiavi. Tuttavia, tutte le istanze di backup esistenti configurate con l'autenticazione basata sull'ID di Microsoft Entra continueranno a esistere e avranno backup regolari eseguiti. Per ripristinare questi backup, è necessario seguire l'autenticazione basata sull'ID di Microsoft Entra.
Concedere manualmente l'accesso al server PostgreSQL di Azure e all'insieme di credenziali delle chiavi
Per concedere tutte le autorizzazioni di accesso necessarie per Backup di Azure, vedere le sezioni seguenti:
Autorizzazioni di accesso nel server PostgreSQL di Azure
Impostare l'accesso con autorizzazioni di lettura MSI dell'insieme di credenziali di Backup nel server PostgreSQL di Azure.
Accesso alla rete line-of-sight nel server PostgreSQL di Azure: impostare il flag "Consenti l'accesso ai servizi di Azure" su "Sì".
Autorizzazioni di accesso nell'insieme di credenziali delle chiavi di Azure (associato al server PostgreSQL)
Impostare l'accesso all'utente dei segreti dell'insieme di credenziali delle chiavi MSI dell'insieme di credenziali delle chiavi dell'insieme di credenziali delle chiavi (o ottenere, elencare i segreti) dell'insieme di credenziali delle chiavi di Backup nell'insieme di credenziali delle chiavi di Azure. Per assegnare le autorizzazioni, è possibile usare assegnazioni di ruolo o criteri di accesso. Non è necessario aggiungere l'autorizzazione usando entrambe le opzioni perché non è utile.
Usando l'autorizzazione del controllo degli accessi in base al ruolo di Azure, ovvero il modello di autorizzazione è impostato sul controllo degli accessi in base al ruolo di Azure:
- In Controllo di accesso concedere all'utente i segreti dell'insieme di credenziali delle chiavi msi dell'insieme di credenziali delle chiavi. I bearer di tale ruolo potranno leggere i segreti.
- Concedere alle applicazioni l'autorizzazione per accedere a un insieme di credenziali delle chiavi di Azure usando il controllo degli accessi in base al ruolo di Azure.
L'uso dei criteri di accesso( ovvero, il modello di autorizzazione è impostato su Criteri di accesso dell'insieme di credenziali):
- Impostare Le autorizzazioni Get e List per i segreti.
- Informazioni su Assegnare un criterio di accesso di Azure Key Vault
Accesso alla riga di rete nell'insieme di credenziali delle chiavi: impostare il flag Consenti servizi Microsoft attendibile su Sì.
Privilegi di backup dell'utente del database nel database
Eseguire la query seguente nello strumento di amministrazione PG (sostituire username con l'ID utente del database):
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$
Nota
Se un database per il quale è già stato configurato il backup ha esito negativo con UserErrorMissingDBPermissions , vedere questa guida alla risoluzione dei problemi per assistenza per la risoluzione del problema.
Usare lo strumento di amministrazione PG
Scaricare lo strumento di amministrazione PG se non è già disponibile. È possibile connettersi al server PostgreSQL di Azure tramite questo strumento. È anche possibile aggiungere database e nuovi utenti a questo server.
Creare un nuovo server con un nome di propria scelta. Immettere il nome host/indirizzo uguale al nome del server visualizzato nella visualizzazione delle risorse di Azure PostgreSQL nella portale di Azure.
Assicurarsi di aggiungere l'indirizzo ID client corrente alle regole del firewall per la connessione da eseguire.
È possibile aggiungere nuovi database e utenti di database al server. Per gli utenti del database, aggiungere un nuovo account di accesso/ruoli di gruppo'. Assicurarsi che l'account di accesso sia impostato su Sì.