Ochrana databáze a serveru
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:
- Řídí přístup k serveru a filtruje provoz z neznámých nebo nedůvěryhodných zdrojů.
- 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.
- 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é.
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ý.
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:
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:
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:
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.
Azure CLI podporuje az mysql/postgres server restore
pří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ě.
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.