Prywatność danych na potrzeby analizy w skali chmury na platformie Azure

Analiza w skali chmury umożliwia organizacjom określenie najlepszych wzorców odpowiadających ich wymaganiom podczas ochrony danych osobowych na wielu poziomach. Dane osobowe to wszelkie dane, które mogą służyć do identyfikowania osób fizycznych, na przykład numerów rejestracyjnych kierowcy, numerów ubezpieczenia społecznego, numerów kont bankowych, numerów paszportów, adresów e-mail i nie tylko. Obecnie istnieje wiele przepisów w celu ochrony prywatności użytkowników.

Schemat klasyfikacji poufności danych

Klasyfikacja opis
Publiczna Każda osoba może uzyskać dostęp do danych i może zostać wysłana do wszystkich osób. Na przykład otwórz dane dla instytucji rządowych.
Tylko do użytku wewnętrznego Tylko pracownicy mogą uzyskiwać dostęp do danych i nie mogą być wysyłane poza firmę.
Poufne Dane mogą być udostępniane tylko wtedy, gdy są potrzebne do określonego zadania. Nie można wysyłać danych poza firmę bez umowy o zachowaniu poufności.
Poufne (dane osobowe) Dane zawierają informacje prywatne, które muszą być maskowane i udostępniane tylko w oparciu o konieczność znajomości przez ograniczony czas. Nie można wysyłać danych do nieautoryzowanego personelu lub spoza firmy.
Podlega ograniczeniom Dane mogą być udostępniane tylko nazwanym osobom odpowiedzialnym za ich ochronę. Na przykład dokumenty prawne lub tajemnice handlowe.

Przed pozyskiwaniem danych należy skategoryzować dane jako poufne lub poniższe lub poufne (dane osobowe):

  • Dane mogą być posortowane w poufne lub poniższe, jeśli użytkownik uzyska dostęp do zasobu danych wzbogaconego lub wyselekcjonowanego. Użytkownicy mogą wyświetlać wszystkie kolumny i wiersze.

  • Dane mogą być sortowane w poufne (dane osobowe), jeśli istnieją ograniczenia, dla których kolumny i wiersze są widoczne dla różnych użytkowników.

Ważne

Zestaw danych może ulec zmianie z poufnego lub poniższego na poufne (dane osobowe) po połączeniu danych. W sytuacjach, w których dane powinny być trwałe, należy je skopiować do oddzielnego folderu, który jest zgodny z klasyfikacją poufności danych i procesem dołączania.

Poufne lub poniższe

Dla każdego dołączonego produktu danych tworzymy dwa foldery typu data lake w wzbogaconych i wyselekcjonowanych warstwach, poufne lub poniżej i poufne (dane osobowe) oraz używamy list kontroli dostępu, aby włączyć uwierzytelnianie przekazywane w katalogu microsoft Azure (Microsoft Entra ID).

Jeśli zespół aplikacji danych dołącza poufny lub mniejszy zasób danych, główne nazwy użytkowników i obiekty jednostki usługi można dodać do dwóch grup firmy Microsoft Entra (jeden dla dostępu do odczytu/zapisu i drugi dla dostępu tylko do odczytu). Te dwie grupy firmy Microsoft Entra powinny zostać utworzone podczas procesu dołączania i posortowane w odpowiednim folderze produktu danych z poufnymi lub poniższymi kontenerami dla nieprzetworzonych i wzbogaconych danych.

Ten wzorzec umożliwia korzystanie z dowolnego produktu obliczeniowego obsługującego uwierzytelnianie przekazywane firmy Microsoft w celu nawiązania połączenia z usługą Data Lake i uwierzytelnienia zalogowanych użytkowników. Jeśli użytkownik jest częścią grupy Microsoft Entra zasobu danych, może uzyskać dostęp do danych za pośrednictwem uwierzytelniania przekazywanego przez firmę Microsoft. Dzięki niej użytkownicy wewnątrz grupy mogą odczytywać cały zasób danych bez filtrów zasad. Następnie można przeprowadzić inspekcję dostępu za pomocą odpowiednich dzienników i programu Microsoft Graph.

Aby uzyskać zalecenia dotyczące układu usługi Data Lake, zobacz Aprowizuj trzy konta usługi Azure Data Lake Storage Gen2 dla każdej strefy docelowej danych.

Uwaga

Przykładami produktów obliczeniowych są usługi Azure Databricks, Azure Synapse Analytics, Apache Spark i Azure Synapse SQL na żądanie z obsługą uwierzytelniania przekazywanego firmy Microsoft.

Dane poufne (dane osobowe)

