Udostępnij za pośrednictwem


Granularna kontrola dostępu oparta na rolach w usłudze Azure Monitor

Szczegółowa kontrola dostępu oparta na rolach (RBAC) w usłudze Azure Monitor Log Analytics umożliwia filtrowanie danych obszaru roboczego, które każdy użytkownik może wyświetlać lub wykonywać zapytania na podstawie określonych warunków, aby spełnić potrzeby biznesowe i związane z zabezpieczeniami. Zalety tej kontroli dostępu obejmują:

  • Dostęp na poziomie wiersza
  • Dostęp na poziomie tabeli
  • Separacja płaszczyzn kontroli i danych

Jeśli architektura usługi Log Analytics zawiera wiele obszarów roboczych, które umożliwiają segregację danych, prywatność lub zgodność, szczegółowa kontrola dostępu oparta na rolach ułatwia uproszczenie topologii przez zmniejszenie liczby wymaganych obszarów roboczych.

Wideo z wprowadzeniem

Wymagania wstępne

Akcja Wymagane uprawnienie
Tworzenie nowej roli niestandardowej Microsoft.Authorization/roleDefinitions/write uprawnienia w zakresach możliwych do przypisania.
Na przykład, zgodnie z wbudowaną rolą uprzywilejowaną, administratorzy dostępu użytkowników.
Dodawanie lub aktualizowanie warunków Microsoft.Authorization/roleAssignments/write i Microsoft.Authorization/roleAssignments/delete uprawnienia do obszaru roboczego usługi Log Analytics.
Na przykład, zgodnie z uprzywilejowaną wbudowaną rolą, administrator kontroli dostępu opartej na rolach.

Kiedy używać szczegółowej kontroli dostępu opartej na rolach?

Rozdzielcza kontrola dostępu oparta na rolach pomaga osiągnąć następujące scenariusze:

  • Segregacja danych — oddziela dane różnych jednostek, zespołów i lokalizacji geograficznych z tego samego obszaru roboczego i upewnij się, że każdy użytkownik może uzyskiwać dostęp tylko do danych istotnych dla ich grupy. Warunki dostępu wykorzystują niestandardowe pola dziennika, aby kontrolować dostęp na poziomie wiersza, segregowany według atrybutów, takich jak zapora sieciowa, typ urządzenia, identyfikator subskrypcji lub inne identyfikatory.
  • Prywatność danych — ochrona poufnych lub poufnych danych, takich jak dane osobowe, rekordy kondycji lub transakcje finansowe, i zezwalanie na dostęp tylko autoryzowanym użytkownikom.
  • Zgodność danych — użyj szczegółowej kontroli dostępu opartej na rolach jako narzędzia, aby ułatwić spełnianie wymagań regulacyjnych lub prawnych twojej branży lub regionu. Wymuszanie odpowiednich zasad i kontroli dostępu do danych i użycia.

Szczegółowy system RBAC kontroluje dostęp do danych, na przykład wyświetlanie lub wykonywanie zapytań dotyczących danych. Nie dotyczy to akcji płaszczyzny sterowania, takich jak ustawianie uprawnień dostępu do danych, zarządzania obszarem roboczym, przekształceń ani eksportowania danych.

Konfigurowanie szczegółowego RBAC

Przejdź do szczegółowej kontroli dostępu opartej na rolach przy użyciu szczegółowego przykładu kontroli dostępu opartej na rolach krok po kroku.

Poniższe sekcje zawierają omówienie kluczowych pojęć i kroków związanych z konfigurowaniem granularnej RBAC.

Wybór roli

Aby skonfigurować szczegółową kontrolę RBAC, użyj wbudowanej roli, czytnika danych usługi Log Analytics lub utwórz rolę niestandardową z określonymi wymaganymi akcjami. Następnie przypisz wybraną rolę przy użyciu warunków. Aby uzyskać więcej informacji na temat ról niestandardowych, zobacz Role niestandardowe platformy Azure.

Minimalne wymagane uprawnienia akcji i akcji danych:

Definicja roli niestandardowej Pozwolenie Opis
Płaszczyzna sterowania (akcje) Microsoft.OperationalInsights/workspaces/query/read Uruchamianie zapytań w usłudze Log Analytics i wyświetlanie metadanych. To uprawnienie nie udziela dostępu do danych.
Płaszczyzna danych (DataActions) Microsoft.OperationalInsights/workspaces/tables/data/read Dostęp do danych i jest dataaction wybierany w warunku przypisania roli. Jeśli nie ustawiono warunku, to uprawnienie udziela dostępu do wszystkich danych w przypisanym zakresie.

