Översikt över databassäkerhet i Azure Cosmos DB

GÄLLER FÖR: Nosql Mongodb Cassandra Gremlin Tabell

I den här artikeln beskrivs metodtips för databassäkerhet och viktiga funktioner som erbjuds av Azure Cosmos DB som hjälper dig att förhindra, identifiera och reagera på databasintrång.

Vad är nytt i Azure Cosmos DB-säkerhet?

Kryptering i vila är nu tillgängligt för dokument och säkerhetskopior som lagras i Azure Cosmos DB i alla Azure-regioner. Vilande kryptering tillämpas automatiskt för både nya och befintliga kunder i dessa regioner. Du behöver inte konfigurera något. Du får samma långa svarstid, dataflöde, tillgänglighet och funktioner som tidigare med fördelen att veta att dina data är säkra och säkra med kryptering i vila. Data som lagras i ditt Azure Cosmos DB-konto krypteras automatiskt och sömlöst med nycklar som hanteras av Microsoft med hjälp av tjänsthanterade nycklar. Du kan också välja att lägga till ett andra krypteringslager med nycklar som du hanterar med hjälp av kundhanterade nycklar eller CMK.

Hur gör jag för att skydda min databas?

Datasäkerhet är ett delat ansvar mellan dig, kunden och databasleverantören. Beroende på vilken databasprovider du väljer kan ansvaret variera. Om du väljer en lokal lösning måste du tillhandahålla allt från slutpunktsskydd till fysisk säkerhet för maskinvaran, vilket inte är någon enkel uppgift. Om du väljer en paaS-molndatabasprovider (plattform som en tjänst), till exempel Azure Cosmos DB, minskar ditt problemområde avsevärt. Följande bild, lånad från Microsofts white paper om delat ansvar för molnbaserad databehandling , visar hur ditt ansvar minskar med en PaaS-leverantör som Azure Cosmos DB.

Screenshot that shows customer and database provider responsibilities.

Föregående diagram visar molnsäkerhetskomponenter på hög nivå, men vilka objekt behöver du oroa dig för specifikt för din databaslösning? Hur kan du jämföra lösningar med varandra?

Vi rekommenderar följande checklista med krav för att jämföra databassystem:

  • Inställningar för nätverkssäkerhet och brandvägg
  • Användarautentisering och detaljerade användarkontroller
  • Möjlighet att replikera data globalt för regionala fel
  • Möjlighet att redundansväsna från ett datacenter till ett annat
  • Lokal datareplikering i ett datacenter
  • Automatiska säkerhetskopieringar av data
  • Återställning av borttagna data från säkerhetskopior
  • Skydda och isolera känsliga data
  • Övervakning av attacker
  • Svara på attacker
  • Möjlighet att geo-stängseldata att följa datastyrningsbegränsningar
  • Fysiskt skydd av servrar i skyddade datacenter
  • Certifieringar

Även om det kan verka uppenbart påminner de senaste storskaliga databasöverträdelserna oss om den enkla men kritiska betydelsen av följande krav:

  • Uppdaterade servrar som hålls uppdaterade
  • HTTPS som standard/TLS-kryptering
  • Administrativa konton med starka lösenord

Hur skyddar Azure Cosmos DB min databas?

Nu ska vi titta tillbaka på föregående lista. Hur många av dessa säkerhetskrav tillhandahåller Azure Cosmos DB? Varenda en.

Nu ska vi utforska var och en i detalj.

Säkerhetskrav Azure Cosmos DB:s säkerhetsmetod
Nätverkssäkerhet Att använda en IP-brandvägg är det första skyddsskiktet för att skydda databasen. Azure Cosmos DB stöder principdrivna IP-baserade åtkomstkontroller för inkommande brandväggsstöd. IP-baserade åtkomstkontroller liknar de brandväggsregler som används av traditionella databassystem. De expanderas dock så att ett Azure Cosmos DB-databaskonto endast är tillgängligt från en godkänd uppsättning datorer eller molntjänster. Mer information finns i Azure Cosmos DB-brandväggsstöd.