W przypadku poufnych (danych osobowych) przedsiębiorstwo musi ograniczyć możliwości użytkowników za pośrednictwem zasad, kopii danych lub obliczeń. W takim przypadku organizacja musi rozważyć przeniesienie lub wprowadzenie kontroli dostępu do warstwy obliczeniowej. Istnieją cztery opcje zabezpieczania danych w ramach analizy w skali chmury.

Przykładowy scenariusz

W poniższym przykładzie opisano opcje zabezpieczania poufnych (danych osobowych):

Aplikacja danych pozyskiwa produkt danych kadrowych (HR) dla Ameryka Północna i Europy. Przypadek użycia wzywa użytkowników europejskich do wyświetlenia tylko europejskich dokumentacji personelu i Ameryka Północna n użytkowników, aby zobaczyć tylko Ameryka Północna n dokumentacji personelu. Jest to jeszcze bardziej ograniczone, aby tylko menedżerowie kadr widzieli kolumny zawierające dane o wynagrodzeniach.

Dwie pierwsze opcje umożliwiają obsługę poufnych (danych osobowych), a także zapewniają kontrolę zespołom ds. integracji i produktów danych w celu identyfikowania i ograniczania dostępu. Może to wystarczyć dla platformy analizy na małą skalę, ale aparat zasad powinien zostać umieszczony w strefie docelowej zarządzania danymi dla dużego przedsiębiorstwa z setkami produktów danych. Aparaty zasad obsługują centralny sposób zarządzania, zabezpieczania i kontrolowania:

  • Dostęp do danych
  • Zarządzanie cyklem życia danych
  • Wewnętrzne i zewnętrzne zasady i przepisy
  • Zasady udostępniania danych
  • Identyfikowanie poufnych (danych osobowych)
  • Szczegółowe informacje o ochronie i zgodności
  • Zasady raportowania ochrony danych

Zazwyczaj aparat zasad integruje się z wykazem danych, na przykład Azure Purview. Witryna Azure Marketplace oferuje rozwiązania dostawców innych firm, a niektórzy dostawcy współpracują z usługami Azure Synapse i Azure Databricks w celu szyfrowania i odszyfrowywania informacji, zapewniając jednocześnie zabezpieczenia na poziomie wiersza i na poziomie kolumny. Od stycznia 2022 r. usługa Azure Purview uruchomiła publiczną wersję zapoznawcza zasad dostępu w celu kontrolowania dostępu do danych przechowywanych w usługach Blob i Azure Data Lake Storage (ADLS) Gen2. Zobacz Aprowizowanie zestawów danych według właściciela danych dla usługi Azure Storage (wersja zapoznawcza).

Aparat zasad powinien używać grup Firmy Microsoft Entra do stosowania zasad do produktów danych. Oczekiwaniem na każde rozwiązanie zasad zapewniające prywatność danych jest tokenizowanie poufnych (danych osobowych) i zawsze sprawdzanie kontroli dostępu atrybutów, aby użytkownik mógł zdetokenizować kolumny, do których potrzebują dostępu.

Jak wspomniano, aby aparat zasad zakończył się pomyślnie, ważne jest, aby zintegrować go z wykazem danych i aby metodyka DevOps używała interfejsu API REST do dołączania nowego zestawu danych. W miarę tworzenia źródeł danych przez zespoły ds. aplikacji danych będą one rejestrowane w wykazie danych i pomagają identyfikować poufne (dane osobowe). Aparat zasad powinien zaimportować definicję i odmówić dostępu do danych do momentu skonfigurowania przez zespoły zasad dostępu. Wszystkie te czynności należy wykonać za pośrednictwem przepływu pracy interfejsu API REST z rozwiązania do zarządzania usługami IT.

Opcja 2: Wersje poufne lub starsze i poufne (dane osobowe)

Dla każdego produktu danych, który jest klasyfikowany jako poufne (dane osobowe), dwa kopie są tworzone przez potok. Jedna, która jest klasyfikowana jako poufne lub poniżej , która zawiera wszystkie usunięte kolumny poufne (dane osobowe) i jest tworzona w folderze poufnym lub poniżej dla produktu danych. Druga kopia jest tworzona w folderze poufnym (dane osobowe) dla produktu danych, który zawiera wszystkie poufne dane. Każdy folder ma przypisaną grupę zabezpieczeń Czytelnik firmy Microsoft i grupę zabezpieczeń składników zapisywania entra firmy Microsoft. Za pomocą zarządzania dostępem do danych użytkownik może zażądać dostępu do produktu danych.

Mimo że spełnia to rozdzielenie poufnych (danych osobowych) i poufnych lub poniższych, użytkownik udzielił dostępu za pośrednictwem uwierzytelniania przekazywanego usługi Active Directory do poufnych (danych osobowych) będzie mógł wykonywać zapytania dotyczące wszystkich wierszy. Jeśli wymagane są zabezpieczenia na poziomie wiersza, należy użyć opcji 1: aparat zasad (zalecane) lub opcja 3: Usługa Azure SQL Database, wystąpienie zarządzane SQL lub pule SQL usługi Azure Synapse Analytics.

