Skydda en databas och server

Slutförd

Databasautentisering och -auktorisering är hur du traditionellt skulle skydda databasen med öppen källkod. Att vara värd för databasen i Azure ger dig möjlighet att öka skyddet.

Som databasutvecklare för Adventureworks vill du förbättra skyddet för dina företag Azure Database for PostgreSQL.

I den här lektionen får du se vilket ytterligare skydd som är möjligt nu när du har migrerat din lokala PostgreSQL-databas till Azure.

Skydda dina data

PostgreSQL och MySQL har egna autentiserings- och auktoriseringsmekanismer som styr vilka användare som får åtkomst till databaser och de behörigheter de har över objekt i dessa databaser. Du bör fortsätta att hantera användare och privilegier på ungefär samma sätt som du gjorde före migreringen. Kom ihåg att du kan använda administrativa verktyg, till exempel pgAdmin och MySQL Workbench, för att ansluta till servrar som hanteras av Azure.

Azure ger dock ytterligare skydd till dina servrar. Det här skyddet fungerar på tre nivåer:

  1. Den styr åtkomsten till servern och filtrerar trafik från okända eller ej betrodda källor.
  2. Den skyddar trafiken och ser till att den inte kan manipuleras eller fångas upp när den flödar från en klient till servern och tillbaka igen.
  3. Den skyddar själva servern från vanliga externa hot.

I följande avsnitt beskrivs dessa objekt mer detaljerat.

Filtrera trafik med brandväggsregler

Azure Database for MySQL eller PostgreSQL körs i en brandvägg som hanteras av Microsoft. Som standard kan ingenting passera genom den här brandväggen. Du lägger till brandväggsregler för att aktivera trafik från angivna block med IP-adresser, enligt beskrivningen i föregående moduler. Vi rekommenderar att du aktivt granskar DE IP-adresser som tillåts skicka trafik med jämna mellanrum och tar bort IP-adresserna för klienter som inte längre behövs.

Om du kör andra Azure-tjänster som behöver använda dina databaser måste du öppna brandväggen för dessa tjänster. I Azure-portalen går du till säkerhetssidan Anslut ion för din Azure Database for MySQL- eller PostgreSQL-tjänst och väljer åtgärdsinställningen Tillåt åtkomst till Azure-tjänster så att den är .

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

Kommentar

Det kan ta upp till fem minuter innan alla ändringar du gör i brandväggen blir aktiva.

I vissa fall kan det vara för överdrivet att öppna servern för alla Azure-tjänster. Om du kör versionerna Generell användning eller Minnesoptimerad av Azure Database for MySQL eller PostgreSQL filtrerar du trafik på virtuell nätverksnivå med hjälp av regler för virtuella Azure-nätverk. Med en regel för virtuellt nätverk kan du tillåta trafik som kommer från dina egna virtuella nätverk att komma åt servern. Trafik från andra nätverk blockeras.

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

Om du behöver skripta brandväggsunderhållsuppgifter använder du Azure CLI. Följande exempel, som lägger till, tar bort och visar brandväggsregler, använder az mysql kommandot som utför åtgärder mot Azure Database for MySQL. Om du kör ett PostgreSQL-kommando använder du motsvarande az postgres kommandon i stället – parametrarna är desamma:

Tillåt åtkomst till klienter i intervallet 13.83.152.0 till 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

Visa en lista över alla brandväggsregler

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

Visa information om FirewallRule1

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

Ta bort FirewallRule1. Klienter i adressintervallet för den här regeln nekas åtkomst

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

Om du vill aktivera åtkomst till Azure-tjänster skapar du en brandväggsregel med start-ip-address värdet 0.0.0.0och end-ip-address värdet .

Du skapar och hanterar regler för virtuella nätverk på ett liknande sätt med hjälp av az msysql server vnet-rule kommandona.

Skydda trafik med SSL

SSL-skydd för Azure Database for MySQL eller PostgreSQL är aktiverat som standard. Du kan inaktivera och återaktivera SSL med hjälp av inställningen Framtvinga SSL-anslutningAnslut ionssäkerhetssidan för din Azure Database for MySQL- eller PostgreSQL-tjänst i Azure-portalen:

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

