Omówienie zabezpieczeń bazy danych w usłudze Azure Cosmos DB

DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli

W tym artykule omówiono najlepsze rozwiązania dotyczące zabezpieczeń baz danych i kluczowe funkcje oferowane przez usługę Azure Cosmos DB, które pomagają zapobiegać naruszeniom, wykrywać je i reagować na nie.

Co nowego w zabezpieczeniach usługi Azure Cosmos DB?

Szyfrowanie magazynowane jest teraz dostępne dla dokumentów i kopii zapasowych przechowywanych w usłudze Azure Cosmos DB we wszystkich regionach świadczenia usługi Azure. Szyfrowanie magazynowane jest stosowane automatycznie zarówno dla nowych, jak i istniejących klientów w tych regionach. Nie ma potrzeby konfigurowania niczego. Uzyskujesz takie samo duże opóźnienie, przepływność, dostępność i funkcjonalność, jak wcześniej, dzięki korzyści płynącej z wiedzy, że dane są bezpieczne i bezpieczne dzięki szyfrowaniu magazynowanemu. Dane przechowywane na koncie usługi Azure Cosmos DB są automatycznie i bezproblemowo szyfrowane przy użyciu kluczy zarządzanych przez firmę Microsoft przy użyciu kluczy zarządzanych przez usługę. Opcjonalnie możesz dodać drugą warstwę szyfrowania z kluczami zarządzanymi przy użyciu kluczy zarządzanych przez klienta lub klucza zarządzanego przez klienta.

Jak mogę zabezpieczyć moją bazę danych?

Bezpieczeństwo danych to wspólna odpowiedzialność między Tobą, klientem i dostawcą bazy danych. W zależności od wybranego dostawcy bazy danych ilość odpowiedzialności może się różnić. Jeśli wybierzesz rozwiązanie lokalne, musisz zapewnić wszystko, od ochrony punktu końcowego po fizyczne zabezpieczenia sprzętu, co nie jest łatwe. Jeśli wybierzesz dostawcę bazy danych w chmurze typu platforma jako usługa (PaaS), takiego jak usługa Azure Cosmos DB, obszar zainteresowania znacznie się zmniejsza. Na poniższej ilustracji, pożyczonej ze wspólnej odpowiedzialności firmy Microsoft za przetwarzanie w chmurze , przedstawiono spadek odpowiedzialności dostawcy PaaS, takiego jak Azure Cosmos DB.

Screenshot that shows customer and database provider responsibilities.

Na powyższym diagramie przedstawiono ogólne składniki zabezpieczeń w chmurze, ale jakie elementy należy martwić się o rozwiązanie bazy danych? Jak można porównać rozwiązania ze sobą?

Zalecamy następującą listę kontrolną wymagań, dla których należy porównać systemy baz danych:

  • Ustawienia zabezpieczeń sieci i zapory
  • Uwierzytelnianie użytkownika i szczegółowe kontrolki użytkownika
  • Możliwość replikacji danych globalnie w przypadku awarii regionalnych
  • Możliwość przełączania w tryb failover z jednego centrum danych do innego
  • Replikacja danych lokalnych w centrum danych
  • Automatyczne kopie zapasowe danych
  • Przywracanie usuniętych danych z kopii zapasowych
  • Ochrona i izolowanie poufnych danych
  • Monitorowanie ataków
  • Reagowanie na ataki
  • Możliwość stosowania danych ogrodzenia geograficznego w celu przestrzegania ograniczeń ładu danych
  • Ochrona fizyczna serwerów w chronionych centrach danych
  • Certyfikaty

Chociaż może się wydawać oczywiste, ostatnie naruszenia bazy danych na dużą skalę przypominają nam o prostym, ale krytycznym znaczeniu następujących wymagań:

  • Serwery z poprawkami, które są aktualne
  • Szyfrowanie HTTPS domyślnie/TLS
  • konta Administracja istracyjne z silnymi hasłami

