Udostępnij za pośrednictwem


Zarządzanie danymi osobowymi w dziennikach usługi Azure Monitor i usłudze Application Insights

Log Analytics to magazyn danych, w którym prawdopodobnie zostaną znalezione dane osobowe. Usługa Application Insights przechowuje swoje dane w partycji usługi Log Analytics. W tym artykule wyjaśniono, gdzie usługi Log Analytics i Application Insights przechowują dane osobowe oraz jak zarządzać tymi danymi.

W tym artykule dane dziennika odnoszą się do danych wysyłanych do obszaru roboczego usługi Log Analytics, a dane aplikacji odnoszą się do danych zebranych przez usługę Application Insights. Jeśli używasz zasobu usługi Application Insights opartego na obszarze roboczym, mają zastosowanie informacje dotyczące danych dziennika. Jeśli używasz klasycznego zasobu usługi Application Insights, dane aplikacji mają zastosowanie.

Uwaga

Aby uzyskać informacje o wyświetlaniu lub usuwaniu danych osobowych, zobacz Ogólne żądania podmiotów danych dotyczące RODO, żądań podmiotów danych platformy Azure dotyczących RODO lub Żądań podmiotów danych systemu Windows dotyczących RODO, w zależności od konkretnego obszaru i potrzeb. Aby uzyskać więcej informacji na temat RODO, zobacz sekcję RODO centrum zaufania firmy Microsoft i sekcję RODO w portalu zaufania usług.

Wymagane uprawnienia

Akcja Wymagane uprawnienia
Przeczyszczanie danych z obszaru roboczego usługi Log Analytics Microsoft.OperationalInsights/workspaces/purge/action uprawnienia do obszaru roboczego usługi Log Analytics udostępnione przez wbudowaną rolę Współautor usługi Log Analytics, na przykład

Strategia obsługi danych osobowych

Chociaż ty i Twoja firma definiują strategię obsługi danych osobowych, oto kilka podejść wymienionych od najbardziej do najmniej preferowanych z technicznego punktu widzenia:

  • Zatrzymaj zbieranie danych osobowych lub zaciemnianie, anonimizowanie lub dostosowywanie zebranych danych, aby wykluczyć je z bycia traktowanym jako "osobiste". Jest to zdecydowanie preferowane podejście, które pozwala zaoszczędzić potrzebę utworzenia kosztownej i mającej wpływ strategii obsługi danych.
  • Normalizuj dane, aby zmniejszyć negatywny wpływ na platformę danych i wydajność. Na przykład zamiast rejestrowania jawnego identyfikatora użytkownika utwórz odnośnik, aby skorelować nazwę użytkownika i ich szczegóły z wewnętrznym identyfikatorem, który można następnie zarejestrować w innym miejscu. W ten sposób, jeśli użytkownik prosi o usunięcie swoich danych osobowych, możesz usunąć tylko wiersz w tabeli odnośników, który odpowiada użytkownikowi.
  • Jeśli musisz zebrać dane osobowe, skompiluj proces przy użyciu ścieżki interfejsu API przeczyszczania i istniejącego interfejsu API zapytania, aby spełnić wszelkie zobowiązania dotyczące eksportowania i usuwania wszelkich danych osobowych skojarzonych z użytkownikiem.

Gdzie szukać danych osobowych w usłudze Log Analytics

Usługa Log Analytics określa schemat danych, ale umożliwia zastąpienie każdego pola wartościami niestandardowymi. Można również pozyskiwać schematy niestandardowe. W związku z tym nie można dokładnie powiedzieć, gdzie będą znajdować się dane osobowe w określonym obszarze roboczym. Jednak następujące lokalizacje są dobrymi punktami wyjścia w spisie.

Uwaga

Niektóre z poniższych zapytań służą search * do wykonywania zapytań dotyczących wszystkich tabel w obszarze roboczym. Zdecydowanie zalecamy unikanie używania metody search *, która tworzy wysoce nieefektywne zapytanie, jeśli jest to możliwe. Zamiast tego wykonaj zapytanie o określoną tabelę.