Opcja 3. Azure SQL Database, SQL Managed Instance lub Pule SQL usługi Azure Synapse Analytics

Aplikacja danych używa pul SQL Database, SQL Managed Instance lub Azure Synapse Analytics w celu załadowania produktów danych do bazy danych obsługującej zabezpieczenia na poziomie wiersza, zabezpieczenia na poziomie kolumny i dynamiczne maskowanie danych. Zespoły aplikacji danych tworzą różne grupy firmy Microsoft Entra i przypisują uprawnienia, które obsługują poufność danych.

W przypadku użycia tego scenariusza zespoły aplikacji danych muszą utworzyć następujące cztery grupy firmy Microsoft Entra z dostępem tylko do odczytu:

Grupowy Uprawnienie
DA-AMERICA-HRMANAGER-R Wyświetl Ameryka Północna zasób danych personelu kadr z informacjami o wynagrodzeniach.
DA-AMERICA-HRGENERAL-R Wyświetl Ameryka Północna zasób danych personelu kadr bez informacji o wynagrodzeniach.
DA-EUROPE-HRMANAGER-R Wyświetl zasób danych personelu kadr w Europie z informacjami o wynagrodzeniach.
DA-EUROPE-HRGENERAL-R Wyświetl zasób danych personelu kadr w Europie bez informacji o wynagrodzeniach.

Pierwszy poziom ograniczeń będzie obsługiwał dynamiczne maskowanie danych, co ukrywa poufne dane przed użytkownikami bez uprawnień. Jedną z zalet tego podejścia jest to, że można ją zintegrować z dołączaniem zestawu danych przy użyciu interfejsu API REST.

Drugim poziomem jest dodanie zabezpieczeń na poziomie kolumny, aby ograniczyć menedżerom niebędącym kadrami wyświetlanie wynagrodzeń i zabezpieczeń na poziomie wiersza, aby ograniczyć, które wiersze mogą zobaczyć członkowie zespołu europejskiego i Ameryka Północna n.

Oprócz przezroczystego szyfrowania danych warstwa zabezpieczeń polegałaby na szyfrowaniu kolumny danych i odszyfrowywać podczas odczytu.

Tabele można udostępnić w usłudze Azure Databricks za pomocą łącznika Apache Spark: SQL Server i Azure SQL Database.

Opcja 4. Azure Databricks

Opcja czwarta polega na używaniu usługi Azure Databricks do eksplorowania poufnych (danych osobowych). Korzystanie z kombinacji bibliotek szyfrowania Fernet, funkcji zdefiniowanych przez użytkownika (UDF), wpisów tajnych usługi Databricks, kontroli dostępu do tabel i funkcji widoku dynamicznego pomaga szyfrować i odszyfrowywać kolumny.

Jako wpis w blogu wymuszanie szyfrowania na poziomie kolumny i unikanie duplikowania danych opisuje:

Pierwszym krokiem w tym procesie jest ochrona danych przez szyfrowanie ich podczas pozyskiwania, a jednym z możliwych rozwiązań jest biblioteka Fernet Python. Fernet używa szyfrowania symetrycznego, który jest zbudowany z kilkoma standardowymi kryptograficznymi elementami pierwotnymi. Ta biblioteka jest używana w ramach funkcji zdefiniowanej przez użytkownika szyfrowania, która umożliwi szyfrowanie dowolnej kolumny w ramce danych. Aby przechowywać klucz szyfrowania, używamy wpisów tajnych usługi Databricks z mechanizmami kontroli dostępu, aby umożliwić dostęp do niego tylko naszemu procesowi pozyskiwania danych. Gdy dane zostaną zapisane w naszych tabelach usługi Delta Lake, kolumny danych osobowych przechowujące wartości, takie jak numer ubezpieczenia społecznego, numer telefonu, numer karty kredytowej i inne identyfikatory, nie będą niemożliwe dla nieautoryzowanego użytkownika do odczytania.