Med Azure Cosmos DB kan du aktivera en specifik IP-adress (168.61.48.0), ett IP-intervall (168.61.48.0/8) och kombinationer av IP-adresser och intervall.

Azure Cosmos DB blockerar alla begäranden som kommer från datorer utanför listan över tillåtna. Begäranden från godkända datorer och molntjänster måste sedan slutföra autentiseringsprocessen för att få åtkomstkontroll till resurserna.

Du kan använda tjänsttaggar för virtuella nätverk för att uppnå nätverksisolering och skydda dina Azure Cosmos DB-resurser från det allmänna Internet. Använd tjänsttaggar i stället för specifika IP-adresser när du skapar säkerhetsregler. Genom att ange namnet på tjänsttaggen (till exempel AzureCosmosDB) i lämpligt käll- eller målfält för en regel kan du tillåta eller neka trafik för motsvarande tjänst.
Auktorisering Azure Cosmos DB använder hashbaserad kod för meddelandeautentisering (HMAC) för auktorisering.

Varje begäran hashas med hjälp av den hemliga kontonyckeln och den efterföljande base-64-kodade hashen skickas med varje anrop till Azure Cosmos DB. För att verifiera begäran använder Azure Cosmos DB rätt hemlighetsnyckel och egenskaper för att generera en hash och jämför sedan värdet med värdet i begäran. Om de två värdena matchar godkänns åtgärden och begäran bearbetas. Om de inte matchar uppstår ett auktoriseringsfel och begäran avvisas.

Du kan använda antingen en primärnyckel eller en resurstoken, vilket ger detaljerad åtkomst till en resurs, till exempel ett dokument.

Mer information finns i Säker åtkomst till Azure Cosmos DB-resurser.
Användare och behörigheter Genom att använda primärnyckeln för kontot kan du skapa användarresurser och behörighetsresurser per databas. En resurstoken är associerad med en behörighet i en databas och avgör om användaren har åtkomst (skrivskyddad, skrivskyddad eller ingen åtkomst) till en programresurs i databasen. Programresurser omfattar containrar, dokument, bifogade filer, lagrade procedurer, utlösare och UDF:er. Resurstoken används sedan under autentiseringen för att tillhandahålla eller neka åtkomst till resursen.

Mer information finns i Säker åtkomst till Azure Cosmos DB-resurser.
Active Directory-integrering (rollbaserad åtkomstkontroll i Azure) Du kan också ange eller begränsa åtkomsten till Azure Cosmos DB-kontot, databasen, containern och erbjudandena (dataflödet) med hjälp av åtkomstkontroll (IAM) i Azure-portalen. IAM tillhandahåller rollbaserad åtkomstkontroll och integreras med Active Directory. Du kan använda inbyggda roller eller anpassade roller för individer och grupper. Mer information finns i Active Directory-integrering.
Global replikering Azure Cosmos DB erbjuder nyckelfärdig global distribution, vilket gör att du kan replikera dina data till något av Azures globala datacenter på ett nyckelfärdigt sätt. Med global replikering kan du skala globalt och ge åtkomst med låg svarstid till dina data runt om i världen.

I säkerhetssammanhang säkerställer global replikering dataskydd mot regionala fel.

Mer information finns i Distribuera data globalt.
Regionala redundanstestningar Om du har replikerat dina data i mer än ett datacenter rullar Azure Cosmos DB automatiskt över dina åtgärder om ett regionalt datacenter går offline. Du kan skapa en prioriterad lista över redundansregioner med hjälp av de regioner där dina data replikeras.

