Ochrana databáze a serveru

Dokončeno

Ověřování a autorizace databáze jsou způsob, jakým byste tradičně zabezpečili opensourcovou databázi. Hostování této databáze v Azure vám umožní zvýšit tuto ochranu.

Jako vývojář databáze pro Adventureworks byste chtěli zlepšit ochranu vašich společností Azure Database for PostgreSQL.

V této lekci uvidíte, jaká další ochrana je teď možné, když jste migrovali místní databázi PostgreSQL do Azure.

Ochrana vašich dat

PostgreSQL a MySQL mají vlastní mechanismy ověřování a autorizace, které řídí, kteří uživatelé mají povolený přístup k databázím, a oprávnění, která mají k položkám v těchto databázích. Uživatele a oprávnění byste měli dál spravovat stejným způsobem jako před migrací. Nezapomeňte, že pro připojení k serverům hostovaným v Azure můžete použít nástroje pro správu, jako je pg Správa a MySQL Workbench.

Azure ale poskytuje další ochranu vašich serverů. Tato ochrana funguje na třech úrovních:

  1. Řídí přístup k serveru a filtruje provoz z neznámých nebo nedůvěryhodných zdrojů.
  2. Chrání provoz a zajišťuje, aby ho nebylo možné manipulovat ani zachytávat, protože tokuje z klienta na server a zpět.
  3. Chrání samotný server před běžnými externími hrozbami.

V následujících částech najdete podrobnější informace o těchto položkách.

Filtrování provozu pomocí pravidel brány firewall

Azure Database for MySQL nebo PostgreSQL běží v bráně firewall spravované Microsoftem. Ve výchozím nastavení nemůže projít touto bránou firewall nic. Přidáte pravidla brány firewall, která povolí provoz z určených bloků IP adres, jak je popsáno v předchozích modulech. Doporučuje se aktivně kontrolovat IP adresy, které mají povoleno odesílat provoz v častých intervalech, a odebrat IP adresy pro klienty, které už nejsou potřeba.

Pokud používáte další služby Azure, které potřebují používat vaše databáze, musíte otevřít bránu firewall pro tyto služby. Na webu Azure Portal na stránce zabezpečení Připojení pro vaši službu Azure Database for MySQL nebo PostgreSQL vyberte nastavení Povolit přístup ke službám Azure, aby bylo zapnuté.

Image highlighting the Allow access to Azure services action setting in the firewall configuration for Azure Database for MySQL or PostgreSQL

Poznámka:

Může trvat až pět minut, než se všechny změny, které v bráně firewall provedete, aktivovat.

V některých situacích může být otevření serveru pro všechny služby Azure příliš nadměrné. Pokud používáte verze Azure Database for MySQL nebo PostgreSQL pro obecné účely nebo Optimalizováno pro paměť, filtrujete provoz na úrovni virtuální sítě pomocí pravidel virtuální sítě Azure. Pravidlo virtuální sítě umožňuje povolit provoz pocházející z vašich vlastních virtuálních sítí pro přístup k serveru. Provoz z jiných sítí bude zablokovaný.

Image showing the virtual network rules for Azure Database for MySQL or PostgreSQL

Pokud potřebujete skriptovat úlohy údržby brány firewall, použijte Azure CLI. Následující příklady, které přidávají, odstraňuje a zobrazují pravidla brány firewall, používají příkaz, který provede operace se službou az mysql Azure Database for MySQL. Pokud používáte příkaz PostgreSQL, použijte místo toho odpovídající az postgres příkazy – parametry jsou stejné:

Povolit přístup klientům v rozsahu 13.83.152.0 až 13.83.152.15

az mysql server firewall-rule create \
    --resource-group [resource group name] \
    --server-name [Azure Database for MySQL server name] \
    --name FirewallRule1 \
    --start-ip-address 13.83.152.0 \
    --end-ip-address 13.83.152.15

Výpis všech pravidel brány firewall

az mysql server firewall-rule list \
    --resource-group [resource group name] \
    --server-name [Azure Database for MySQL server name]

Zobrazení podrobností brány firewallRule1

az mysql server firewall-rule show \
    --resource-group [resource group name] \
    --server-name [Azure Database for MySQL server name] \
    --name FirewallRule1

Odeberte firewallRule1. Klienti v rozsahu adres pro toto pravidlo budou odepřeni přístupu.

az mysql server firewall-rule delete \
    --resource-group [resource group name] \
    --server-name [Azure Database for MySQL server name] \
    --name FirewallRule1

Pokud chcete povolit přístup ke službám Azure, vytvořte pravidlo brány firewall s start-ip-address hodnotou a end-ip-address hodnotou 0.0.0.0.

Pravidla virtuální sítě vytváříte a spravujete podobným způsobem pomocí az msysql server vnet-rule příkazů.

Ochrana provozu pomocí SSL