Dane dziennika

  • Adresy IP: usługa Log Analytics zbiera różne informacje o adresach IP w wielu tabelach. Na przykład następujące zapytanie przedstawia wszystkie tabele, które zebrały adresy IPv4 w ciągu ostatnich 24 godzin:

    search * 
    | where * matches regex @'\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b' //RegEx originally provided on https://stackoverflow.com/questions/5284147/validating-ipv4-addresses-with-regexp
    | summarize count() by $table
    
  • Identyfikatory użytkowników: nazwy użytkowników i identyfikatory użytkowników można znaleźć w różnych rozwiązaniach i tabelach. Możesz wyszukać określoną nazwę użytkownika lub identyfikator użytkownika w całym zestawie danych przy użyciu polecenia wyszukiwania:

    search "<username or user ID>"
    

    Pamiętaj, aby wyszukać nie tylko nazwy użytkowników czytelne dla człowieka, ale także identyfikatory GUID, które można prześledzić z powrotem do określonego użytkownika.

  • Identyfikatory urządzeń: podobnie jak identyfikatory użytkowników, identyfikatory urządzeń są czasami uznawane za dane osobowe. Użyj powyższego podejścia dla identyfikatorów użytkowników, aby zidentyfikować tabele przechowujące dane osobowe.

  • Dane niestandardowe: usługa Log Analytics umożliwia zbieranie niestandardowych danych za pośrednictwem dzienników niestandardowych, pól niestandardowych, interfejsu API modułu zbierającego dane HTTP oraz w ramach dzienników zdarzeń systemu. Sprawdź wszystkie dane niestandardowe dla danych osobowych.

  • Przechwycone rozwiązania dane: ponieważ mechanizm rozwiązania jest otwarty, zalecamy przejrzenie wszystkich tabel generowanych przez rozwiązania w celu zapewnienia zgodności.

Dane aplikacji

  • Adresy IP: chociaż usługa Application Insights zaciemnia wszystkie pola adresów IP domyślnie 0.0.0.0 , dość powszechne jest zastąpienie tej wartości rzeczywistym adresem IP użytkownika w celu zachowania informacji o sesji. Użyj poniższego zapytania, aby znaleźć dowolną tabelę zawierającą wartości w kolumnie adresu IP inną niż 0.0.0.0 w ciągu ostatnich 24 godzin:

    search client_IP != "0.0.0.0"
    | where timestamp > ago(1d)
    | summarize numNonObfuscatedIPs_24h = count() by $table
    
  • Identyfikatory użytkowników: domyślnie usługa Application Insights używa losowo generowanych identyfikatorów do śledzenia użytkowników i sesji w polach, takich jak session_Id, user_Id, user_AuthenticatedId, user_AccountId i customDimensions. Jednak często przesłonięć te pola za pomocą identyfikatora, który jest bardziej istotny dla aplikacji, takich jak nazwy użytkowników lub identyfikatory GUID firmy Microsoft Entra. Te identyfikatory są często uważane za dane osobowe. Zalecamy zaciemnianie lub zanonimizowanie tych identyfikatorów.

  • Dane niestandardowe: usługa Application Insights umożliwia dołączanie zestawu wymiarów niestandardowych do dowolnego typu danych. Użyj następującego zapytania, aby zidentyfikować wymiary niestandardowe zebrane w ciągu ostatnich 24 godzin:

    search * 
    | where isnotempty(customDimensions)
    | where timestamp > ago(1d)
    | project $table, timestamp, name, customDimensions 
    
  • Dane w pamięci i podczas przesyłania: usługa Application Insights śledzi wyjątki, żądania, wywołania zależności i ślady. Dane osobowe są często znajdowane na poziomie kodu i wywołania HTTP. Przejrzyj wyjątki, żądania, zależności i tabele śledzenia, aby zidentyfikować dowolne takie dane. Użyj inicjatorów telemetrii, jeśli to możliwe, aby zaciemnić te dane.

  • Przechwytywanie migawek debugera: funkcja Snapshot Debugger w usłudze Application Insights umożliwia zbieranie migawek debugowania, gdy usługa Application Insights wykryje wyjątek w wystąpieniu produkcyjnym aplikacji. Migawki uwidacznia pełny ślad stosu prowadzący do wyjątków i wartości zmiennych lokalnych na każdym kroku w stosie. Niestety ta funkcja nie zezwala na selektywne usuwanie punktów przyciągania ani programowy dostęp do danych w ramach migawki. W związku z tym, jeśli domyślny współczynnik przechowywania migawek nie spełnia wymagań dotyczących zgodności, zalecamy wyłączenie tej funkcji.

Eksportowanie i usuwanie danych osobowych