Mer information finns i Regionala redundansväxlingar i Azure Cosmos DB.
Lokal replikering Även i ett enda datacenter replikerar Azure Cosmos DB automatiskt data för hög tillgänglighet, vilket ger dig möjlighet att välja konsekvensnivåer. Den här replikeringen garanterar ett serviceavtal med 99,99 % tillgänglighet för alla konton i en enskild region och alla konton i flera regioner med avslappnad konsekvens och lästillgänglighet på 99,999 % på alla databaskonton i flera regioner.
Automatiserade säkerhetskopieringar online Azure Cosmos DB-databaser säkerhetskopieras regelbundet och lagras i ett geo-redundant arkiv.

Mer information finns i Automatisk onlinesäkerhetskopiering och återställning med Azure Cosmos DB.
Återställa borttagna data Du kan använda de automatiserade onlinesäkerhetskopieringarna för att återställa data som du kan ha tagit bort av misstag upp till ~30 dagar efter händelsen.

Mer information finns i Automatisk onlinesäkerhetskopiering och återställning med Azure Cosmos DB
Skydda och isolera känsliga data Alla data i de regioner som anges i Vad är nytt? krypteras nu i vila.

Personuppgifter och andra konfidentiella data kan isoleras till specifika containrar och skrivskyddad eller skrivskyddad åtkomst kan begränsas till specifika användare.
Övervaka attacker Genom att använda granskningsloggning och aktivitetsloggar kan du övervaka ditt konto för normal och onormal aktivitet. Du kan visa vilka åtgärder som har utförts på dina resurser. Dessa data omfattar vem som initierade åtgärden, när åtgärden inträffade, åtgärdens status och mycket mer.
Svara på attacker När du har kontaktat Azure-supporten för att rapportera en potentiell attack börjar en femstegsprocess för incidenthantering. Målet är att återställa normal tjänstsäkerhet och -åtgärder. Processen återställer tjänster så snabbt som möjligt när ett problem har identifierats och en undersökning har startats.

Mer information finns i Microsoft Azures säkerhetssvar i molnet.
Geo-fäktning Azure Cosmos DB säkerställer datastyrning för nationella regioner (till exempel Tyskland, Kina och AMERIKANSKA myndigheter).
Skyddade anläggningar Data i Azure Cosmos DB lagras på solid state-enheter i Azures skyddade datacenter.

Mer information finns i Microsofts globala datacenter.
HTTPS/SSL/TLS-kryptering Alla anslutningar till Azure Cosmos DB stöder HTTPS. Azure Cosmos DB stöder TLS-nivåer upp till 1,2 (ingår).
Det går att framtvinga en lägsta TLS-nivå på serversidan. Det gör du genom att läsa självbetjäningsguiden Självbetjäning för lägsta TLS-version i Azure Cosmos DB.
Kryptering i vila Alla data som lagras i Azure Cosmos DB krypteras i vila. Läs mer i Azure Cosmos DB-kryptering i vila.
Korrigerade servrar Som en hanterad databas eliminerar Azure Cosmos DB behovet av att hantera och korrigera servrar eftersom det görs automatiskt åt dig.
Administrativa konton med starka lösenord Det går inte att ha ett administrativt konto utan lösenord i Azure Cosmos DB.

Säkerhet via TLS- och HMAC-hemlighetsbaserad autentisering bakas in som standard.
Säkerhets- och dataskyddscertifieringar Den senaste listan över certifieringar finns i Azure-efterlevnad och det senaste Azure-efterlevnadsdokumentet med alla Azure-certifieringar, inklusive Azure Cosmos DB.

Följande skärmbild visar hur du kan använda granskningsloggning och aktivitetsloggar för att övervaka ditt konto. Screenshot that shows activity logs for Azure Cosmos DB.

Primära/sekundära nycklar

Primära/sekundära nycklar ger åtkomst till alla administrativa resurser för databaskontot. Primära/sekundära nycklar:

  • Ge åtkomst till konton, databaser, användare och behörigheter.
  • Det går inte att använda för att ge detaljerad åtkomst till containrar och dokument.
  • Skapas när ett konto skapas.
  • Kan återskapas när som helst.