Opcjonalnie dołącz dostęp do interfejsu użytkownika dzienników w portalu Azure, dodając akcję kontrolną Microsoft.OperationalInsights/workspaces/read. Aby uzyskać więcej informacji, zobacz Azure RBAC control and data actions (Kontrola RBAC platformy Azure i akcje danych).

Uwaga / Notatka

Granularne RBAC, podobnie jak Azure RBAC, jest modelem dodatkowym. Efektywne uprawnienia to suma przypisanych ról. Aby szczegółowe warunki kontroli dostępu opartej na rolach zaczęły obowiązywać, należy usunąć wszystkie przypisania ról z wyższymi uprawnieniami dostępu.

Jeśli na przykład masz dwa przypisania ról w tym samym zakresie, jedno z akcją */read, a drugie z warunkami ograniczającymi dostęp do określonych rekordów, to wynikowe uprawnienie to akcja */read, która udziela dostępu do wszystkich dzienników w zakresie. Nie ma jawnej akcji odmowy, tylko odmów przypisań.

Warunki i wyrażenia

Podobnie jak w przypadku zwykłych przypisań ról, utworzona rola niestandardowa musi być przypisana do użytkownika lub grupy. Różnica polega na tym, że podczas przypisywania roli warunki są skonfigurowane do precyzyjnego dostosowywania kontroli dostępu.

Granularne RBAC pozwala na ustawienie warunku w tabelach i na poziomie wiersza, w oparciu o dane w każdym rekordzie. Planowanie ograniczeń w oparciu o te dwie strategie:

Metoda kontroli dostępu Przykład
Brak dostępu do danych, z wyjątkiem tego, co jest dozwolone Ogranicz dostęp do dzienników aplikacji, aby użytkownicy mogli wyświetlać tylko rekordy, w których kolumna application id jest aplikacją, do której mają dostęp.
Dostęp do wszystkich danych, z wyjątkiem tego, co nie jest dozwolone Zezwalaj na dostęp do wszystkich dzienników logowania, z wyjątkiem rekordów, w których kolumna userPrincipalName jest dyrektorem generalnym.

Warunek składa się z akcji danych roli oraz wyrażeń. Wyrażenie to instrukcja logiki z formatem AttributeOperatorValue.

Wartości są ograniczone do obsługiwanych następujących znaków:

  • Znaki alfanumeryczne
  • Znaki specjalne:@, ., -

Szczegółowa kontrola dostępu oparta na rolach w Log Analytics obsługuje atrybuty tabel oraz kolumn/wartości.

Źródło atrybutu Wyświetlana nazwa Typ Opis Nazwa atrybutu
Zasób Nazwa tabeli Sznurek Nazwy tabel używane do przyznawania lub ograniczania dostępu. Microsoft.OperationalInsights/workspaces/tables:«<name>»
Zasób Wartość kolumny (Klucz jest nazwą kolumny) Słownik (klucz-wartość) Nazwa i wartość kolumny. Nazwa kolumny jest kluczem. Wartość danych w kolumnie jest wartością. Microsoft.OperationalInsights/workspaces/tables/record:<key>

Oto przykładowy zrzut ekranu przedstawiający szczegółowy warunek przypisania roli RBAC przy użyciu opcji Brak dostępu do danych, z wyjątkiem dozwolonej metody skonfigurowanej przy użyciu witryny Azure Portal.

Zrzut ekranu przedstawiający przykładowy warunek przypisania roli dla usługi Log Analytics.

Zmniejsz złożoność, konfigurując szczegółowe przypisania ról RBAC w zakresie, który jest dostosowany do ustawionych warunków. Jeśli na przykład rola niestandardowa jest przypisana w zakresie grupy zasobów, możliwe, że inne obszary robocze nie mają zasobów tabeli ani kolumn określonych w wyrażeniu, co powoduje nieoczekiwane zastosowanie warunku.

Jeśli jednak ustawisz warunek przypisania roli na poziomie tabeli, należy utworzyć dwie role w następujący sposób:

  • Rola 1. Akcja: Microsoft.OperationalInsights/workspaces/query/read dla obszaru roboczego tabeli.
  • Rola 2. DataAction: Microsoft.OperationalInsights/workspaces/tables/data/read dla tabeli w tym obszarze roboczym. Zdefiniuj warunek roli za pomocą akcji danych.

