Udostępnij za pośrednictwem


Omówienie możliwości zabezpieczeń usługi Azure SQL Database i wystąpienia zarządzanego SQL

Dotyczy: Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics

W tym artykule opisano podstawy zabezpieczania warstwy danych aplikacji przy użyciu usług Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics. Opisana strategia zabezpieczeń jest zgodna z podejściem warstwowym ochrony w głębi systemu, jak pokazano na poniższej ilustracji, i przenosi się z zewnątrz w:

Diagram warstwowej ochrony w głębi systemu. Dane klientów są hermetyzowane w warstwach zabezpieczeń sieci, zarządzania dostępem oraz ochrony przed zagrożeniami i informacjami.

Uwaga

Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).

Bezpieczeństwo sieci

Usługa Microsoft Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics udostępniają usługę relacyjnej bazy danych dla aplikacji w chmurze i dla przedsiębiorstw. Aby chronić dane klientów, zapory uniemożliwiają dostęp sieciowy do serwera do momentu jawnego udzielenia dostępu na podstawie adresu IP lub źródła ruchu sieci wirtualnej platformy Azure.

Reguły zapory bazujące na adresach IP

Reguły zapory adresów IP udzielają dostępu do baz danych na podstawie źródłowego adresu IP każdego żądania. Aby uzyskać więcej informacji, zobacz Omówienie reguł zapory usługi Azure SQL Database i Azure Synapse Analytics.

Reguły zapory sieci wirtualnej

Punkty końcowe usługi sieci wirtualnej rozszerzają łączność sieci wirtualnej za pośrednictwem sieci szkieletowej platformy Azure i umożliwiają usłudze Azure SQL Database zidentyfikowanie podsieci sieci wirtualnej pochodzącej z ruchu. Aby zezwolić na ruch do usługi Azure SQL Database, użyj tagów usługi SQL, aby zezwolić na ruch wychodzący za pośrednictwem sieciowych grup zabezpieczeń.

Reguły sieci wirtualnej umożliwiają usłudze Azure SQL Database akceptowanie tylko komunikacji wysyłanej z wybranych podsieci w sieci wirtualnej.

Uwaga

Kontrolowanie dostępu za pomocą reguł zapory nie ma zastosowania do usługi SQL Managed Instance. Aby uzyskać więcej informacji na temat wymaganej konfiguracji sieci, zobacz Nawiązywanie połączenia z wystąpieniem zarządzanym

Zarządzanie dostępem

Ważne

Zarządzanie bazami danych i serwerami na platformie Azure jest kontrolowane przez przypisania ról konta użytkownika portalu. Aby uzyskać więcej informacji na temat tego artykułu, zobacz Kontrola dostępu oparta na rolach na platformie Azure w witrynie Azure Portal.

Authentication

