Een database en server beveiligen

Voltooid

Databaseverificatie en -autorisatie zijn de manier waarop u uw opensource-database traditioneel beveiligt. Als u die database host in Azure, krijgt u de kans om die beveiliging te vergroten.

Als databaseontwikkelaar voor Adventureworks wilt u de beveiliging van uw bedrijven verbeteren met Azure Database for PostgreSQL.

In deze les ziet u welke extra beveiliging mogelijk is nu u uw on-premises PostgreSQL-database naar Azure hebt gemigreerd.

Uw gegevens beveiligen

PostgreSQL en MySQL hebben hun eigen verificatie- en autorisatiemechanismen waarmee wordt bepaald welke gebruikers toegang hebben tot databases en de bevoegdheden die ze hebben over items in deze databases. U moet gebruikers en bevoegdheden op ongeveer dezelfde manier blijven beheren als vóór de migratie. Houd er rekening mee dat u beheerhulpprogramma's, zoals pg Beheer en MySQL Workbench, kunt gebruiken om verbinding te maken met servers die worden gehost door Azure.

Azure biedt echter extra beveiliging voor uw servers. Deze beveiliging werkt op drie niveaus:

  1. Het beheert de toegang tot de server, het filteren van verkeer van onbekende of niet-vertrouwde bronnen.
  2. Het beveiligt het verkeer, zodat het niet kan worden gemanipuleerd of onderschept wanneer het van een client naar de server stroomt en weer terug.
  3. Hiermee wordt de server zelf beschermd tegen veelvoorkomende externe bedreigingen.

In de volgende secties worden deze items uitgebreider besproken.

Verkeer filteren met firewallregels

Azure Database for MySQL of PostgreSQL wordt uitgevoerd binnen een firewall die wordt beheerd door Microsoft. Standaard kan er niets worden doorgegeven via deze firewall. U voegt firewallregels toe om verkeer vanuit aangewezen blokken IP-adressen in te schakelen, zoals beschreven in de vorige modules. Het is raadzaam om de IP-adressen die regelmatig verkeer mogen verzenden actief te controleren en de IP-adressen te verwijderen voor clients die niet meer nodig zijn.

Als u andere Azure-services uitvoert die uw databases moeten gebruiken, moet u de firewall openen voor deze services. Selecteer in Azure Portal, op de Verbinding maken ionbeveiligingspagina voor uw Azure Database for MySQL- of PostgreSQL-service, de actie-instelling Toegang tot Azure-services toestaan, zodat deze is ingeschakeld.

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

Notitie

Het kan vijf minuten duren voordat wijzigingen die u aanbrengt in de firewall actief worden.

In sommige situaties kan het openen van uw server voor alle Azure-services te veel zijn. Als u de versies Algemeen of Geoptimaliseerd voor geheugen van Azure Database for MySQL of PostgreSQL uitvoert, filtert u verkeer op het niveau van het virtuele netwerk met behulp van regels voor virtuele Azure-netwerken. Met een regel voor een virtueel netwerk kunt u verkeer toestaan dat afkomstig is van uw eigen virtuele netwerken voor toegang tot de server. Verkeer van andere netwerken wordt geblokkeerd.

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

Als u onderhoudstaken voor firewalls moet uitvoeren, gebruikt u de Azure CLI. De volgende voorbeelden, die firewallregels toevoegen, verwijderen en weergeven, gebruiken de az mysql opdracht die bewerkingen uitvoert voor Azure Database for MySQL. Als u een PostgreSQL-opdracht uitvoert, gebruikt u in plaats daarvan de bijbehorende az postgres opdrachten: de parameters zijn hetzelfde:

Toegang tot clients in het bereik 13.83.152.0 tot 13.83.152.15 toestaan

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

Alle firewallregels weergeven

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

De details van FirewallRule1 weergeven

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

Verwijder FirewallRule1. Clients in het adresbereik voor deze regel worden de toegang geweigerd

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

Als u toegang tot Azure-services wilt inschakelen, maakt u een firewallregel met een start-ip-address en end-ip-address waarde van 0.0.0.0.

U maakt en beheert regels voor virtuele netwerken op een vergelijkbare manier, met behulp van de az msysql server vnet-rule opdrachten.

Verkeer beveiligen met SSL

SSL-beveiliging voor Azure Database for MySQL of PostgreSQL is standaard ingeschakeld. U kunt SSL uitschakelen en opnieuw inschakelen met behulp van de instelling SSL-verbinding afdwingen op de Verbinding maken ionbeveiligingspagina voor uw Azure Database for MySQL- of PostgreSQL-service in Azure Portal:

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