Aby uniknąć tworzenia dwóch ról, użyj najprostszego podejścia, przypisując rolę w obszarze roboczym i ustawiając warunki do kontrolowania poziomu tabeli.

Aby uzyskać więcej informacji, zobacz Poziomy zakresu RBAC platformy Azure.

Operatory wyrażeń

Szczegółowe wyrażenia RBAC używają podzestawu operatorów kontroli dostępu opartej na atrybutach (ABAC).

Atrybut nazwy tabeli obsługuje cztery operatory. Te operatory zapewniają elastyczność dopasowania wartości nazw tabel podczas ustawiania warunku.

Operatory ABAC Opis
StringEquals Dopasowanie uwzględniające wielkość liter. Wartości muszą być dokładnie zgodne z ciągiem.
StringNotEquals Negacja StringEquals.
ForAllOfAnyValues:StringEquals Logicznie równoważny in(). Jeśli każda wartość po lewej stronie spełnia porównanie z co najmniej jedną wartością po prawej stronie, wyrażenie daje wartość true.
ForAllOfAllValues:StringNotEquals Logicznie równoważny !in(). Jeśli każda wartość po lewej stronie spełnia porównanie z co najmniej jedną wartością po prawej stronie, wyrażenie daje wartość false.

Warunki ABAC zdefiniowane dla wartości w kolumnach w usłudze Log Analytics opierają się na danych zawartych w tej kolumnie. Można porównać tylko typy danych ciągów. W przypadku atrybutu dostępu na poziomie wiersza wszystkie rzutowania są oparte wyłącznie na zachowaniu KQL.

W poniższej tabeli przedstawiono obsługiwane operatory wyrażeń ABAC. Równoważne operatory Kusto są wymienione w celu zapewnienia przejrzystości.

Operator ABAC Operator odpowiednik Kusto Opis
StringEquals / StringEqualsIgnoreCase == / =~ Dopasowanie uwzględniające wielkość liter (lub bez uwzględniania wielkości liter). Wartości muszą być dokładnie zgodne z ciągiem.
StringNotEquals / StringNotEqualsIgnoreCase != / !~ Negacja StringEquals (lub StringEqualsIgnoreCase).
StringLike / StringLikeIgnoreCase has_cs / has Dopasowanie uwzględniające wielkość liter (lub bez uwzględniania wielkości liter). Prawa strona operatora (RHS) jest całym terminem w lewej stronie (LHS).
StringNotLike / StringNotLikeIgnoreCase !has_cs / !has Negacja operatora StringLike (lub StringLikeIgnoreCase)
StringStartsWith / StringStartsWithIgnoreCase startswith_cs/ startswith Dopasowanie uwzględniające wielkość liter (lub bez uwzględniania wielkości liter). Wartość zaczyna się od ciągu.
StringNotStartsWith / StringNotStartsWithIgnoreCase !startswith_cs / !startswith Negacja operatora StringStartsWith (lub StringStartsWithIgnoreCase).
ForAllOfAnyValues:StringEquals / ForAllOfAnyValues:StringEqualsIgnoreCase

ForAllOfAllValues:StringNotEquals / ForAllOfAllValues:StringNotEqualsIgnoreCase

ForAnyOfAnyValues:StringLikeIgnoreCase
In / In~


!in / !in~


has_any
Element "ForAllOfAnyValues:<BooleanFunction>" obsługuje wiele ciągów i liczb.
Jeśli każda wartość po lewej stronie spełnia porównanie z co najmniej jedną wartością po prawej stronie, wyrażenie daje wartość true.

Warunki ABAC nie są ustawiane bezpośrednio w funkcjach. Jeśli ustawisz warunek w tabeli, będzie ona propagowana do dowolnej funkcji, która na niej bazuje. Aby uzyskać więcej informacji na temat operatorów i terminów, zobacz Operatory ciągów.

Wskazówka

Przekształcanie służy do wzbogacania danych, zmieniania typów danych i zmieniania wielkości liter w celu lepszego dopasowania do wyrażeń ABAC. Jeśli dane nie obsługują warunków, które chcesz zastosować, przekształcenia są również rozwiązaniem. Aby na przykład zastosować warunki do danych o wysokiej kardynalności, takich jak zakresy adresów IP, użyj przekształceń do grupowania adresów IP należących do wybranych podsieci według nazwy podsieci.

Aby uzyskać więcej informacji, zobacz Przekształcenia zbierania danych w usłudze Azure Monitor.