Po zapisaniu i ochronie poufnych danych potrzebny jest sposób na odczytywanie poufnych danych przez uprzywilejowanych użytkowników. Pierwszą rzeczą, którą należy wykonać, jest utworzenie stałej funkcji zdefiniowanej przez użytkownika w celu dodania do wystąpienia programu Hive uruchomionego w usłudze Databricks. Aby funkcja UDF była stała, należy ją zapisać w języku Scala. Na szczęście firma Fernet ma również implementację języka Scala, której można użyć do odszyfrowywania odczytów. Ta funkcja UDF uzyskuje również dostęp do tego samego wpisu tajnego używanego w zaszyfrowanym zapisie w celu odszyfrowywania, a w tym przypadku jest dodawany do konfiguracji platformy Spark klastra. Wymaga to dodania kontroli dostępu do klastra dla uprzywilejowanych i nieuprzywilejowanych użytkowników w celu kontrolowania dostępu do klucza. Po utworzeniu funkcji zdefiniowanej przez użytkownika możemy użyć jej w definicjach widoku dla uprzywilejowanych użytkowników, aby zobaczyć odszyfrowane dane.

Dzięki funkcjom widoku dynamicznego można utworzyć tylko jeden widok i zwrócić zaszyfrowane lub odszyfrowane wartości na podstawie grupy usługi Databricks, do której należą.

W poprzednim przykładzie utworzysz dwie funkcje widoku dynamicznego, jedną dla Ameryka Północna i drugą dla Europy, a następnie zaimplementujesz techniki szyfrowania w tym notesie.

widok Ameryka Północna n:

-- Alias the field 'email' to itself (as 'email') to prevent the
-- permission logic from showing up directly in the column name results.
CREATE VIEW vhr_us AS
SELECT
  emp_id,
  CASE WHEN
    is_member('DA-AMERICA-HRMANAGER-R') THEN udfPIIDecrypt(salary, "${spark.fernet}")
    ELSE 0
  END AS salary,
FROM hr_enriched
where region='US'

Pogląd europejski:

-- Alias the field 'email' to itself (as 'email') to prevent the
-- permission logic from showing up directly in the column name results.
CREATE VIEW vhr_eu AS
SELECT
  emp_id,
  CASE WHEN
    is_member('DA-EUROPE-HRMANAGER-R') THEN udfPIIDecrypt(salary, "${spark.fernet}")
    ELSE 0
  END AS salary,
FROM hr_enriched
where region='EU'

Aby to działało, należy włączyć kontrolę dostępu do tabel usługi Azure Databricks w obszarze roboczym i zastosować następujące uprawnienia:

  • Udziel DA-AMERICA-HRMANAGER-R grupie DA-AMERICA-HRGENERAL-R Microsoft Entra dostępu do vhr_us widoku.
  • Udziel DA-EUROPE-HRMANAGER-R grupie DA-EUROPE-HRGENERAL-R Microsoft Entra dostępu do vhr_eu widoku.

Ponieważ kolumny są szyfrowane i nie można ich odszyfrować w poufnym lub poniższym obszarze roboczym, poufne lub poniższe obszary robocze mogą nadal używać uwierzytelniania przekazywanego firmy Microsoft i zezwalać użytkownikom na eksplorowanie jeziora na podstawie ich uprawnień.

W przypadku użycia dostępu do tabel zespoły, które wymagają dostępu, są dodawane do obszaru roboczego usługi Azure Databricks. Usługa Azure Databricks będzie używać jednostek usługi do mapowania na usługę Azure Data Lake Storage, ale dane byłyby zabezpieczone za pomocą kontroli dostępu do tabel usługi Azure Databricks.

W miarę wdrażania nowych produktów danych część procesu DevOps wymagałaby uruchomienia skryptów w celu skonfigurowania uprawnień tabeli w obszarze roboczym usługi Azure Databricks i dodania odpowiednich grup firmy Microsoft Entra do tych uprawnień.

Uwaga

Nie można połączyć kontroli dostępu do tabeli usługi Azure Databricks z uwierzytelnianiem przekazywanym przez firmę Microsoft. W związku z tym można użyć tylko jednego obszaru roboczego usługi Azure Databricks i zamiast tego użyć kontroli dostępu do tabel.

Dane z ograniczeniami

Oprócz implementacji opcji poufnych lub ograniczonych danych zalecamy również hostowanie wysoce poufnych danych w dedykowanej strefie docelowej danych i strefie docelowej zarządzania danymi.

Umożliwia określone wymagania, takie jak dostęp just in time, klucze zarządzane przez klienta na potrzeby szyfrowania oraz ograniczenia ruchu przychodzącego lub wychodzącego stosowane do strefy docelowej. Wskazówki oceniły umieszczanie danych tego typu w tej samej strefie docelowej danych, ale na różnych kontach magazynu. Jednak rozwiązanie może być skomplikowane w warstwie sieciowej, na przykład z sieciowymi grupami zabezpieczeń i innymi.

Dedykowana strefa docelowa zarządzania danymi z ograniczeniami powinna łączyć się z katalogiem danych w strefie docelowej danych "z ograniczeniami". Powinno to ograniczyć, kto może wyszukiwać te dane w wykazie.

Następne kroki