PostgreSQL için Azure Veritabanı yedeklemesi hakkında

Azure Backup ve Azure Veritabanı Hizmetleri, yedeklemeleri 10 yıla kadar saklayan PostgreSQL için Azure Veritabanı sunucuları için kurumsal sınıf bir yedekleme çözümü oluşturmak üzere bir araya geldi. Çözüm, uzun süreli saklamanın yanı sıra aşağıdaki özellikleri de sunar:

  • Müşteri tarafından tek tek veritabanı düzeyinde zamanlanmış ve isteğe bağlı yedeklemeler denetlendi.
  • Herhangi bir PostgreSQL sunucusuna veya herhangi bir blob depolama alanına veritabanı düzeyinde geri yüklemeler.
  • Tüm işlemlerin ve işlerin merkezi olarak izlenmesi.
  • Yedeklemeler ayrı güvenlik ve hata etki alanlarında depolanır. Kaynak sunucu veya abonelik herhangi bir durumda tehlikeye girerse yedeklemeler Backup kasasında (yönetilen Azure Backup depolama hesaplarında) güvende kalır.
  • pg_dump kullanımı, geri yüklemelerde daha fazla esneklik sağlar. Bu, veritabanı sürümleri arasında geri yüklemenize yardımcı olur

Bu çözümü bağımsız olarak veya Azure PostgreSQL tarafından sunulan ve 35 güne kadar saklama olanağı sunan yerel yedekleme çözümüne ek olarak kullanabilirsiniz. Yerel çözüm, en son yedeklemelerden kurtarmak istediğinizde olduğu gibi operasyonel kurtarmalar için uygundur. Azure Backup çözümü, uyumluluk gereksinimleriniz ve daha ayrıntılı ve esnek yedekleme/geri yükleme konusunda size yardımcı olur.

Yedekleme işlemi

  1. Yedekleme yöneticisi olarak, yedeklemeyi planladığınız Azure PostgreSQL veritabanlarını belirtebilirsiniz. Ayrıca, belirtilen veritabanlarına bağlanmak için gereken kimlik bilgilerini depolayan Azure anahtar kasasının ayrıntılarını da belirtebilirsiniz. Bu kimlik bilgileri, Azure anahtar kasasında veritabanı yöneticisi tarafından güvenli bir şekilde dağıtılır.
  2. Ardından yedekleme hizmeti, belirtilen PostgreSQL sunucusuyla kimlik doğrulaması yapmak ve veritabanlarını yedeklemek için uygun izinlere sahip olup olmadığını doğrular.
  3. Azure Backup, korumalı PostgreSQL sunucusuyla iletişim kurmak için içinde bir yedekleme uzantısı yüklü bir çalışan rolü (VM) oluşturur. Bu uzantı bir koordinatör ve PostgreSQL eklentisinden oluşur. Koordinatör yedekleme ve geri yükleme gibi çeşitli işlemler için iş akışlarını tetikler ve eklenti gerçek veri akışını yönetir.
  4. Zamanlanan zamanda koordinatör eklentiyle iletişim kurar, bunun için pg_dump (özel) kullanarak PostgreSQL sunucusundan yedekleme verilerinin akışını başlatması gerekir.
  5. Eklenti, verileri doğrudan Azure Backup yönetilen depolama hesaplarına gönderir (Backup kasası tarafından maskelenerek) hazırlama konumu gereksinimini ortadan kaldırır. Veriler Microsoft yönetilen anahtarlar kullanılarak şifrelenir ve depolama hesaplarında Azure Backup hizmeti tarafından depolanır.

Yedekleme işlemini gösteren diyagram.

PostgreSQL sunucusuyla kimlik doğrulaması Azure Backup

Azure Backup, Azure tarafından belirtilen katı güvenlik yönergelerini izler; yedeklenecek kaynak üzerindeki izinler varsayılır ve kullanıcı tarafından açıkça verilmesi gerekir.

Anahtar kasası tabanlı kimlik doğrulama modeli