Ve výchozím nastavení je povolená ochrana SSL pro Službu Azure Database for MySQL nebo PostgreSQL. Ssl můžete zakázat a znovu povolit pomocí nastavení Vynucení připojení SSL na stránce zabezpečení Připojení ion pro službu Azure Database for MySQL nebo PostgreSQL na webu Azure Portal:

Image highlighting the Enforce SSL connection setting on the Connection security page for Azure Database for MySQL or PostgreSQL

Ochrana serveru pomocí služby Azure Advanced Threat Protection

Advanced Threat Protection je další vrstva zabezpečení, kterou poskytuje Azure. Advanced Threat Protection monitoruje přístup k vašemu serveru a hledá vzory neobvyklého nebo potenciálně škodlivého chování. Když se takové chování zjistí, zajistíte odeslání výstrahy na zadané e-mailové adresy.

Mezi zjištěné vzory neobvyklé aktivity patří:

  • Přístup z neočekávaného nebo neobvyklého umístění
  • Přístup z neobvyklého datového centra Azure
  • Přístup z aplikace, která může být škodlivá, jako je například rozpoznaný nástroj pro útok.
  • Velký počet neúspěšných přihlášení v rychlém sledu, což značí možný útok hrubou silou.

Rozšířenou ochranu před internetovými útoky můžete povolit na stránce Advanced Threat Protection pro vaši službu na webu Azure Portal:

Image showing the Advanced Threat Protection page for Azure Database for MySQL or PostgreSQL

Zálohování a obnovení serveru

Služba Azure Database for MySQL nebo PostgreSQL automaticky zálohuje váš server podle následujícího plánu:

  • Úplné zálohování se provádí každý týden s první úplnou zálohou, ke které dochází, jakmile se server vytvoří.
  • Rozdílové zálohování se provádí dvakrát denně.
  • Zálohování transakčního protokolu se provádí každých pět minut.

Celý server se zálohuje. Nemůžete zálohovat jednotlivé databáze a nemůžete ručně vynutit zálohování.

Nastavení možností zálohování

Tyto zálohy použijete k obnovení k jakémukoli bodu v čase, pro který jste si zachovali záložní soubory. Ve výchozím nastavení se zálohy uchovávají sedm dní, ale můžete je uchovávat až po dobu 35 dnů. Určíte také, jak se zálohy ukládají – místně redundantní zálohy se uchovávají ve stejné oblasti jako server a geograficky redundantní zálohy se zkopírují do datových center v jiných oblastech. Geograficky redundantní možnost je dostupná pouze pro servery na cenových úrovních Pro obecné účely a Optimalizováno pro paměť. Možnosti zálohování nastavíte na stránce Cenové úrovně pro váš server na webu Azure Portal:

Image showing the backup configuration section of the pricing tiers page for Azure Database for MySQL or PostgreSQL

Obnovení serveru

Azure Database for MySQL nebo PostgreSQL podporuje dva typy operací obnovení serveru – obnovení k určitému bodu v čase a geografické obnovení. V obou případech akce obnovení vytvoří nový server. Původní server zůstane dostupný. Pokud chcete, aby aplikace používaly obnovená data, musíte je překonfigurovat tak, aby používaly nový server. Nezapomeňte také otevřít bránu firewall nového serveru, aby se klienti a služby mohli připojit.

Důležité

Odstraněný server nejde obnovit. Když odstraníte server, odstraníte také zálohy přidružené k němu.

Obnovení k určitému bodu v čase

Obnovení k určitému bodu v čase vytvoří nový server pomocí záloh z původního serveru a přepošlí server do zadaného času. Operaci obnovení zahájíte pomocí příkazu Obnovit na panelu nástrojů na stránce Přehled vašeho serveru na webu Azure Portal. Zobrazí se výzva k zadání názvu nového serveru a k určitému bodu v čase.

Image showing the point-in-time restore page for Azure Database for MySQL or PostgreSQL

Azure CLI podporuje az mysql/postgres server restorepříkazy, pokud dáváte přednost provádění operací obnovení z příkazového řádku. Příklad:

az mysql server restore \
    --resource-group [resource group name] \
    --name [new Azure Database for MySQL server name] \
    --source-server [original Azure Database for MySQL server name] \
    --restore-point-in-time "2019-10-23T02:10:00+08:00"

Geografické obnovení

Geografické obnovení je úplné obnovení serveru pomocí zálohy uchovávané v geograficky redundantním úložišti. Když vytvoříte nový server pomocí webu Azure Portal, zadáte jako zdroj dat geograficky redundantní zálohu. Po vytvoření nového serveru se naplní databázemi v této zálohě.

Image showing the server details section when creating an Azure Database for MySQL or PostgreSQL server

Azure CLI poskytuje az mysql/postgres server georestore příkazy pro geografické obnovení z příkazového řádku.

Replikace geograficky redundantního zálohování do jiné oblasti může trvat až hodinu. Pokud potřebujete provést geografické obnovení z jiné oblasti, může to vést ke ztrátě dat za hodinu.