Uwierzytelnianie to proces potwierdzania, że użytkownik jest tym, za kogo się podaje. Usługa SQL Database i wystąpienie zarządzane SQL obsługują uwierzytelnianie SQL i uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft (dawniej Azure Active Directory). Wystąpienie zarządzane SQL dodatkowo obsługuje uwierzytelnianie systemu Windows dla podmiotów zabezpieczeń firmy Microsoft.

  • Uwierzytelnianie SQL:

    Uwierzytelnianie SQL odnosi się do uwierzytelniania użytkownika podczas nawiązywania połączenia z usługą Azure SQL Database lub azure SQL Managed Instance przy użyciu nazwy użytkownika i hasła. Podczas tworzenia serwera należy określić identyfikator logowania administratora serwera z nazwą użytkownika i hasłem. Przy użyciu tych poświadczeń administrator serwera może uwierzytelnić się w dowolnej bazie danych na tym serwerze lub wystąpieniu jako właściciel bazy danych. Następnie można utworzyć dodatkowe identyfikatory logowania SQL i użytkowników przez administratora serwera, co umożliwia użytkownikom łączenie się przy użyciu nazwy użytkownika i hasła.

  • Uwierzytelnianie entra firmy Microsoft:

    Uwierzytelnianie entra firmy Microsoft to mechanizm łączenia się z usługami Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics przy użyciu tożsamości w usłudze Microsoft Entra ID. Uwierzytelnianie Firmy Microsoft Entra umożliwia administratorom centralne zarządzanie tożsamościami i uprawnieniami użytkowników bazy danych oraz innymi usługami platformy Azure w jednej centralnej lokalizacji. Minimalizuje to magazyn haseł i umożliwia scentralizowane zasady rotacji haseł.

    Aby korzystać z uwierzytelniania Entra firmy Microsoft w usłudze SQL Database, należy utworzyć administratora serwera o nazwie Microsoft Entra. Aby uzyskać więcej informacji, zobacz Connecting to SQL Database with Microsoft Entra authentication (Nawiązywanie połączenia z usługą SQL Database przy użyciu uwierzytelniania firmy Microsoft Entra). Uwierzytelnianie Microsoft Entra obsługuje zarówno konta zarządzane, jak i federacyjne. Konta federacyjne obsługują użytkowników i grupy systemu Windows dla domeny klienta federacyjnej z identyfikatorem Entra firmy Microsoft.

    Firma Microsoft Entra obsługuje kilka różnych opcji uwierzytelniania, w tym uwierzytelnianie wieloskładnikowe, zintegrowane uwierzytelnianie systemu Windows i dostęp warunkowy.

  • Uwierzytelnianie systemu Windows dla podmiotów zabezpieczeń firmy Microsoft:

    Uwierzytelnianie Kerberos dla podmiotów zabezpieczeń firmy Microsoft umożliwia uwierzytelnianie systemu Windows dla usługi Azure SQL Managed Instance. Uwierzytelnianie systemu Windows dla wystąpień zarządzanych umożliwia klientom przenoszenie istniejących usług do chmury przy zachowaniu bezproblemowego środowiska użytkownika i zapewnia podstawę modernizacji infrastruktury.

    Aby włączyć uwierzytelnianie systemu Windows dla podmiotów zabezpieczeń firmy Microsoft, przekształcisz dzierżawę firmy Microsoft Entra w niezależny obszar Kerberos i utworzysz przychodzące zaufanie w domenie klienta. Dowiedz się , jak uwierzytelnianie systemu Windows dla usługi Azure SQL Managed Instance jest implementowane przy użyciu identyfikatora Microsoft Entra ID i protokołu Kerberos.

Ważne

Zarządzanie bazami danych i serwerami na platformie Azure jest kontrolowane przez przypisania ról konta użytkownika portalu. Aby uzyskać więcej informacji na temat tego artykułu, zobacz Kontrola dostępu oparta na rolach na platformie Azure w witrynie Azure Portal. Kontrolowanie dostępu za pomocą reguł zapory nie ma zastosowania do usługi SQL Managed Instance. Aby uzyskać więcej informacji na temat wymaganej konfiguracji sieci, zobacz następujący artykuł na temat nawiązywania połączenia z wystąpieniem zarządzanym.

Autoryzacja

Autoryzacja odnosi się do kontrolowania dostępu do zasobów i poleceń w bazie danych. Odbywa się to przez przypisanie uprawnień użytkownikowi w bazie danych w usłudze Azure SQL Database lub usłudze Azure SQL Managed Instance. Uprawnienia są idealnie zarządzane przez dodawanie kont użytkowników do ról bazy danych i przypisywanie uprawnień na poziomie bazy danych do tych ról. Alternatywnie można przyznać poszczególnym użytkownikom pewne uprawnienia na poziomie obiektu. Aby uzyskać więcej informacji, zobacz Logowanie i użytkownicy

Najlepszym rozwiązaniem jest utworzenie ról niestandardowych w razie potrzeby. Dodaj użytkowników do roli z najmniejszymi uprawnieniami wymaganymi do wykonywania zadań. Nie przypisuj uprawnień bezpośrednio do użytkowników. Konto administratora serwera jest członkiem wbudowanej roli db_owner, która ma szerokie uprawnienia i powinna być udzielana tylko niewielu użytkownikom z obowiązkami administracyjnymi. Aby jeszcze bardziej ograniczyć zakres czynności, które użytkownik może zrobić, można użyć polecenia EXECUTE AS do określenia kontekstu wykonywania wywoływanego modułu. Przestrzeganie tych najlepszych rozwiązań jest również podstawowym krokiem w kierunku rozdzielenia obowiązków.