Varje konto består av två nycklar: en primärnyckel och en sekundär nyckel. Syftet med dubbla nycklar är att du ska kunna återskapa eller rulla nycklar, vilket ger kontinuerlig åtkomst till ditt konto och dina data.

Primära/sekundära nycklar finns i två versioner: skrivskyddad och skrivskyddad. Skrivskyddade nycklar tillåter endast läsåtgärder för kontot. De ger inte åtkomst till läsbehörighetsresurser.

Nyckelrotation och regenerering

Processen för nyckelrotation och regenerering är enkel. Kontrollera först att programmet konsekvent använder antingen den primära nyckeln eller den sekundära nyckeln för att få åtkomst till ditt Azure Cosmos DB-konto. Följ sedan stegen i nästa avsnitt. Information om hur du övervakar ditt konto för nyckeluppdateringar och nyckelåtergenerering finns i Övervaka nyckeluppdateringar med mått och aviseringar.

Om ditt program för närvarande använder primärnyckeln

  1. Gå till ditt Azure Cosmos DB-konto i Azure-portalen.

  2. Välj Nycklar på den vänstra menyn och välj sedan Återskapa sekundär nyckel från ellipsen (...) till höger om den sekundära nyckeln.

    Screenshot showing how to regenerate the secondary key in the Azure portal when used with the NoSQL API.

  3. Kontrollera att den nya sekundära nyckeln fungerar konsekvent mot ditt Azure Cosmos DB-konto. Nyckelåtergenerering kan ta allt från en minut till flera timmar beroende på storleken på Azure Cosmos DB-kontot.

  4. Ersätt din primära nyckel med den sekundära nyckeln i programmet.

  5. Gå tillbaka till Azure-portalen och utlös regenereringen av primärnyckeln.

    Screenshot showing how to regenerate the primary key in the Azure portal when used with the NoSQL API.

Om ditt program för närvarande använder den sekundära nyckeln

  1. Gå till ditt Azure Cosmos DB-konto i Azure-portalen.

  2. Välj Nycklar på den vänstra menyn och välj sedan Återskapa primärnyckel från ellipsen (...) till höger om primärnyckeln.

    Screenshot that shows how to regenerate the primary key in the Azure portal when used with the NoSQL API.

  3. Kontrollera att den nya primärnyckeln fungerar konsekvent mot ditt Azure Cosmos DB-konto. Nyckelåtergenerering kan ta allt från en minut till flera timmar beroende på storleken på Azure Cosmos DB-kontot.

  4. Ersätt den sekundära nyckeln med primärnyckeln i programmet.

  5. Gå tillbaka till Azure-portalen och utlös regenereringen av den sekundära nyckeln.

    Screenshot that shows how to regenerate the secondary key in the Azure portal when used with the NoSQL API.

Spåra status för nyckelregenerering

När du har roterat eller återskapat en nyckel kan du spåra dess status från aktivitetsloggen. Följ stegen nedan för att spåra statusen.

  1. Logga in på Azure-portalen och gå till ditt Azure Cosmos DB-konto.

  2. Välj Nycklar på den vänstra menyn. Du bör se det senaste datumet för nyckelåtergenerering under varje nyckel.

    Screenshot that shows status of key regeneration from the activity log.

    Vi rekommenderar att du återskapar nycklarna minst en gång var 60:e dag. Om din senaste regenerering var för mer än 60 dagar sedan visas en varningsikon. Du kan också se att nyckeln inte har registrerats. Om så är fallet skapades ditt konto före den 18 juni 2022 och datumen registrerades inte. Du bör dock kunna återskapa och se ditt nya senaste förnyelsedatum för den nya nyckeln.

  3. Du bör se viktiga regenereringshändelser tillsammans med dess status, tidpunkt då åtgärden utfärdades och information om den användare som initierade nyckelregenerering. Nyckelgenereringsåtgärden initieras med godkänd status. Den ändras till Startad och sedan till Lyckades när åtgärden är klar.

Nästa steg