Rozważania

Podczas korzystania z granularnej kontroli dostępu RBAC opartej na rolach w Log Analytics istnieje kilka kwestii do rozważenia. Poniższe sekcje zawierają szczegółowe informacje.

  • Szczegółowa kontrola dostępu oparta na rolach jest dostępna w chmurze publicznej, w usługach Azure Commercial (GCC) i Azure Chinach.

Azure Monitor

  • Zadania wyszukiwania i reguły podsumowania są planowane na potrzeby szczegółowej obsługi kontroli dostępu opartej na rolach, ale nie eksportowania danych. W przypadku wszystkich tych środowisk, jeśli pełny dostęp nie istnieje w tabelach zapytanych, użytkownik nie może skonfigurować zadania wyszukiwania lub reguły i otrzymuje błąd.
  • Alerty: obsługiwane są tylko alerty dziennika oparte na tożsamości zarządzanej.
  • Application Insights: obsługiwane są tylko usługi Application Insights oparte na obszarze roboczym.

Microsoft Sentinel

Gdy dane są replikowane z oryginalnych tabel przy użyciu wyszukiwania zagrożeń, zakładek, reguły analizy i zdarzeń, replikowane dane nie są chronione przez warunki ABAC.

Kontrola dostępu oparta na atrybutach (ABAC) i kontrola dostępu oparta na rolach (RBAC) w platformie Azure

Obowiązują normalne ograniczenia kontroli dostępu opartej na rolach (RBAC) i kontroli dostępu opartej na atrybutach (ABAC) platformy Azure. Na przykład próg maksymalnej liczby przypisań ról na subskrypcję to limit usługi Azure dla RBAC (kontroli dostępu opartej na rolach). Usługa Azure ABAC ogranicza liczbę wyrażeń na warunek i ogólny rozmiar warunku w kb. Aby uzyskać więcej informacji, zobacz następujące artykuły:

Inspekcja i monitorowanie

Zmiany przypisań ról są rejestrowane w dziennikach aktywności platformy Azure. Zapytania użytkownika w LAQueryLogs tabeli wskazują, czy zapytanie zostało wykonane z odpowiednim warunkiem dostępu ABAC w kolumnieConditionalDataAccess. Włącz dzienniki przy użyciu ustawień diagnostycznych w obszarze roboczym usługi Log Analytics. Aby uzyskać więcej informacji, zobacz Ustawienia diagnostyczne dzienników usługi Azure Monitor.

Często zadawane pytania

Uzyskuję dostęp do dzienników za pośrednictwem kontekstu zasobu. Czy można wymusić mój warunek?
RBAC i ABAC są egzekwowane dla zapytań dotyczących kontekstu zasobów, lecz wymagają, aby obszary robocze zawierające dzienniki zasobów spełniały następujące warunki wstępne:

  • Ustaw tryb kontroli dostępu wszystkich odpowiednich obszarów roboczych na Wymagaj uprawnień obszaru roboczego.
    Jeśli ustawiono opcję Użyj zasobów lub uprawnień obszaru roboczego, uprawnienie do odczytu platformy Azure przypisane do zasobu zapewnia dostęp do wszystkich dzienników. Uprawnienia obszaru roboczego i uprawnienia ABAC są ignorowane.
  • Ustaw ABAC na wszystkich odpowiednich przestrzeniach roboczych.

Aby uzyskać więcej informacji, zobacz Zarządzanie dostępem do obszarów roboczych usługi Log Analytics, tryb dostępu.

Czy szczegółowe warunki RBAC utrzymują się podczas eksportowania tabeli?
Szczegółowe warunki kontroli dostępu opartej na rolach są wymuszane tylko w przypadku zapytań. Na przykład dane pomyślnie wyeksportowane przy użyciu funkcji eksportowania danych obszaru roboczego nie zachowują warunków ABAC na danych tabeli docelowej.

Jak skonfigurować dostęp na podstawie klasyfikacji danych?
Aby zaimplementować model dostępu w stylu Bell-LaPadula, należy jawnie ustawić warunki ABAC, aby trzymać się zasad, takich jak odczyt w dół. Na przykład użytkownik z uprawnieniami ściśle tajnymi musi mieć jawnie ustawione uprawnienia dla niższych poziomów, takich jak wpis tajny, poufne i niesklasyfikowane, aby mieć pewność, że będzie mógł uzyskiwać dostęp do danych na poziomach niższych niż najwyższy przypisany poziom.