Zabezpieczenia na poziomie wiersza

Zabezpieczenia na poziomie wiersza umożliwiają klientom kontrolowanie dostępu do wierszy w tabeli bazy danych na podstawie cech użytkownika wykonującego zapytanie (na przykład członkostwa w grupie lub kontekstu wykonywania). Zabezpieczenia na poziomie wiersza mogą również służyć do implementowania niestandardowych pojęć zabezpieczeń opartych na etykietach. Aby uzyskać więcej informacji, zobacz Zabezpieczenia na poziomie wierszy.

Diagram przedstawiający, że zabezpieczenia na poziomie wiersza chronią poszczególne wiersze bazy danych SQL przed dostępem użytkowników za pośrednictwem aplikacji klienckiej.

Ochrona przed zagrożeniami

Usługi SQL Database i SQL Managed Instance zabezpieczają dane klientów, zapewniając możliwości inspekcji i wykrywania zagrożeń.

Inspekcja SQL w dziennikach usługi Azure Monitor i usłudze Event Hubs

Inspekcja usług SQL Database i SQL Managed Instance śledzi działania bazy danych i pomaga zachować zgodność ze standardami zabezpieczeń przez rejestrowanie zdarzeń bazy danych w dzienniku inspekcji na koncie magazynu platformy Azure należącym do klienta. Inspekcja umożliwia użytkownikom monitorowanie bieżących działań bazy danych, a także analizowanie i badanie działań historycznych w celu zidentyfikowania potencjalnych zagrożeń lub podejrzanych nadużyć i naruszeń zabezpieczeń. Aby uzyskać więcej informacji, zobacz artykuł Get started with SQL Database Auditing (Wprowadzenie do usługi SQL Database Auditing).

Zaawansowana ochrona przed zagrożeniami

Usługa Advanced Threat Protection analizuje dzienniki w celu wykrywania nietypowego zachowania i potencjalnie szkodliwych prób uzyskania dostępu do baz danych lub wykorzystania ich. Alerty są tworzone dla podejrzanych działań, takich jak wstrzyknięcie kodu SQL, potencjalna infiltracja danych i ataki siłowe lub anomalie we wzorcach dostępu w celu przechwycenia eskalacji uprawnień i użycia poświadczeń z naruszeniem. Alerty są wyświetlane z Microsoft Defender dla Chmury, gdzie podano szczegółowe informacje o podejrzanych działaniach i zalecenia dotyczące dalszego badania wraz z akcjami w celu ograniczenia zagrożenia. Usługę Advanced Threat Protection można włączyć dla każdego serwera za dodatkową opłatę. Aby uzyskać więcej informacji, zobacz Wprowadzenie do zaawansowanej ochrony przed zagrożeniami w usłudze SQL Database.

Diagram przedstawiający dostęp do monitorowania wykrywania zagrożeń SQL w bazie danych SQL dla aplikacji internetowej z zewnętrznego osoby atakującej i złośliwego testera.

Ochrona informacji i ich przechowywanie

Protokół Transport Layer Security (TLS) (Szyfrowanie w trakcie przesyłania)

Usługi SQL Database, SQL Managed Instance i Azure Synapse Analytics zabezpieczają dane klientów, szyfrując dane w ruchu przy użyciu protokołu Transport Layer Security (TLS).

Usługi SQL Database, SQL Managed Instance i Azure Synapse Analytics wymuszają szyfrowanie (SSL/TLS) przez cały czas dla wszystkich połączeń. Dzięki temu wszystkie dane są szyfrowane "podczas przesyłania" między klientem a serwerem niezależnie od ustawienia Szyfruj lub TrustServerCertificate w parametry połączenia.

Najlepszym rozwiązaniem jest zalecenie, aby w parametry połączenia używanym przez aplikację określić zaszyfrowane połączenie i nie ufać certyfikatowi serwera. Wymusza to weryfikowanie certyfikatu serwera przez aplikację, dzięki czemu aplikacja nie będzie narażona na ataki typu „człowiek po środku” (man in the middle).