Zdecydowanie zalecamy zmianę zasad zbierania danych w celu zaprzestania zbierania danych osobowych, zaciemnia lub zanonimizacji danych osobowych albo modyfikowania takich danych do momentu, gdy nie zostanie on już uznany za osobisty. W przypadku obsługi danych osobowych poniesiesz koszty związane z definiowaniem i automatyzowaniem strategii, tworzeniem interfejsu, za pomocą którego klienci wchodzą w interakcję z danymi i trwającą konserwacją. Jest to również kosztowne obliczenia dla usługi Log Analytics i Application Insights, a duża liczba współbieżnych wywołań interfejsu API zapytań lub przeczyszczania może negatywnie wpłynąć na wszystkie inne interakcje z funkcją usługi Log Analytics. Jeśli jednak musisz zbierać dane osobowe, postępuj zgodnie z wytycznymi w tej sekcji.

Ważne

Podczas gdy większość operacji przeczyszczania odbywa się znacznie szybciej, formalna umowa SLA dotycząca kończenia operacji przeczyszczania jest ustawiana na 30 dni ze względu na ich duży wpływ na platformę danych. Umowa SLA spełnia wymagania RODO. Jest to zautomatyzowany proces, więc nie ma możliwości przyspieszenia tej operacji.

Wyświetlanie i eksportowanie

Użyj interfejsu API zapytań usługi Log Analytics lub interfejsu API zapytań usługi Application Insights, aby wyświetlić i wyeksportować żądania danych.

Uwaga

Nie można użyć interfejsu API zapytań usługi Log Analytics dla planów tabeli Podstawowa i Pomocnicza. Zamiast tego użyj interfejsu API /search usługi Log Analytics.

Należy zaimplementować logikę konwertowania danych na odpowiedni format dostarczania do użytkowników. Usługa Azure Functions to doskonałe miejsce do hostowania takiej logiki.

Delete

Ostrzeżenie

Operacje usunięcia w usłudze Log Analytics mają charakter trwały i nieodwracalny! Podczas ich wykonywania należy zachować wyjątkową ostrożność.

Interfejs API przeczyszczania usługi Azure Monitor umożliwia usuwanie danych osobowych. Użyj operacji przeczyszczania oszczędnie, aby uniknąć potencjalnych zagrożeń, wpływu na wydajność i potencjał, aby wypaczyć agregacje, pomiary i inne aspekty danych usługi Log Analytics. Zobacz sekcję Strategia obsługi danych osobowych, aby zapoznać się z alternatywnymi podejściami do obsługi danych osobowych.

Przeczyszczanie to wysoce uprzywilejowana operacja. Udziel roli przeczyszczania danych w usłudze Azure Resource Manager ostrożnie ze względu na potencjalną utratę danych.

Aby zarządzać zasobami systemowymi, ograniczamy żądania przeczyszczania do 50 żądań na godzinę. Wsadowe wykonywanie żądań przeczyszczania przez wysłanie jednego polecenia, którego predykat obejmuje wszystkie tożsamości użytkowników, które wymagają przeczyszczania. Użyj operatora in, aby określić wiele tożsamości. Uruchom zapytanie przed wykonaniem żądania przeczyszczania, aby zweryfikować oczekiwane wyniki.

Ważne

Korzystanie z usługi Log Analytics lub interfejsu API przeczyszczania usługi Application Insights nie wpływa na koszty przechowywania. Aby obniżyć koszty przechowywania, należy zmniejszyć okres przechowywania danych.

Dane dziennika

  • Interfejs API post przeczyszczania obszaru roboczego przyjmuje obiekt określający parametry danych do usunięcia i zwraca identyfikator GUID odwołania.

  • Interfejs API POST pobierania stanu przeczyszczania zwraca nagłówek "x-ms-status-location", który zawiera adres URL, który można wywołać w celu określenia stanu operacji przeczyszczania. Na przykład:

    x-ms-status-location: https://management.azure.com/subscriptions/[SubscriptionId]/resourceGroups/[ResourceGroupName]/providers/Microsoft.OperationalInsights/workspaces/[WorkspaceName]/operations/purge-[PurgeOperationId]?api-version=2015-03-20
    

Uwaga

Nie można przeczyścić danych z tabel, które mają plany tabeli Podstawowa i Pomocnicza.

Dane aplikacji

  • Składniki — przeczyszczanie interfejsu API POST przyjmuje obiekt określający parametry danych do usunięcia i zwraca identyfikator GUID odwołania.

  • Interfejs API GET Components — Get Purge Status zwraca nagłówek "x-ms-status-location", który zawiera adres URL, który można wywołać w celu określenia stanu operacji przeczyszczania. Na przykład:

    x-ms-status-location: https://management.azure.com/subscriptions/[SubscriptionId]/resourceGroups/[ResourceGroupName]/providers/microsoft.insights/components/[ComponentName]/operations/purge-[PurgeOperationId]?api-version=2015-05-01
    

Następne kroki