Zabezpieczenia w usłudze Azure Cosmos DB — omówienie

DOTYCZY: interfejs API SQL interfejs API Cassandra interfejsu API języka Gremlin interfejs API tabel interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB

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 danych magazynowanych 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 danych magazynowanych jest stosowane automatycznie zarówno dla nowych, jak i istniejących klientów w tych regionach. Nie ma potrzeby konfigurowania niczego; i 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 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 za pomocą kluczy zarządzanych 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 odpowiedzialność może się różnić. Jeśli wybierzesz rozwiązanie lokalne, musisz zapewnić wszystko, od ochrony punktu końcowego do fizycznego zabezpieczeń sprzętu — co nie jest łatwe. Jeśli wybierzesz dostawcę baz danych w chmurze PaaS, takiego jak usługa Azure Cosmos DB, obszar zainteresowania znacznie się zmniejsza. Na poniższej ilustracji, wypożyczonej z oficjalnego dokumentu "Shared Responsibilityies for Cloud Computing" firmy Microsoft, przedstawiono spadek odpowiedzialności dostawcy PaaS, takiego jak usługa Azure Cosmos DB.

Customer and database provider responsibilities

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

Zalecamy następującą listę kontrolną wymagań, dla których mają być porównywane systemy baz danych:

  • Ustawienia zabezpieczeń sieci i zapory
  • Uwierzytelnianie użytkowników 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ść geo-ogrodzenia danych 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
  • Domyślne szyfrowanie HTTPS/TLS
  • Konta administracyjne z silnymi hasłami

Jak usługa Azure Cosmos DB zabezpiecza moją bazę danych

Przyjrzyjmy się powyższej 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 to pierwsza warstwa 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 opartej na protokole IP są podobne do reguł zapory używanych przez tradycyjne systemy baz danych, ale są rozwinięte tak, aby konto bazy danych usługi Azure Cosmos było dostępne tylko z zatwierdzonego zestawu maszyn lub usług w chmurze. Dowiedz się więcej w artykule pomocy technicznej 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.

Wszystkie żądania pochodzące z maszyn spoza tej listy dozwolonych są blokowane przez usługę Azure Cosmos DB. Żądania od 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 z ogólnego Internetu. 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 następnie szyfrowany skrót base-64 jest wysyłany 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 jest autoryzowana pomyślnie, a żądanie jest przetwarzane, w przeciwnym razie występuje błąd autoryzacji i żądanie zostanie odrzucone.

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

Dowiedz się więcej w temacie Zabezpieczanie dostępu do zasobów usługi Azure Cosmos DB.
Użytkownicy i uprawnienia Korzystając z klucza podstawowego dla konta, możesz utworzyć zasoby użytkownika i zasoby uprawnień dla bazy danych. Token zasobu jest skojarzony z uprawnieniem w bazie danych i określa, czy użytkownik ma dostęp (do odczytu i zapisu, tylko do odczytu lub braku dostępu) do zasobu aplikacji w bazie danych. Zasoby aplikacji obejmują kontener, 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.

Dowiedz się więcej w temacie Zabezpieczanie dostępu do zasobów usługi Azure Cosmos DB.
Integracja usługi Active Directory (Azure RBAC) Możesz również zapewnić lub ograniczyć dostęp do konta Cosmos, bazy danych, kontenera i ofert (przepływność) przy użyciu kontroli dostępu (zarządzanie dostępem i tożsamościami) w 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. Możesz użyć wbudowanych ról lub ról niestandardowych dla użytkowników indywidualnych i grup. Aby uzyskać więcej informacji, zobacz artykuł dotyczący integracji z usługą Active Directory .
Replikacja globalna Usługa Azure Cosmos DB oferuje gotową dystrybucję globalną, która umożliwia replikowanie danych do dowolnych centrów danych na całym świecie platformy Azure za pomocą kliknięcia przycisku. Replikacja globalna umożliwia globalne skalowanie i zapewnienie dostępu do danych na całym świecie z małym opóźnieniem.

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