Azure Backup hizmetinin her yedeklemeyi alırken Azure PostgreSQL'e bağlanması gerekir. Veritabanına karşılık gelen 'kullanıcı adı + parola' (veya bağlantı dizesi) bu bağlantıyı yapmak için kullanılırken, bu kimlik bilgileri Azure Backup ile depolanmaz. Bunun yerine, bu kimlik bilgilerinin Azure anahtar kasasında veritabanı yöneticisi tarafından gizli dizi olarak güvenli bir şekilde dağıtılması gerekir. kimlik bilgilerini yönetmek ve döndürmek iş yükü yöneticisinin sorumluluğundadır; Azure Backup yedeklemeyi almak için anahtar kasasından en son gizli dizi ayrıntılarını çağırır.

İş yükünü veya veritabanı akışını gösteren diyagram.

Azure PostgreSQL veritabanı yedeklemesi için gereken izin kümesi

  1. Backup kasasının MSI'sine aşağıdaki erişim izinlerini verin:

    • Azure PostgreSQL sunucusunda okuyucu erişimi.
    • Azure anahtar kasasında Gizli Dizi Kullanıcı (veya gizli dizileri alma, listeleme) erişimini Key Vault.
  2. Ağ görüş hattı erişimi:

    • Azure PostgreSQL sunucusu – Azure hizmetlerine erişime izin verbayrağının Evet olarak ayarlanması.
    • Anahtar kasası : Güvenilen Microsoft hizmetleri bayrağının Evet olarak ayarlanmasına izin verin.
  3. Veritabanı kullanıcısının veritabanındaki yedekleme ayrıcalıkları

Not

Hedeflenen kaynaklara 'yazma' erişiminiz varsa (yedekleme yöneticisi) tek bir tıklamayla yedekleme akışı yapılandırma içinde bu izinleri verebilir veya gerekli izinlere sahip değilseniz (birden çok kişi dahil olduğunda) bir ARM şablonu kullanabilirsiniz.

Azure PostgreSQL veritabanı geri yüklemesi için gereken izin kümesi

Geri yükleme izinleri yedekleme için gerekenlere benzer ve hedef PostgreSQL sunucusu ve ilgili anahtar kasası üzerinde izin vermeniz gerekir. Yedekleme akışını yapılandırmanın aksine, bu izinleri satır içi verme deneyimi şu anda kullanılamıyor. Bu nedenle, Postgres sunucusunda ve ilgili anahtar kasasında erişimi el ile vermeniz gerekir.

Ayrıca veritabanı kullanıcısının (anahtar kasasında depolanan kimlik bilgilerine karşılık gelen) veritabanında aşağıdaki geri yükleme ayrıcalıklarına sahip olduğundan emin olun:

  • ALTER USER username CREATEDB;
  • Rol azure_pg_admin veritabanı kullanıcısına atayın.

Azure Active Directory tabanlı kimlik doğrulama modeli

Daha önce tamamen Azure Active Directory'yi (Azure AD) temel alan farklı bir kimlik doğrulama modeli başlatmıştık. Ancak artık yeni anahtar kasası tabanlı kimlik doğrulama modelini (yukarıda açıklandığı gibi) alternatif bir seçenek olarak sağlıyoruz ve bu da yapılandırma sürecini kolaylaştırıyor.

Bu kimlik doğrulama modelini kullanmak üzere otomatik bir betik ve ilgili yönergeler almak için bu belgeyi indirin. Azure PostgreSQL sunucusuna yedekleme ve geri yükleme için uygun bir izin kümesi verir.

Not

Tüm yeni yapılandırma koruması yalnızca yeni anahtar kasası kimlik doğrulama modeliyle gerçekleşir. Ancak, Azure AD tabanlı kimlik doğrulaması ile koruma yapılandırılan tüm mevcut yedekleme örnekleri varolmaya devam eder ve düzenli yedeklemeler alınır. Bu yedeklemeleri geri yüklemek için Azure AD tabanlı kimlik doğrulamasını izlemeniz gerekir.

Azure PostgreSQL sunucusunda ve anahtar kasasında el ile erişim izni verme

Azure Backup için gereken tüm erişim izinlerini vermek için aşağıdaki bölümlere bakın:

Azure PostgreSQL sunucusunda erişim izinleri

  1. Azure PostgreSQL sunucusunda Backup kasasının MSI Okuyucusu erişimini ayarlayın.

    Azure PostgreSQL sunucusunda Backup kasasının M S I Okuyucusu erişimini ayarlama seçeneğini gösteren ekran görüntüsü.

  2. Azure PostgreSQL sunucusunda ağ görüş hattı erişimi: 'Azure hizmetlerine erişime izin ver' bayrağını 'Evet' olarak ayarlayın.

    Azure PostgreSQL sunucusunda ağ görüş hattı erişimini ayarlama seçeneğini gösteren ekran görüntüsü.

Azure Key Vault'ta erişim izinleri (PostgreSQL sunucusuyla ilişkili)

  1. Azure anahtar kasasında Backup kasasının MSI Key Vault Gizli Dizi Kullanıcısı (veya gizli dizileri alma, listeleme) erişimini ayarlayın. İzinleri atamak için rol atamalarını veya erişim ilkelerini kullanabilirsiniz. Yardımcı olmadığı için her iki seçeneği de kullanarak iznin eklenmesi gerekmez.

    • Azure rol tabanlı erişim denetimi (Azure RBAC) yetkilendirmesini (izin modeli Azure rol tabanlı erişim denetimi olarak ayarlanır) kullanarak:

    Gizli kullanıcı erişimi sağlama seçeneğini gösteren ekran görüntüsü.

    Yedekleme kasasının M S I Key Vault Gizli Diziler Kullanıcısına anahtar kasasında erişim verme seçeneğini gösteren ekran görüntüsü.

    • Erişim ilkelerini kullanma (yani İzin modeli, Kasa erişim ilkesi olarak ayarlanır):

      İzin modeli kullanılarak izin verme seçeneğinin Kasa erişim ilkesi modeli olarak ayarlandığını gösteren ekran görüntüsü.

  2. Anahtar kasasında ağ görüş hattı erişimi: Güvenilen Microsoft hizmetlerine izin ver bayrağını Evet olarak ayarlayın.

    Anahtar kasasında Ağ görüş hattı erişimi için Güvenilen Microsoft hizmetlerine izin ver bayrağının evet olarak ayarlanmasını gösteren ekran görüntüsü.

Veritabanı kullanıcısının veritabanındaki yedekleme ayrıcalıkları

PG yönetici aracında aşağıdaki sorguyu çalıştırın (kullanıcı adını veritabanı kullanıcı kimliğiyle değiştirin):

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$

PG yönetici aracını kullanma

Henüz yapmadıysanız PG yönetici aracını indirin. Bu araç aracılığıyla Azure PostgreSQL sunucusuna bağlanabilirsiniz. Ayrıca, bu sunucuya veritabanları ve yeni kullanıcılar ekleyebilirsiniz.

P G yönetici aracını kullanarak Azure PostgreSQL sunucusuna bağlanma işlemini gösteren ekran görüntüsü.

Seçtiğiniz bir adla yeni sunucu oluşturun. Ana bilgisayar adını/adres adını, Azure portal Azure PostgreSQL kaynak görünümünde görüntülenen Sunucu adı ile aynı şekilde girin.

P G yönetici aracını kullanarak yeni sunucu oluşturma seçeneğini gösteren ekran görüntüsü.

Ana bilgisayar adını veya adres adını Sunucu adıyla aynı girme seçeneğini gösteren ekran görüntüsü.

Bağlantının geçmesi için geçerli istemci kimliği adresini Güvenlik duvarı kurallarına eklediğinizden emin olun.

Geçerli istemci kimlik adresini Güvenlik Duvarı kurallarına ekleme işlemini gösteren ekran görüntüsü.

Sunucuya yeni veritabanları ve veritabanı kullanıcıları ekleyebilirsiniz. Veritabanı kullanıcıları için yeni bir Oturum Açma/Grup Rolleri ekleyin. Oturum açabilir mi? seçeneğinin Evet olarak ayarlandığından emin olun.

Sunucuya yeni veritabanları ve veritabanı kullanıcıları ekleme işlemini gösteren ekran görüntüsü.

Veritabanı kullanıcıları için yeni oturum açma veya grup rolü ekleme işlemini gösteren ekran görüntüsü.

Oturum açabilir seçeneğinin doğrulanmasının Evet olarak ayarlandığını gösteren ekran görüntüsü.

Sonraki adımlar

PostgreSQL için Azure Veritabanı yedeklemesi