Na przykład w przypadku używania sterownika ADO.NET jest to realizowane za pośrednictwem metody Encrypt=True i TrustServerCertificate=False. Jeśli uzyskasz parametry połączenia ze witryny Azure Portal, będą one zawierać poprawne ustawienia.

Ważne

Należy pamiętać, że niektóre sterowniki innych niż Microsoft mogą domyślnie nie używać protokołu TLS lub polegać na starszej wersji protokołu TLS (<1.2) w celu działania. W takim przypadku serwer nadal umożliwia nawiązanie połączenia z bazą danych. Zalecamy jednak ocenę ryzyka związanego z bezpieczeństwem zezwalania takim sterownikom i aplikacji na łączenie się z usługą SQL Database, zwłaszcza w przypadku przechowywania poufnych danych.

Aby uzyskać więcej informacji na temat protokołu TLS i łączności, zobacz Zagadnienia dotyczące protokołu TLS

Transparent Data Encryption (szyfrowanie magazynowane)

Funkcja Transparent Data Encryption (TDE) dla usług SQL Database, SQL Managed Instance i Azure Synapse Analytics dodaje warstwę zabezpieczeń, aby ułatwić ochronę danych magazynowanych przed nieautoryzowanym lub offline dostępem do nieprzetworzonych plików lub kopii zapasowych. Typowe scenariusze obejmują kradzież centrum danych lub niezabezpieczoną usuwanie sprzętu lub nośnika, takiego jak stacje dysków i taśmy kopii zapasowej. Funkcja TDE szyfruje całą bazę danych przy użyciu algorytmu szyfrowania AES, który nie wymaga od deweloperów aplikacji wprowadzania żadnych zmian w istniejących aplikacjach.

Na platformie Azure wszystkie nowo utworzone bazy danych są domyślnie szyfrowane, a klucz szyfrowania bazy danych jest chroniony za pomocą wbudowanego certyfikatu serwera. Konserwacja i rotacja certyfikatów są zarządzane przez usługę i nie wymagają żadnych danych wejściowych od użytkownika. Klienci, którzy wolą przejąć kontrolę nad kluczami szyfrowania, mogą zarządzać kluczami w usłudze Azure Key Vault.

Zarządzanie kluczami za pomocą usługi Azure Key Vault

Obsługa funkcji ByOK (Bring Your Own Key ) dla funkcji Transparent Data Encryption (TDE) umożliwia klientom przejęcie na własność zarządzania kluczami i rotacji przy użyciu usługi Azure Key Vault, opartego na chmurze systemu zarządzania kluczami zewnętrznymi platformy Azure. Jeśli dostęp bazy danych do magazynu kluczy zostanie odwołany, nie można odszyfrować bazy danych i odczytać jej do pamięci. Usługa Azure Key Vault udostępnia centralną platformę zarządzania kluczami, wykorzystuje ściśle monitorowane sprzętowe moduły zabezpieczeń (HSM) i umożliwia rozdzielenie obowiązków między zarządzanie kluczami i danymi, aby pomóc spełnić wymagania dotyczące zgodności z zabezpieczeniami.

Always Encrypted (szyfrowanie w użyciu)

Diagram przedstawiający podstawy funkcji Always Encrypted. Dostęp do bazy danych SQL z blokadą jest uzyskiwany tylko przez aplikację zawierającą klucz.

Funkcja Always Encrypted jest funkcją przeznaczoną do ochrony poufnych danych przechowywanych w określonych kolumnach bazy danych przed dostępem (na przykład numerami kart kredytowych, krajowymi/regionalnymi numerami identyfikacyjnymi lub danymi potrzebnymi do poznania ). Obejmuje to administratorów bazy danych lub innych uprzywilejowanych użytkowników, którzy mają uprawnienia dostępu do bazy danych w celu wykonywania zadań zarządzania, ale nie muszą uzyskiwać dostępu do określonych danych w zaszyfrowanych kolumnach. Dane są zawsze szyfrowane, co oznacza, że zaszyfrowane dane są odszyfrowywane tylko do przetwarzania przez aplikacje klienckie z dostępem do klucza szyfrowania. Klucz szyfrowania nigdy nie jest udostępniany usłudze SQL Database lub sql Managed Instance i może być przechowywany w magazynie certyfikatów systemu Windows lub w usłudze Azure Key Vault.