Dowiedz się więcej z artykułu Distribute data globally (Globalna dystrybucja 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 dane są replikowane.

Dowiedz się więcej w artykule Regionalne tryby failover w usłudze Azure Cosmos DB.
Replikacja lokalna Nawet w ramach jednego centrum danych usługa Azure Cosmos DB automatycznie replikuje dane w celu zapewnienia wysokiej dostępności, zapewniając wybór poziomów spójności. Ta replikacja gwarantuje umowę SLA gwarantującą dostępność na 99,99% dla wszystkich kont w jednym regionie i wszystkich kont w wielu regionach ze swobodną spójnością oraz dostępność odczytu na wszystkich kontach bazy danych w wielu regionach.
Automatyczne kopie zapasowe online Kopie zapasowe baz danych usługi Azure Cosmos są regularnie przechowywane w magazynie geograficznie nadmiarowym.

Dowiedz się więcej w artykule Automatyczne tworzenie i przywracanie kopii zapasowych online za pomocą usługi Azure Cosmos DB.
Przywracanie usuniętych danych Automatyczne kopie zapasowe online mogą służyć do odzyskiwania danych, które mogły zostać przypadkowo usunięte do około 30 dni po zdarzeniu.

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

Dane osobowe i inne poufne dane mogą być odizolowane od określonego kontenera i odczytu i zapisu lub dostęp tylko do odczytu może być ograniczony do określonych użytkowników.
Monitorowanie ataków Korzystając z rejestrowania inspekcji i dzienników aktywności, możesz monitorować konto pod kątem normalnego i nietypowego działania. Możesz wyświetlić operacje wykonane na zasobach, które zainicjowały operację, kiedy operacja wystąpiła, stan operacji i wiele innych, jak pokazano na zrzucie ekranu poniżej tej tabeli.
Reagowanie na ataki Po skontaktowaniu się z pomoc techniczna platformy Azure w celu zgłoszenia potencjalnego ataku rozpocznie się 5-krokowy proces reagowania na zdarzenia. Celem 5-etapowego procesu jest jak najszybsze przywrócenie normalnych zabezpieczeń i operacji usługi po wykryciu problemu i rozpoczęciu badania.

Dowiedz się więcej w artykule Microsoft Azure Security Response in the Cloud (Reagowanie na zabezpieczenia w chmurze).
Ogrodzenia geograficzne Usługa Azure Cosmos DB zapewnia nadzór nad danymi dla suwerennych regionów (na przykład Niemcy, Chiny, US Gov).
Chronione obiekty Dane w usłudze Azure Cosmos DB są przechowywane na dysków SSD w chronionych centrach danych platformy Azure.

Dowiedz się więcej w globalnych centrach 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 również protokół TLS 1.2.
Można wymusić minimalną wersję protokołu TLS po stronie serwera. W tym celu otwórz bilet pomoc techniczna platformy Azure.
Szyfrowanie danych magazynowanych Wszystkie dane przechowywane w usłudze Azure Cosmos DB są szyfrowane w spoczynku. Dowiedz się więcej w usłudze Azure Cosmos DB encryption at rest
Serwery z poprawkami Jako zarządzana baza danych usługa Azure Cosmos DB eliminuje konieczność automatycznego zarządzania serwerami poprawek i zarządzania nimi.
Konta administracyjne z silnymi hasłami Trudno uwierzyć, że nawet musimy wspomnieć o tym wymaganiu, ale w przeciwieństwie do niektórych naszych konkurentów nie można mieć konta administracyjnego bez hasła w usłudze Azure Cosmos DB.

Zabezpieczenia za pośrednictwem uwierzytelniania opartego na wpisach tajnych TLS i HMAC są domyślnie szyfrowane.
Certyfikaty zabezpieczeń i ochrony danych Aby uzyskać najbardziej aktualną listę certyfikatów, zobacz ogólną witrynę zgodności platformy Azure oraz najnowszą dokumentację zgodności platformy Azure ze wszystkimi certyfikatami (wyszukaj Cosmos).

Poniższy zrzut ekranu przedstawia sposób monitorowania konta za pomocą rejestrowania inspekcji i dzienników aktywności: 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 generowanie lub wycofywanie 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 i odczytu. Klucze tylko do odczytu zezwalają na operacje odczytu na koncie, ale nie zapewniają dostępu do zasobów uprawnień do odczytu.

Rotacja i regenerowanie kluczy

Proces rotacji i regeneracji kluczy 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 poniżej. Aby monitorować konto pod kątem kluczowych aktualizacji i regeneracji kluczy, zobacz artykuł 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 na 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 of the Azure portal showing how to regenerate the secondary key

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

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

  5. Wstecz do Azure Portal i wyzwalają regeneruj klucz podstawowy.

    Screenshot of the Azure portal showing how to regenerate the primary key

Jeśli aplikacja używa obecnie klucza pomocniczego

  1. Przejdź do konta usługi Azure Cosmos DB na 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 of the Azure portal showing how to regenerate the primary key

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

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

  5. Wstecz do Azure Portal i wyzwalają regeneruj klucz pomocniczy.

    Screenshot of the Azure portal showing how to regenerate the secondary key

Śledzenie stanu regeneracji klucza

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

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

  2. Otwórz okienko Dziennik aktywności i ustaw następujące filtry:

    • Ustaw typ zasobu na konta usługi Azure Cosmos DB.
    • Ustaw operacjęna wartość Obróć klucze.

    Status of key regeneration from Activity log

  3. Powinny zostać wyświetlone zdarzenia regeneracji klucza wraz ze stanem, w czasie, w którym operacja została wydana, szczegóły użytkownika, który zainicjował regeneracji klucza. Operacja generowania klucza inicjuje stan Zaakceptowano , a następnie zmienia 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 Zabezpieczanie dostępu 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.