Jak usługa Azure Cosmos DB zabezpiecza bazę danych?

Przyjrzyjmy się poprzedniej liście. Ile z tych wymagań dotyczących zabezpieczeń zapewnia usługa Azure Cosmos DB? Każdy z nich.

Przyjrzyjmy się szczegółowo każdemu z nich.

Wymaganie dotyczące zabezpieczeń Podejście zabezpieczeń usługi Azure Cosmos DB
Bezpieczeństwo sieci Korzystanie z zapory IP jest pierwszą warstwą ochrony w celu zabezpieczenia bazy danych. Usługa Azure Cosmos DB obsługuje oparte na zasadach mechanizmy kontroli dostępu oparte na adresach IP na potrzeby obsługi zapory dla ruchu przychodzącego. Mechanizmy kontroli dostępu oparte na adresach IP są podobne do reguł zapory używanych przez tradycyjne systemy baz danych. Są one jednak rozszerzane tak, aby konto bazy danych usługi Azure Cosmos DB było dostępne tylko z zatwierdzonego zestawu maszyn lub usług w chmurze. Aby dowiedzieć się więcej, zobacz Obsługa zapory usługi Azure Cosmos DB.

Usługa Azure Cosmos DB umożliwia włączenie określonego adresu IP (168.61.48.0), zakresu adresów IP (168.61.48.0/8) oraz kombinacji adresów IP i zakresów.

Usługa Azure Cosmos DB blokuje wszystkie żądania pochodzące z maszyn spoza tej listy dozwolonych. Żądania z zatwierdzonych maszyn i usług w chmurze muszą następnie ukończyć proces uwierzytelniania, aby zapewnić kontrolę dostępu do zasobów.

Za pomocą tagów usługi sieci wirtualnej można uzyskać izolację sieci i chronić zasoby usługi Azure Cosmos DB przed ogólnym Internetem. Podczas tworzenia reguł zabezpieczeń można użyć tagów usługi zamiast konkretnych adresów IP. Określając nazwę tagu usługi (na przykład AzureCosmosDB) w odpowiednim polu źródłowym lub docelowym reguły, można zezwolić na ruch dla odpowiedniej usługi lub go zablokować.
Autoryzacja Usługa Azure Cosmos DB używa kodu uwierzytelniania komunikatów opartego na skrótach (HMAC) do autoryzacji.

Każde żądanie jest szyfrowane przy użyciu klucza konta tajnego, a kolejne skróty zakodowane w formacie base-64 są wysyłane z każdym wywołaniem do usługi Azure Cosmos DB. Aby zweryfikować żądanie, usługa Azure Cosmos DB używa poprawnego klucza tajnego i właściwości do wygenerowania skrótu, a następnie porównuje wartość z wartością w żądaniu. Jeśli te dwie wartości są zgodne, operacja zostanie pomyślnie autoryzowana i żądanie zostanie przetworzone. Jeśli nie są one zgodne, występuje błąd autoryzacji i żądanie zostanie odrzucone.

Możesz użyć klucza podstawowego lub tokenu zasobu, co umożliwia szczegółowe uzyskiwanie dostępu do zasobu, takiego jak dokument.

Aby dowiedzieć się więcej, zobacz Bezpieczny dostęp do zasobów usługi Azure Cosmos DB.
Użytkownicy i uprawnienia Korzystając z klucza podstawowego dla konta, można utworzyć zasoby użytkownika i zasoby uprawnień na bazę danych. Token zasobu jest skojarzony z uprawnieniem w bazie danych i określa, czy użytkownik ma dostęp (odczyt-zapis, tylko do odczytu lub bez dostępu) do zasobu aplikacji w bazie danych. Zasoby aplikacji obejmują kontenery, dokumenty, załączniki, procedury składowane, wyzwalacze i funkcje zdefiniowane przez użytkownika. Token zasobu jest następnie używany podczas uwierzytelniania w celu zapewnienia lub odmowy dostępu do zasobu.

