Zarządzanie danymi osobowymi w dziennikach usługi Azure Monitor i Szczegółowe informacje aplikacji

Log Analytics to magazyn danych, w którym prawdopodobnie zostaną znalezione dane osobowe. Aplikacja Szczegółowe informacje przechowuje swoje dane w partycji usługi Log Analytics. W tym artykule wyjaśniono, gdzie usługa Log Analytics i aplikacja Szczegółowe informacje przechowywać 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 Szczegółowe informacje. Jeśli używasz zasobu Szczegółowe informacje aplikacji opartej na obszarze roboczym, mają zastosowanie informacje dotyczące danych dziennika. Jeśli używasz klasycznego zasobu application Szczegółowe informacje, dane aplikacji mają zastosowanie.

Uwaga

Aby uzyskać informacje dotyczące wyświetlania lub usuwania danych osobowych, zobacz Azure Data Subject Requests for the GDPR (Żądania podmiotów danych dotyczące RODO na platformie Azure). Aby uzyskać więcej informacji na temat RODO, zobacz sekcję RODO centrum zaufania firmy Microsoft i sekcję RODO w portalu zaufania usług.

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: podczas gdy aplikacja Szczegółowe informacje zaciemnia wszystkie pola adresów IP domyślnie0.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 Szczegółowe informacje aplikacji 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: aplikacja Szczegółowe informacje 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: aplikacja Szczegółowe informacje ś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 aplikacji Szczegółowe informacje umożliwia zbieranie migawek debugowania, gdy usługa Application Szczegółowe informacje wykrywa 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 aplikacji Szczegółowe informacje, a duża liczba współbieżnych wywołań zapytań lub przeczyszczania interfejsu API 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 Szczegółowe informacje w celu wyświetlania i eksportowania żądań danych.

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 Szczegółowe informacje przeczyszczania aplikacji 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
    

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