Dynamiczne maskowanie danych

Diagram przedstawiający dynamiczne maskowanie danych. Aplikacja biznesowa wysyła dane do bazy danych SQL, która maskuje dane przed wysłaniem ich z powrotem do aplikacji biznesowej.

Dynamiczne maskowanie danych ogranicza ujawnianie danych poufnych, maskując je w przypadku użytkowników bez uprawnień. Dynamiczne maskowanie danych automatycznie odnajduje potencjalnie poufne dane w usługach Azure SQL Database i SQL Managed Instance oraz udostępnia zalecenia umożliwiające podejmowanie działań w celu maskowania tych pól przy minimalnym wpływie na warstwę aplikacji. Jego działanie polega na zaciemnianiu poufnych danych w wyznaczonych polach bazy danych w zestawie wyników zapytania, przy czym dane w bazie danych pozostają bez zmian. Aby uzyskać więcej informacji, zobacz Get started with SQL Database and SQL Managed Instance dynamic data masking (Wprowadzenie do dynamicznego maskowania danych w usłudze SQL Database i wystąpienia zarządzanego SQL).

Zarządzanie zabezpieczeniami

Ocena luk w zabezpieczeniach

Ocena luk w zabezpieczeniach to łatwa do skonfigurowania usługa, która umożliwia odnajdywanie, śledzenie i korygowanie potencjalnych luk w zabezpieczeniach bazy danych w celu proaktywnego ulepszania ogólnego bezpieczeństwa bazy danych. Ocena luk w zabezpieczeniach (VA) jest częścią oferty Microsoft Defender for SQL, która jest ujednoliconym pakietem zaawansowanych funkcji zabezpieczeń SQL. Aby uzyskać dostęp do funkcji oceny luk w zabezpieczeniach i zarządzać nią, można skorzystać z centralnego portalu usługi Microsoft Defender dla usługi SQL.

Odnajdywanie i klasyfikacja danych

Odnajdywanie i klasyfikacja danych (obecnie w wersji zapoznawczej) udostępnia podstawowe funkcje wbudowane w usługę Azure SQL Database i wystąpienie zarządzane SQL na potrzeby odnajdywania, klasyfikowania i etykietowania poufnych danych w bazach danych. Odnajdywanie i klasyfikowanie najwyższych poufnych danych (firmy/finansów, opieki zdrowotnej, danych osobowych itp.) może odgrywać kluczową rolę w organizacji Ochrona informacji. Może to stanowić infrastrukturę dla następujących działań:

  • Różne scenariusze zabezpieczeń, takie jak monitorowanie (inspekcja) i alerty dotyczące nietypowego dostępu do poufnych danych.
  • Kontrolowanie dostępu do baz danych zawierających wysoce poufne dane oraz wzmacnianie zabezpieczeń tych baz danych.
  • Pomoc przy spełnianiu standardów dotyczących prywatności danych i wymagań dotyczących zgodności z przepisami.

Aby uzyskać więcej informacji, zobacz Wprowadzenie do odnajdywania i klasyfikacji danych.

Zgodność

Oprócz powyższych funkcji i funkcji, które mogą pomóc aplikacji spełnić różne wymagania dotyczące zabezpieczeń, usługa Azure SQL Database również uczestniczy w regularnych inspekcjach i została certyfikowana zgodnie z wieloma standardami zgodności. Aby uzyskać więcej informacji, zobacz Centrum zaufania platformy Microsoft Azure, w którym można znaleźć najbardziej aktualną listę certyfikatów zgodności usługi SQL Database.

Następne kroki

  • Aby zapoznać się z omówieniem używania identyfikatorów logowania, kont użytkowników, ról bazy danych i uprawnień w usługach SQL Database i SQL Managed Instance, zobacz Zarządzanie identyfikatorami logowania i kontami użytkowników.
  • Aby zapoznać się z omówieniem inspekcji bazy danych, zobacz Inspekcja.
  • Aby zapoznać się z omówieniem wykrywania zagrożeń, zobacz Wykrywanie zagrożeń.