Aby dowiedzieć się więcej, zobacz Bezpieczny dostęp do zasobów usługi Azure Cosmos DB.
Integracja usługi Active Directory (kontrola dostępu oparta na rolach platformy Azure) Możesz również zapewnić lub ograniczyć dostęp do konta usługi Azure Cosmos DB, bazy danych, kontenera i ofert (przepływności) przy użyciu kontroli dostępu (IAM) w witrynie Azure Portal. Zarządzanie dostępem i tożsamościami zapewnia kontrolę dostępu opartą na rolach i integruje się z usługą Active Directory. Role wbudowane lub role niestandardowe można używać dla użytkowników indywidualnych i grup. Aby dowiedzieć się więcej, zobacz Integracja usługi Active Directory.
Replikacja globalna Usługa Azure Cosmos DB oferuje kompleksową dystrybucję globalną, która umożliwia replikowanie danych do dowolnego z globalnych centrów danych platformy Azure w sposób klucz. Replikacja globalna umożliwia globalne skalowanie i zapewnia dostęp o małych opóźnieniach do danych na całym świecie.

W kontekście zabezpieczeń replikacja globalna zapewnia ochronę danych przed awariami regionalnymi.

Aby dowiedzieć się więcej, zobacz Globalnie dystrybuowanie danych.
Praca w trybie failover w regionach Jeśli dane zostały zreplikowane w więcej niż jednym centrum danych, usługa Azure Cosmos DB automatycznie przerzuca operacje, jeśli regionalne centrum danych przejdzie w tryb offline. Można utworzyć priorytetową listę regionów trybu failover przy użyciu regionów, w których są replikowane dane.

Aby dowiedzieć się więcej, zobacz Regionalne przejścia w tryb failover w usłudze Azure Cosmos DB.
Replikacja lokalna Nawet w jednym centrum danych usługa Azure Cosmos DB automatycznie replikuje dane pod kątem wysokiej dostępności, zapewniając wybór poziomów spójności. Ta replikacja gwarantuje umowę SLA dotyczącą dostępności na 99,99% dla wszystkich kont w jednym regionie i wszystkich kont w wielu regionach z luźną spójnością oraz dostępność odczytu na wszystkich kontach bazy danych w wielu regionach.
Automatyczne kopie zapasowe online Bazy danych usługi Azure Cosmos DB są regularnie tworzone i przechowywane w magazynie geograficznie nadmiarowym.

Aby dowiedzieć się więcej, zobacz Automatyczne tworzenie i przywracanie kopii zapasowych online za pomocą usługi Azure Cosmos DB.
Przywracanie usuniętych danych Automatyczne kopie zapasowe online umożliwiają odzyskanie danych, które mogły zostać przypadkowo usunięte do około 30 dni po zdarzeniu.

Aby dowiedzieć się więcej, zobacz Automatyczne tworzenie kopii zapasowych online i przywracanie za pomocą usługi Azure Cosmos DB
Ochrona i izolowanie poufnych danych Wszystkie dane w regionach wymienionych w artykule Co nowego? funkcja jest teraz szyfrowana w spoczynku.

Dane osobowe i inne poufne dane mogą być odizolowane od określonych kontenerów, a dostęp tylko do odczytu i zapisu może być ograniczony do określonych użytkowników.
Monitorowanie ataków Korzystając z dzienników rejestrowania inspekcji i aktywności, możesz monitorować konto pod kątem normalnej i nietypowej aktywności. Możesz wyświetlić operacje wykonywane na zasobach. Te dane obejmują, kto zainicjował operację, kiedy operacja miała miejsce, stan operacji i wiele innych.
Reagowanie na ataki Po skontaktowaniu się z pomoc techniczna platformy Azure w celu zgłoszenia potencjalnego ataku rozpocznie się proces reagowania na zdarzenia pięcioetapowe. Celem jest przywrócenie normalnych zabezpieczeń i operacji usługi. Proces przywraca usługi tak szybko, jak to możliwe po wykryciu problemu i rozpoczęciu badania.

