Udostępnij za pomocą


Omówienie możliwości zabezpieczeń usługi Azure SQL Database i zarządzanej instancji SQL

Dotyczy:Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics

W tym artykule opisano podstawy zabezpieczania warstwy danych aplikacji korzystającej z usług Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics. Strategia zabezpieczeń opisana w tym artykule jest zgodna z podejściem wielowarstwowej obrony, jak pokazano na poniższym diagramie, i przesuwa się od zewnętrznych warstw do wewnętrznych.

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.

Bezpieczeństwo sieci

Usługi Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics zapewniają usługę relacyjnej bazy danych dla aplikacji w chmurze i przedsiębiorstwie. 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 dla Azure SQL Database i Azure Synapse Analytics.

Reguły zapory sieci wirtualnej

Punkty końcowe usługi sieci wirtualnej rozszerzają łączność twojej sieci wirtualnej przez szkielet platformy Azure i umożliwiają usłudze Azure SQL Database identyfikację podsieci sieci wirtualnej, z której pochodzi ruch. Aby zezwolić na ruch do Azure SQL Database, użyj tagów usługi SQL, aby zezwolić na ruch wychodzący poprzez grupy zabezpieczeń sieci.

  • Reguły sieci wirtualnej umożliwiają usłudze Azure SQL Database akceptowanie tylko komunikacji wysyłanej z wybranych podsieci w sieci wirtualnej.
  • Kontrolowanie dostępu za pomocą reguł zapory nie ma zastosowania do usługi SQL Managed Instance. Więcej informacji na temat wymaganej konfiguracji sieci znajdziesz w sekcji Nawiązywanie połączenia z wystąpieniem zarządzanym

Uwaga

Kontrolowanie dostępu za pomocą reguł zapory nie ma zastosowania do usługi SQL Managed Instance. Więcej informacji na temat wymaganej konfiguracji sieci znajdziesz w sekcji Nawiązywanie połączenia z wystąpieniem zarządzanym

Obwód zabezpieczeń sieci

Obwód zabezpieczeń sieci platformy Azure tworzy granice sieci logicznej wokół zasobów typu "platforma jako usługa" (PaaS), które są wdrażane poza sieciami wirtualnymi.

  • Obwód zabezpieczeń sieci platformy Azure ułatwia kontrolowanie dostępu sieci publicznej do usługi Azure SQL Database.
  • Kontrolowanie dostępu za pomocą obwodu zabezpieczeń sieci platformy Azure nie ma zastosowania do usługi Azure SQL Managed Instance.

Ważne

Usługa Azure SQL Database z obwodem zabezpieczeń sieci jest obecnie dostępna w wersji zapoznawczej. Wersje zapoznawcze są udostępniane bez umowy dotyczącej poziomu usług i nie są zalecane w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą nie być obsługiwane lub mogą mieć ograniczone możliwości. Aby uzyskać więcej informacji, zobacz Warunki dodatkowe korzystania z testowych wersji Microsoft Azure.

Uwierzytelnianie

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

  • Uwierzytelnianie Microsoft Entra:

    Uwierzytelnianie Microsoft Entra to mechanizm łączenia się z Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics przy użyciu tożsamości w Microsoft Entra ID. Uwierzytelnianie Microsoft Entra umożliwia administratorom centralne zarządzanie tożsamościami i uprawnieniami użytkowników baz danych oraz innymi usługami Azure w jednym centralnym miejscu. Ta funkcja może pomóc w wyeliminowaniu używania wpisów tajnych i haseł.

    Aby użyć uwierzytelniania Microsoft Entra dla usługi SQL Database, utwórz administratora serwera o nazwie Microsoft Entra administrator. 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 sfederowanej z Microsoft Entra ID.

    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 Microsoft Entra firmy Microsoft:

    Uwierzytelnianie Kerberos dla podmiotów Microsoft Entra 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, włącz dzierżawę firmy Microsoft Entra w niezależny obszar Kerberos i utwórz 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.

  • 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 w roli właściciela bazy danych. Następnie administrator serwera może utworzyć inne identyfikatory logowania SQL i użytkowników, co umożliwia użytkownikom łączenie się przy użyciu nazwy użytkownika i hasła.

Zarządzanie autoryzacją i dostępem

Autoryzacja odnosi się do kontrolowania dostępu do zarządzania serwerami i bazami danych oraz do danych, zasobów i poleceń w bazie danych. Uprawnienia są przypisywane użytkownikowi w bazie danych w usłudze Azure SQL Database lub azure SQL Managed Instance. Przypisania ról konta użytkownika portalu kontrolują zarządzanie bazami danych i serwerami na platformie Azure. Aby uzyskać więcej informacji, zobacz Kontrola dostępu oparta na rolach na platformie Azure w witrynie Azure Portal.