Skydda servern med Azure Advanced Threat Protection

Advanced Threat Protection är ytterligare ett säkerhetslager som tillhandahålls av Azure. Advanced Threat Protection övervakar åtkomsten till servern och söker efter mönster med ovanligt eller potentiellt skadligt beteende. När ett sådant beteende identifieras ser du till att en avisering skickas till angivna e-postadresser.

Mönstren för ovanlig aktivitet som identifierats är:

  • Åtkomst från en oväntad eller ovanlig plats.
  • Åtkomst från ett ovanligt Azure-datacenter.
  • Åtkomst från ett program som kan vara skadligt, till exempel ett identifierat attackverktyg.
  • Ett stort antal misslyckade inloggningar i snabb följd, vilket indikerar en möjlig råstyrkeattack.

Du kan aktivera Advanced Threat Protection från sidan Advanced Threat Protection för din tjänst i Azure-portalen:

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

Säkerhetskopiera och återställa en server

Tjänsten Azure Database for MySQL eller PostgreSQL säkerhetskopierar automatiskt servern enligt följande schema:

  • En fullständig säkerhetskopia görs varje vecka och den första fullständiga säkerhetskopieringen sker så snart servern har skapats.
  • En differentiell säkerhetskopiering görs två gånger om dagen.
  • En säkerhetskopiering av transaktionsloggen görs var femte minut.

Hela servern säkerhetskopieras. Du kan inte säkerhetskopiera enskilda databaser och du kan inte framtvinga en säkerhetskopia manuellt.

Ange alternativ för säkerhetskopiering

Du använder dessa säkerhetskopior för att återställa till valfri tidpunkt för vilken du har sparat säkerhetskopieringsfilerna. Som standard lagras säkerhetskopior i sju dagar, men du kan behålla dem i upp till 35 dagar. Du anger också hur säkerhetskopiorna lagras – lokalt redundanta säkerhetskopior lagras i samma region som servern och geo-redundanta säkerhetskopior kopieras till datacenter i andra regioner. Det geo-redundanta alternativet är endast tillgängligt för servrar på prisnivåerna Generell användning och Minnesoptimerad. Du anger säkerhetskopieringsalternativen på sidan Prisnivåer för servern i Azure-portalen:

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

Återställa en server

Azure Database for MySQL eller PostgreSQL stöder två typer av serveråterställningsåtgärder – tidpunkt och geo-återställning. I båda fallen skapar återställningsåtgärden en ny server. Den ursprungliga servern är fortfarande tillgänglig. Om du vill att program ska använda återställd data måste du konfigurera om dem så att de använder den nya servern. Dessutom måste du komma ihåg att öppna brandväggen för den nya servern så att klienter och tjänster kan ansluta.

Viktigt!

Du kan inte återställa en server som har tagits bort. När du tar bort en server tar du också bort de säkerhetskopior som är associerade med den.

Återställning till tidpunkt

En återställning till tidpunkt skapar en ny server med hjälp av säkerhetskopiorna från den ursprungliga servern och återställer servern till den angivna tiden. Du initierar en återställningsåtgärd med kommandot Återställ i verktygsfältet på sidan Översikt för servern i Azure-portalen. Du uppmanas att ange namnet på en ny server och en tidpunkt.

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

Azure CLI stöder az mysql/postgres server restorekommandona om du föredrar att utföra återställningsåtgärder från kommandoraden. Till exempel:

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-återställning

En geo-återställning är en fullständig återställning av en server med hjälp av en säkerhetskopia som lagras i geo-redundant lagring. När du skapar en ny server med azure-portalen anger du en geo-redundant säkerhetskopia som datakälla. När den nya servern skapas fylls den i med databaserna i den här säkerhetskopian.

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

Azure CLI tillhandahåller az mysql/postgres server georestore kommandon för att göra en geo-återställning från kommandoraden.

Det kan ta upp till en timme att replikera en geo-redundant säkerhetskopia till en annan region. Detta kan leda till dataförluster på upp till en timme om du behöver göra en geo-återställning från en annan region.