Aby dowiedzieć się więcej, zobacz Reagowanie na zabezpieczenia platformy Microsoft Azure w chmurze.
Ogrodzenie geograficzne Usługa Azure Cosmos DB zapewnia nadzór nad danymi dla suwerennych regionów (na przykład Niemcy, Chiny i instytucje rządowe USA).
Chronione obiekty Dane w usłudze Azure Cosmos DB są przechowywane na dyskach półprzewodnikowych w chronionych centrach danych platformy Azure.

Aby dowiedzieć się więcej, zobacz Globalne centra danych firmy Microsoft.
Szyfrowanie HTTPS/SSL/TLS Wszystkie połączenia z usługą Azure Cosmos DB obsługują protokół HTTPS. Usługa Azure Cosmos DB obsługuje poziomy protokołu TLS do 1.2 (dołączone).
Istnieje możliwość wymuszenia minimalnego poziomu protokołu TLS po stronie serwera. Aby to zrobić, zobacz przewodnik samoobsługowy Self-serve Minimum TLS version enforcement in Azure Cosmos DB (Samoobsługowe wymuszanie wersji protokołu TLS w usłudze Azure Cosmos DB).
Szyfrowanie w spoczynku Wszystkie dane przechowywane w usłudze Azure Cosmos DB są szyfrowane w spoczynku. Dowiedz się więcej na temat szyfrowania w spoczynku usługi Azure Cosmos DB.
Serwery z poprawkami Jako zarządzana baza danych usługa Azure Cosmos DB eliminuje konieczność zarządzania serwerami poprawek i zarządzania nimi, ponieważ jest ona wykonywana automatycznie.
konta Administracja istracyjne z silnymi hasłami Nie można mieć konta administracyjnego bez hasła w usłudze Azure Cosmos DB.

Zabezpieczenia za pośrednictwem protokołu TLS i uwierzytelniania opartego na wpisach tajnych HMAC są domyślnie szyfrowane.
Certyfikaty zabezpieczeń i ochrony danych Aby uzyskać najbardziej aktualną listę certyfikatów, zobacz zgodność platformy Azure i najnowszy dokument dotyczący zgodności platformy Azure ze wszystkimi certyfikatami platformy Azure, w tym usługą Azure Cosmos DB.

Poniższy zrzut ekranu przedstawia sposób monitorowania konta przy użyciu rejestrowania inspekcji i dzienników aktywności. Screenshot that shows activity logs for Azure Cosmos DB.

Klucze podstawowe/pomocnicze

Klucze podstawowe/pomocnicze zapewniają dostęp do wszystkich zasobów administracyjnych dla konta bazy danych. Klucze podstawowe/pomocnicze:

  • Zapewnianie dostępu do kont, baz danych, użytkowników i uprawnień.
  • Nie można użyć do zapewnienia szczegółowego dostępu do kontenerów i dokumentów.
  • Są tworzone podczas tworzenia konta.
  • Można je ponownie wygenerować w dowolnym momencie.

Każde konto składa się z dwóch kluczy: klucza podstawowego i klucza pomocniczego. Celem kluczy podwójnych jest ponowne wygenerowanie lub wycofanie kluczy, zapewniając ciągły dostęp do konta i danych.

Klucze podstawowe/pomocnicze są dostępne w dwóch wersjach: tylko do odczytu i zapisu. Klucze tylko do odczytu zezwalają na operacje odczytu na koncie. Nie zapewniają one dostępu do zasobów uprawnień do odczytu.

Rotacja i regenerowanie kluczy