Zarządzaj uprawnieniami, dodając konta użytkowników do ról bazy danych i przypisując uprawnienia na poziomie bazy danych do tych ról. Alternatywnie przyznaj określonym użytkownikom uprawnienia na poziomie obiektu . Aby uzyskać więcej informacji, zobacz Logowanie i użytkownicy.

Ponadto usługa Azure SQL Managed Instance udostępnia role na poziomie serwera (stałe lub niestandardowe) do zarządzania uprawnieniami dla wystąpienia. Role na poziomie serwera mają zakres uprawnień dla całego serwera. Jednostki na poziomie serwera można dodać do ról na poziomie serwera.

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 kilku użytkownikom z obowiązkami administracyjnymi. Aby jeszcze bardziej ograniczyć zakres czynności, które użytkownik może zrobić, użyj polecenia EXECUTE AS , aby określić kontekst 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ą kontrolę dostępu do wierszy w tabeli bazy danych w oparciu o cechy użytkownika, który wykonuje zapytanie (na przykład członkostwo w grupie lub kontekst wykonywania zapytania). Użyj Row-Level Security, aby zaimplementować niestandardowe pojęcia zabezpieczeń oparte na etykietach. Aby uzyskać więcej informacji, zapoznaj się z Zabezpieczenia na poziomie wierszy.

Diagram przedstawiający, że Row-Level Zabezpieczenia chroni poszczególne wiersze bazy danych SQL przed dostępem użytkowników za pośrednictwem aplikacji klienckiej.

Ochrona przed zagrożeniami

Usługi Azure 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

Audytowanie usług SQL Database i SQL Managed Instance śledzi działania bazy danych i pomaga zachować zgodność ze standardami zabezpieczeń poprzez rejestrowanie zdarzeń bazy danych w dzienniku audytu na koncie magazynu Azure należącym do klienta. Inspekcja umożliwia 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).

Advanced Threat Protection

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. Tworzy alerty dotyczące podejrzanych działań, takich jak wstrzyknięcie kodu SQL, potencjalna infiltracja danych i ataki siłowe lub anomalie w wzorcach dostępu w celu przechwycenia eskalacji uprawnień i użycia poświadczeń z naruszeniem. Możesz wyświetlić alerty z usługi Microsoft Defender for Cloud, gdzie podano szczegółowe informacje o podejrzanych działaniach i zalecenia dotyczące dalszego badania wraz z akcjami w celu ograniczenia zagrożenia. Możesz włączyć usługę Advanced Threat Protection na serwer za dodatkową opłatę. Aby uzyskać więcej informacji, zobacz Wprowadzenie do zaawansowanej ochrony przed zagrożeniami w usłudze SQL Database.

Diagram pokazujący monitorowanie przez SQL Threat Detection dostępu do bazy danych SQL dla aplikacji internetowej z zewnętrznego atakującego i złośliwego użytkownika wewnętrznego.

Ochrona informacji i ich przechowywanie

Transport Layer Security (szyfrowanie podczas 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). Te usługi zawsze wymuszają połączenia szyfrowane TLS, aby upewnić się, że wszystkie dane są szyfrowane podczas przesyłania między klientem a serwerem.

W szczególności usługi SQL Database, SQL Managed Instance i Azure Synapse Analytics ustawiają flagę ForceEncryption konfiguracji na Yes. Klienci i sterowniki muszą obsługiwać szyfrowane połączenia w celu nawiązania połączenia z tymi usługami. Najniższa wersja protokołu TDS, który może się połączyć, to TDS 7.1.

Najlepszym rozwiązaniem jest użycie ścisłego szyfrowania połączeń w przypadku sterowników SQL obsługujących usługę TDS 8.0.

Jeśli sterowniki nie obsługują TDS 8.0, użyj obowiązkowego szyfrowania i nie ufaj certyfikatowi serwera. Na przykład w przypadku używania sterownika ADO.NET użyj Encrypt=True i TrustServerCertificate=False w parametrach połączenia, aby to osiągnąć. Parametry połączenia uzyskiwane z witryny Azure Portal są już skonfigurowane przy użyciu tych wartości.

Unikaj ustawiania parametru TrustServerCertificate na True wartość w środowisku produkcyjnym. TrustServerCertificate=True jest zbyt permissive i nie chroni przed atakami man-in-the-middle. Zamiast tego, jeśli klient oczekuje innej nazwy domeny w certyfikacie serwera, użyj parametru HostNameInCertificate , aby podać poprawną nazwę domeny do weryfikacji.