De server beveiligen met Azure Advanced Threat Protection

Advanced Threat Protection is een extra beveiligingslaag die wordt geleverd door Azure. Advanced Threat Protection bewaakt de toegang tot uw server en zoekt naar patronen van ongebruikelijk of mogelijk schadelijk gedrag. Wanneer dergelijk gedrag wordt gedetecteerd, zorgt u ervoor dat een waarschuwing wordt verzonden naar opgegeven e-mailadressen.

De gedetecteerde patronen van ongebruikelijke activiteit zijn:

  • Toegang vanaf een onverwachte of ongebruikelijke locatie.
  • Toegang vanuit een ongebruikelijk Azure-datacenter.
  • Toegang vanuit een toepassing die mogelijk schadelijk is, zoals een herkend aanvalsprogramma.
  • Een groot aantal mislukte aanmeldingen achter elkaar, wat een mogelijke brute-force-aanval aangeeft.

U kunt Advanced Threat Protection inschakelen vanaf de pagina Advanced Threat Protection voor uw service in Azure Portal:

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

Een back-up maken van een server en deze herstellen

De Azure Database for MySQL- of PostgreSQL-service maakt automatisch een back-up van uw server volgens de volgende planning:

  • Er wordt wekelijks een volledige back-up gemaakt met de eerste volledige back-up die plaatsvindt zodra de server is gemaakt.
  • Er wordt twee keer per dag een differentiële back-up gemaakt.
  • Elke vijf minuten wordt een back-up van het transactielogboek gemaakt.

Er wordt een back-up gemaakt van de hele server. U kunt geen back-ups maken van afzonderlijke databases en u kunt geen back-up handmatig afdwingen.

Back-upopties instellen

U gebruikt deze back-ups om te herstellen naar een bepaald tijdstip waarvoor u de back-upbestanden hebt bewaard. Standaard worden back-ups gedurende zeven dagen bewaard, maar u kunt ze maximaal 35 dagen bewaren. U geeft ook op hoe de back-ups worden opgeslagen: lokaal redundante back-ups worden bewaard binnen dezelfde regio als de server en geografisch redundante back-ups worden gekopieerd naar datacenters in andere regio's. De geografisch redundante optie is alleen beschikbaar voor servers in de prijscategorieën Algemeen gebruik en Geoptimaliseerd voor geheugen. U stelt de back-upopties in op de pagina Prijscategorieën voor uw server in Azure Portal:

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

Een server herstellen

Azure Database for MySQL of PostgreSQL biedt ondersteuning voor twee typen herstelbewerkingen voor servers: herstel naar een bepaald tijdstip en geo-herstel. In beide gevallen wordt met de herstelactie een nieuwe server gemaakt. De oorspronkelijke server blijft beschikbaar. Als u wilt dat toepassingen de herstelde gegevens gebruiken, moet u ze opnieuw configureren om de nieuwe server te gebruiken. Bovendien moet u de firewall van de nieuwe server openen om clients en services verbinding te laten maken.

Belangrijk

U kunt een server die is verwijderd niet herstellen. Wanneer u een server verwijdert, verwijdert u ook de back-ups die eraan zijn gekoppeld.

Herstel naar een bepaald tijdstip

Met een herstel naar een bepaald tijdstip wordt een nieuwe server gemaakt met behulp van de back-ups van de oorspronkelijke server en wordt de server doorgestuurd naar de opgegeven tijd. U start een herstelbewerking met behulp van de opdracht Herstellen op de werkbalk op de pagina Overzicht voor uw server in Azure Portal. U wordt gevraagd om de naam van een nieuwe server en een bepaald tijdstip.

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

De Azure CLI ondersteunt de az mysql/postgres server restoreopdrachten als u liever herstelbewerkingen uitvoert vanaf de opdrachtregel. Voorbeeld:

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"

Geo-herstel

Een geo-herstelbewerking is een volledig herstel van een server met behulp van een back-up in geografisch redundante opslag. Wanneer u een nieuwe server maakt met behulp van Azure Portal, geeft u een geografisch redundante back-up op als de gegevensbron. Wanneer de nieuwe server wordt gemaakt, wordt deze gevuld met de databases in deze back-up.

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

De Azure CLI biedt de az mysql/postgres server georestore opdrachten voor het uitvoeren van geo-herstel vanaf de opdrachtregel.

Het kan een uur duren voordat een geografisch redundante back-up naar een andere regio wordt gerepliceerd. Dit kan leiden tot het verlies van maximaal een uur aan gegevens als u een geo-herstel vanuit een andere regio moet uitvoeren.