Proces rotacji kluczy i rewitalizacji jest prosty. Najpierw upewnij się, że aplikacja stale używa klucza podstawowego lub klucza pomocniczego w celu uzyskania dostępu do konta usługi Azure Cosmos DB. Następnie wykonaj kroki opisane w następnej sekcji. Aby monitorować konto pod kątem aktualizacji kluczy i ponownego odnawiania klucza, zobacz Monitorowanie aktualizacji kluczy za pomocą metryk i alertów.

Jeśli aplikacja używa obecnie klucza podstawowego

  1. Przejdź do konta usługi Azure Cosmos DB w witrynie Azure Portal.

  2. Wybierz pozycję Klucze z menu po lewej stronie, a następnie wybierz pozycję Wygeneruj ponownie klucz pomocniczy z wielokropka (...) po prawej stronie klucza pomocniczego.

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

  3. Sprawdź, czy nowy klucz pomocniczy działa spójnie względem konta usługi Azure Cosmos DB. Regenerowanie klucza może potrwać od jednej minuty do wielu godzin w zależności od rozmiaru konta usługi Azure Cosmos DB.

  4. Zastąp klucz podstawowy kluczem pomocniczym w aplikacji.

  5. Wróć do witryny Azure Portal i wyzwól ponowne uruchomienie klucza podstawowego.

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

Jeśli aplikacja korzysta obecnie z klucza pomocniczego

  1. Przejdź do konta usługi Azure Cosmos DB w witrynie Azure Portal.

  2. Wybierz pozycję Klucze z menu po lewej stronie, a następnie wybierz pozycję Wygeneruj ponownie klucz podstawowy z wielokropka (...) po prawej stronie klucza podstawowego.

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

  3. Sprawdź, czy nowy klucz podstawowy działa spójnie względem konta usługi Azure Cosmos DB. Regenerowanie klucza może potrwać od jednej minuty do wielu godzin w zależności od rozmiaru konta usługi Azure Cosmos DB.

  4. Zastąp klucz pomocniczy kluczem podstawowym w aplikacji.

  5. Wróć do witryny Azure Portal i wyzwól ponowne uruchomienie klucza pomocniczego.

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

Śledzenie stanu ponownego odnawiania klucza

Po obróceniu lub wygenerowaniu klucza można śledzić jego stan z dziennika aktywności. Aby śledzić stan, wykonaj następujące czynności.

  1. Zaloguj się do witryny Azure Portal i przejdź do konta usługi Azure Cosmos DB.

  2. Wybierz pozycję Klucze z menu po lewej stronie. Powinna zostać wyświetlona data ostatniego ponownego odtworzenia klucza poniżej każdego klucza.

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

    Zalecamy ponowne generowanie kluczy co najmniej raz na 60 dni. Jeśli ostatnia rewitalizacji wynosiła ponad 60 dni temu, zostanie wyświetlona ikona ostrzeżenia. Ponadto widać, że twój klucz nie został zarejestrowany. Jeśli tak jest, Twoje konto zostało utworzone przed 18 czerwca 2022 r., a daty nie zostały zarejestrowane. Należy jednak mieć możliwość ponownego wygenerowania i wyświetlenia nowej daty ostatniej ponownej regeneracji nowego klucza.

  3. Powinny zostać wyświetlone zdarzenia ponownego uruchomienia klucza wraz z jego stanem, czasem, w którym została wydana operacja, oraz szczegółami użytkownika, który zainicjował ponowne uruchomienie klucza. Operacja generowania klucza inicjuje stan Zaakceptowane. Zmieni się na Rozpoczęto , a następnie na Powodzenie po zakończeniu operacji.

Następne kroki

  • Aby uzyskać więcej informacji na temat kluczy podstawowych i tokenów zasobów, zobacz Bezpieczny dostęp do danych usługi Azure Cosmos DB.
  • Aby uzyskać więcej informacji na temat rejestrowania inspekcji, zobacz Rejestrowanie diagnostyczne usługi Azure Cosmos DB.
  • Aby uzyskać więcej informacji na temat certyfikatów firmy Microsoft, zobacz Centrum zaufania Platformy Azure.