Na przykład w przypadku używania sterownika ADO.NET do nawiązywania połączenia z zarządzanym wystąpieniem contoso-instance.123456.database.windows.net za pomocą niestandardowej nazwy contoso-instance.contoso.com domeny, ustaw parametry Encrypt=True połączenia i HostNameInCertificate=contoso-instance.123456.database.windows.net. Ta konfiguracja umożliwia sterownikowi zweryfikowanie certyfikatu serwera w odniesieniu do oczekiwanej nazwy domeny punktu końcowego wewnątrz sieci VNet (Virtual Network).

Ważne

Niektóre sterowniki innych niż Microsoft mogą domyślnie nie używać protokołu TLS lub mogą polegać na starszej wersji protokołu TLS (starszej niż 1.2) do działania. W takim przypadku serwer nadal umożliwia nawiązanie połączenia z bazą danych. Należy jednak ocenić zagrożenia bezpieczeństwa związane z zezwoleniem takim sterownikom i aplikacjom 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.

Przezroczyste szyfrowanie danych (szyfrowanie danych w spoczynku) przy użyciu kluczy zarządzanych przez usługę.

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ż z centrum danych lub niezabezpieczone usunięcie sprzętu lub nośników, takich jak napędy dysków i taśmy backupowe. 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. Usługa zarządza konserwacją i rotacją certyfikatów i nie wymaga żadnych danych wejściowych od użytkownika. Jeśli wolisz przejąć kontrolę nad kluczami szyfrowania, możesz zarządzać kluczami w usłudze Azure Key Vault.

Przezroczyste szyfrowanie danych (szyfrowanie danych w spoczynku) przy użyciu kluczy zarządzanych przez klienta

Jeśli potrzebujesz większej kontroli nad kluczami szyfrowania, funkcja Transparent Data Encryption (TDE) obsługuje klucze zarządzane przez klienta (CMK). Ten klucz cmK jest skojarzony z serwerem logicznym i opakowuje klucze szyfrowania bazy danych dla wszystkich baz danych na tym serwerze. Alternatywnie można skonfigurować klucz CMK na poziomie indywidualnej bazy danych. Zarządzając kluczem cmK, można kontrolować rotację, odwoływanie i inspekcję kluczy, co jest często konieczne w przypadku zgodności lub rygorystycznych zasad zabezpieczeń.

Always Encrypted oraz Always Encrypted z bezpiecznymi enklawami (szyfrowanie podczas użycia)

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 i Always Encrypted z bezpiecznymi enklawami została zaprojektowana w celu ochrony poufnych danych przechowywanych w określonych kolumnach bazy danych przed dostępem (na przykład numerów kart kredytowych, numerów identyfikacyjnych krajowych/regionalnych lub danych wymagających znajomości ). Ta ochrona obejmuje 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. Działa to przez zaciemnianie poufnych danych w zestawie wyników zapytania względem wyznaczonych pól bazy danych, podczas gdy dane w bazie danych nie są zmieniane. 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).

Księga rachunkowa

Rejestr w usługach Azure SQL Database i SQL Managed Instance to funkcja zapewniająca kryptograficzny dowód integralności danych. Dzięki rejestrowi masz możliwość wykrywania prób manipulacji danymi. Możesz kryptograficznie potwierdzić innym stronom, takim jak audytorzy lub inne strony biznesowe, że twoje dane nie zostały naruszone.

Rejestr używa technologii wykrywania manipulacji do rejestrowania zmian bazy danych w niezmienialnym rejestrze, dzięki czemu można wykryć wszelkie nieautoryzowane modyfikacje. Ta funkcja jest szczególnie przydatna w scenariuszach wymagających zgodności z przepisami, inspekcji i zaufania między wieloma stronami. Włączając rejestr, możesz zweryfikować integralność danych, zmniejszając ryzyko oszustwa lub manipulowania danymi.

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. Dostęp do oceny luk w zabezpieczeniach i zarządzanie nim można uzyskać za pośrednictwem centralnego portalu Microsoft Defender for SQL.

Odnajdywanie i klasyfikacja danych

Odnajdywanie i klasyfikacja danych zapewnia 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. Identyfikacja i klasyfikacja najbardziej poufnych danych, takich jak dane biznesowe, finansowe, zdrowotne, osobowe i inne, odgrywa kluczową rolę w pozycji ochrony informacji w organizacji. Służy jako infrastruktura dla:

  • 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 funkcji i funkcji, które pomagają aplikacji spełnić różne wymagania dotyczące zabezpieczeń, usługa Azure SQL Database również uczestniczy w regularnych inspekcjach. Został certyfikowany pod kątem wielu standardów 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.