Role, uprawnienia i zabezpieczenia w usłudze Azure Monitor
Uwaga
Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Wiele zespołów musi ściśle regulować dostęp do danych i ustawień monitorowania. Jeśli na przykład masz członków zespołu, którzy pracują wyłącznie nad monitorowaniem (inżynierowie pomocy technicznej, inżynierowie DevOps) lub jeśli używasz zarządzanego dostawcy usług, możesz udzielić im dostępu tylko do danych monitorowania. Możesz ograniczyć możliwość tworzenia, modyfikowania lub usuwania zasobów.
W tym artykule pokazano, jak szybko zastosować wbudowaną rolę monitorowania do użytkownika na platformie Azure lub utworzyć własną rolę niestandardową dla użytkownika, który potrzebuje ograniczonych uprawnień do monitorowania. W tym artykule omówiono zagadnienia dotyczące zabezpieczeń zasobów związanych z usługą Azure Monitor oraz sposób ograniczania dostępu do danych w tych zasobach.
Wbudowane role monitorowania
Wbudowane role w usłudze Azure Monitor pomagają ograniczyć dostęp do zasobów w ramach subskrypcji, jednocześnie umożliwiając pracownikom, którzy monitorują infrastrukturę, uzyskiwanie i konfigurowanie potrzebnych danych. Usługa Azure Monitor udostępnia dwie gotowe role: Czytelnik monitorowania i Współautor monitorowania. Dzienniki usługi Azure Monitor udostępniają również wbudowane role do zarządzania dostępem do danych w obszarze roboczym usługi Log Analytics, zgodnie z opisem w temacie Zarządzanie dostępem do obszarów roboczych usługi Log Analytics.
Czytelnik monitorowania
Osoby przypisane do roli Czytelnik monitorowania mogą wyświetlać wszystkie dane monitorowania w subskrypcji, ale nie mogą modyfikować zasobów ani edytować ustawień związanych z zasobami monitorowania. Ta rola jest odpowiednia dla użytkowników w organizacji, takich jak inżynierowie pomocy technicznej lub operacji, którzy muszą:
- Wyświetl pulpity nawigacyjne monitorowania w Azure Portal.
- Wyświetlanie reguł alertów zdefiniowanych w alertach platformy Azure.
- Wykonywanie zapytań o metryki przy użyciu interfejsu API REST usługi Azure Monitor, poleceń cmdlet programu PowerShell lub międzyplatformowego interfejsu wiersza polecenia.
- Wykonaj zapytanie w dzienniku aktywności przy użyciu portalu, interfejsu API REST usługi Azure Monitor, poleceń cmdlet programu PowerShell lub interfejsu wiersza polecenia międzyplatformowego.
- Wyświetl ustawienia diagnostyczne zasobu.
- Wyświetl profil dziennika dla subskrypcji.
- Wyświetl ustawienia autoskalu.
- Wyświetl działanie alertu i ustawienia.
- Uzyskiwanie dostępu do danych usługi Application Insights i wyświetlanie danych w usłudze Application Insights Analytics.
- Wyszukaj dane obszaru roboczego usługi Log Analytics, w tym dane użycia dla obszaru roboczego.
- Wyświetlanie grup zarządzania w usłudze Log Analytics.
- Pobierz schemat wyszukiwania w obszarze roboczym usługi Log Analytics.
- Wyświetlanie listy pakietów monitorowania w obszarze roboczym usługi Log Analytics.
- Pobieranie i wykonywanie zapisanych wyszukiwań w obszarze roboczym usługi Log Analytics.
- Pobierz konfigurację magazynu obszaru roboczego dla usługi Log Analytics.
Uwaga
Ta rola nie zapewnia dostępu do odczytu do danych dziennika przesyłanych strumieniowo do centrum zdarzeń ani przechowywanych na koncie magazynu. Aby uzyskać informacje na temat konfigurowania dostępu do tych zasobów, zobacz sekcję Zagadnienia dotyczące zabezpieczeń dotyczące monitorowania danych w dalszej części tego artykułu.
Współautor monitorowania
Osoby z przypisaną rolą Współautor monitorowania mogą wyświetlać wszystkie dane monitorowania w subskrypcji. Mogą też tworzyć i modyfikować ustawienia monitorowania, ale nie mogą modyfikować żadnych innych zasobów.
Ta rola jest nadzbiorem roli Czytelnik monitorowania. Jest to odpowiednie dla członków zespołu monitorowania organizacji lub zarządzanych dostawców usług, którzy oprócz wymienionych wcześniej uprawnień muszą:
- Wyświetlanie pulpitów nawigacyjnych monitorowania w portalu i tworzenie własnych prywatnych pulpitów nawigacyjnych monitorowania.
- Ustawianie ustawień diagnostycznych zasobu.*
- Ustaw profil dziennika dla subskrypcji.*
- Ustaw działanie i ustawienia reguły alertu za pośrednictwem alertów platformy Azure.
- Tworzenie testów internetowych i składników usługi Application Insights.
- Wyświetl listę kluczy udostępnionych dla obszaru roboczego usługi Log Analytics.
- Włączanie lub wyłączanie pakietów monitorowania w obszarze roboczym usługi Log Analytics.
- Tworzenie, usuwanie i wykonywanie zapisanych wyszukiwań w obszarze roboczym usługi Log Analytics.
- Utwórz i usuń konfigurację magazynu obszaru roboczego dla usługi Log Analytics.
*Aby ustawić profil dziennika lub ustawienie diagnostyczne, użytkownicy muszą również przyznać uprawnienia ListKeys do zasobu docelowego (konto magazynu lub przestrzeń nazw centrum zdarzeń).
Uwaga
Ta rola nie zapewnia dostępu do odczytu do danych dziennika przesyłanych strumieniowo do centrum zdarzeń ani przechowywanych na koncie magazynu. Aby uzyskać informacje na temat konfigurowania dostępu do tych zasobów, zobacz sekcję Zagadnienia dotyczące zabezpieczeń dotyczące monitorowania danych w dalszej części tego artykułu.
Monitorowanie uprawnień i ról niestandardowych platformy Azure
Jeśli poprzednie wbudowane role nie spełniają dokładnych potrzeb twojego zespołu, możesz utworzyć rolę niestandardową platformy Azure z bardziej szczegółowymi uprawnieniami. Poniżej wymieniono typowe operacje kontroli dostępu opartej na rolach (RBAC) platformy Azure dla usługi Azure Monitor.
Operacja | Opis |
---|---|
Microsoft.Insights/ActionGroups/[Odczyt, zapis, usuwanie] | Odczytywanie, zapisywanie lub usuwanie grup akcji. |
Microsoft.Insights/ActivityLogAlerts/[Odczyt, zapis, usuwanie] | Odczytywanie, zapisywanie lub usuwanie alertów dziennika aktywności. |
Microsoft.Insights/AlertRules/[Odczyt, zapis, usuwanie] | Odczytywanie, zapisywanie lub usuwanie reguł alertów (z alertów klasycznych). |
Microsoft.Insights/AlertRules/Incidents/Read | Wyświetl listę zdarzeń (historia wyzwalanej reguły alertu) dla reguł alertów. Dotyczy to tylko portalu. |
Microsoft.Insights/AutoscaleSettings/[Odczyt, zapis, usuwanie] | Odczyt, zapis lub usuwanie ustawień autoskalowania. |
Microsoft.Insights/DiagnosticSettings/[Odczyt, zapis, usuwanie] | Odczyt, zapis lub usuwanie ustawień diagnostycznych. |
Microsoft.Insights/EventCategories/Read | Wyliczanie wszystkich kategorii możliwych w dzienniku aktywności. Używany przez Azure Portal. |
Microsoft.Insights/eventtypes/digestevents/Read | To uprawnienie jest niezbędne dla użytkowników, którzy potrzebują dostępu do dziennika aktywności za pośrednictwem portalu. |
Microsoft.Insights/eventtypes/values/Read | Wyświetl listę zdarzeń dziennika aktywności (zdarzeń zarządzania) w subskrypcji. To uprawnienie ma zastosowanie zarówno do dostępu programowego, jak i portalu do dziennika aktywności. |
Microsoft.Insights/ExtendedDiagnosticSettings/[Odczyt, zapis, usuwanie] | Odczyt, zapis lub usuwanie ustawień diagnostycznych dzienników przepływu sieci. |
Microsoft.Insights/LogDefinitions/Read | To uprawnienie jest niezbędne dla użytkowników, którzy potrzebują dostępu do dziennika aktywności za pośrednictwem portalu. |
Microsoft.Insights/LogProfiles/[Odczyt, zapis, usuwanie] | Odczyt, zapis lub usuwanie profilów dziennika (przesyłanie strumieniowe dziennika aktywności do centrum zdarzeń lub konta magazynu). |
Microsoft.Insights/MetricAlerts/[Odczyt, zapis, usuwanie] | Odczyt, zapis lub usuwanie alertów metryk niemal w czasie rzeczywistym. |
Microsoft.Insights/MetricDefinitions/Read | Odczytywanie definicji metryk (lista dostępnych typów metryk dla zasobu). |
Microsoft.Insights/Metrics/Read | Odczytywanie metryk dla zasobu. |
Microsoft.Insights/Register/Action | Zarejestruj dostawcę zasobów usługi Azure Monitor. |
Microsoft.Insights/ScheduledQueryRules/[Odczyt, zapis, usuwanie] | Odczytywanie, zapisywanie lub usuwanie alertów dzienników w usłudze Azure Monitor. |
Uwaga
Dostęp do alertów, ustawień diagnostycznych i metryk dla zasobu wymaga, aby użytkownik miał dostęp do odczytu do typu zasobu i zakresu tego zasobu. Tworzenie (zapisywanie) ustawienia diagnostycznego lub profilu dziennika, który jest archiwizowany na koncie magazynu lub strumieniu w centrach zdarzeń, wymaga od użytkownika uprawnienia ListKeys do zasobu docelowego.
Na przykład możesz użyć powyższej tabeli, aby utworzyć rolę niestandardową platformy Azure dla czytelnika dziennika aktywności w następujący sposób:
$role = Get-AzRoleDefinition "Reader"
$role.Id = $null
$role.Name = "Activity Log Reader"
$role.Description = "Can view activity logs."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Insights/eventtypes/*")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/mySubscription")
New-AzRoleDefinition -Role $role
Zagadnienia związane z zabezpieczeniami dotyczące monitorowania danych
Dane monitorowania — szczególnie pliki dziennika — mogą zawierać poufne informacje, takie jak adresy IP lub nazwy użytkowników. Dane monitorowania z platformy Azure są dostarczane w trzech podstawowych formach:
- W dzienniku aktywności opisano wszystkie akcje płaszczyzny sterowania w ramach subskrypcji platformy Azure.
- Dzienniki zasobów to dzienniki emitowane przez zasób.
- Metryki są emitowane przez zasoby.
Wszystkie te typy danych mogą być przechowywane na koncie magazynu lub przesyłane strumieniowo do centrum zdarzeń, z których oba są zasobami platformy Azure ogólnego przeznaczenia. Ponieważ są to zasoby ogólnego przeznaczenia, tworzenie, usuwanie i uzyskiwanie do nich dostępu jest operacją uprzywilejowaną zarezerwowaną dla administratora. Aby zapobiec niewłaściwemu użyciu, skorzystaj z następujących rozwiązań dotyczących monitorowania zasobów:
- Użyj jednego dedykowanego konta magazynu do monitorowania danych. Jeśli musisz oddzielić dane monitorowania na wiele kont magazynu, nigdy nie należy udostępniać użycia konta magazynu między danymi monitorowania i niemonitorowania. Udostępnianie użycia w ten sposób może przypadkowo zapewnić dostęp do danych niemonitorujących organizacjom, które potrzebują dostępu tylko do danych monitorowania. Na przykład organizacja innej firmy do zarządzania informacjami i zdarzeniami zabezpieczeń powinna potrzebować dostępu tylko do danych monitorowania.
- Użyj pojedynczej, dedykowanej przestrzeni nazw magistrali usług lub centrum zdarzeń we wszystkich ustawieniach diagnostycznych z tej samej przyczyny opisanej w poprzednim punkcie.
- Ogranicz dostęp do kont magazynu związanych z monitorowaniem lub centrów zdarzeń, przechowując je w oddzielnej grupie zasobów. Użyj zakresu dla ról monitorowania, aby ograniczyć dostęp tylko do tej grupy zasobów.
- Nigdy nie udzielaj uprawnień ListKeys dla kont magazynu lub centrów zdarzeń w zakresie subskrypcji, gdy użytkownik potrzebuje tylko dostępu do danych monitorowania. Zamiast tego nadaj użytkownikowi te uprawnienia w zakresie zasobu lub grupy zasobów (jeśli masz dedykowaną grupę zasobów monitorowania).
Ograniczanie dostępu do kont magazynu związanych z monitorowaniem
Gdy użytkownik lub aplikacja potrzebuje dostępu do danych monitorowania na koncie magazynu, wygeneruj sygnaturę dostępu współdzielonego na koncie magazynu zawierającym dane monitorowania z dostępem tylko do odczytu na poziomie usługi do magazynu obiektów blob. W programie PowerShell sygnatura dostępu współdzielonego konta może wyglądać podobnie do następującego kodu:
$context = New-AzStorageContext -ConnectionString "[connection string for your monitoring Storage Account]"
$token = New-AzStorageAccountSASToken -ResourceType Service -Service Blob -Permission "rl" -Context $context
Następnie możesz nadać token jednostce, która musi odczytywać dane z tego konta magazynu. Jednostka może wyświetlać listę i odczytywać ze wszystkich obiektów blob na tym koncie magazynu.
Alternatywnie, jeśli musisz kontrolować to uprawnienie za pomocą kontroli dostępu opartej na rolach platformy Azure, możesz przyznać Microsoft.Storage/storageAccounts/listkeys/action
tej jednostce uprawnienie do tego konkretnego konta magazynu. To uprawnienie jest niezbędne dla użytkowników, którzy muszą ustawić ustawienie diagnostyczne lub profil dziennika w celu archiwizacji na koncie magazynu. Można na przykład utworzyć następującą rolę niestandardową platformy Azure dla użytkownika lub aplikacji, która musi odczytywać tylko z jednego konta magazynu:
$role = Get-AzRoleDefinition "Reader"
$role.Id = $null
$role.Name = "Monitoring Storage Account Reader"
$role.Description = "Can get the storage account keys for a monitoring storage account."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Storage/storageAccounts/listkeys/action")
$role.Actions.Add("Microsoft.Storage/storageAccounts/Read")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myMonitoringStorageAccount")
New-AzRoleDefinition -Role $role
Ostrzeżenie
Uprawnienie ListKeys umożliwia użytkownikowi wyświetlanie listy kluczy konta podstawowego i pomocniczego konta magazynu. Te klucze przyznają użytkownikowi wszystkie podpisane uprawnienia (takie jak odczyt, zapis, tworzenie obiektów blob i usuwanie obiektów blob) we wszystkich podpisanych usługach (blob, queue, table, file) na tym koncie magazynu. Jeśli jest to możliwe, zalecamy używanie sygnatury dostępu współdzielonego konta.
Ograniczanie dostępu do centrów zdarzeń związanych z monitorowaniem
Możesz postępować zgodnie z podobnym wzorcem w centrach zdarzeń, ale najpierw należy utworzyć dedykowaną regułę autoryzacji na potrzeby nasłuchiwania. Jeśli chcesz udzielić dostępu do aplikacji, która musi nasłuchiwać tylko centrów zdarzeń związanych z monitorowaniem, wykonaj następujące kroki:
W portalu utwórz zasady dostępu współdzielonego w centrach zdarzeń utworzonych na potrzeby monitorowania strumieniowego danych tylko z oświadczeniami nasłuchiwania. Możesz na przykład nazwać ją "monitoringReadOnly". Jeśli to możliwe, przekaż ten klucz bezpośrednio użytkownikowi i pomiń następny krok.
Jeśli użytkownik musi uzyskać klucz ad hoc, przyznaj użytkownikowi akcję ListKeys dla tego centrum zdarzeń. Ten krok jest również niezbędny dla użytkowników, którzy muszą ustawić ustawienie diagnostyczne lub profil dziennika, aby przesyłać strumieniowo do centrów zdarzeń. Możesz na przykład utworzyć regułę RBAC platformy Azure:
$role = Get-AzRoleDefinition "Reader" $role.Id = $null $role.Name = "Monitoring Event Hub Listener" $role.Description = "Can get the key to listen to an event hub streaming monitoring data." $role.Actions.Clear() $role.Actions.Add("Microsoft.EventHub/namespaces/authorizationrules/listkeys/action") $role.Actions.Add("Microsoft.EventHub/namespaces/Read") $role.AssignableScopes.Clear() $role.AssignableScopes.Add("/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.ServiceBus/namespaces/mySBNameSpace") New-AzRoleDefinition -Role $role
Monitorowanie w zabezpieczonej sieci wirtualnej
Usługa Azure Monitor wymaga dostępu do zasobów platformy Azure, aby zapewnić włączone usługi. Jeśli chcesz monitorować zasoby platformy Azure, jednocześnie zabezpieczając je przed dostępem do publicznego Internetu, możesz użyć zabezpieczonych kont magazynu.
Dane monitorowania są często zapisywane na koncie magazynu. Możesz upewnić się, że nieautoryzowani użytkownicy nie mogą uzyskać dostępu do danych skopiowanych na konto magazynu. Aby zapewnić dodatkowe zabezpieczenia, można zablokować dostęp sieciowy, aby przyznać dostęp tylko autoryzowanym zasobom i zaufanym usługom firmy Microsoft do konta magazynu, ograniczając konto magazynu do korzystania z wybranych sieci.
Usługa Azure Monitor jest uważana za zaufaną usługę firmy Microsoft. Jeśli zaznaczysz pole wyboru Zezwalaj zaufanym usługom firmy Microsoft na dostęp do tego konta magazynu , usługa Azure Monitor będzie miała dostęp do zabezpieczonego konta magazynu. Następnie włączysz zapisywanie dzienników zasobów usługi Azure Monitor, dziennika aktywności i metryk na koncie magazynu w ramach tych warunków chronionych. To ustawienie umożliwi również usłudze Log Analytics odczytywanie dzienników z zabezpieczonego magazynu.
Aby uzyskać więcej informacji, zobacz Konfigurowanie zapór i sieci wirtualnych usługi Azure Storage.