Wykonywanie zapytań dotyczących dzienników dla zasobów platformy Azure
W usłudze Azure Monitor Log Analytics zapytania są zwykle wykonywane w kontekście obszaru roboczego. Obszar roboczy może zawierać dane dla wielu zasobów, co utrudnia izolowanie danych dla określonego zasobu. Zasoby mogą dodatkowo wysyłać dane do wielu obszarów roboczych. Aby uprościć to środowisko, interfejs API REST umożliwia wykonywanie zapytań dotyczących zasobów platformy Azure bezpośrednio dla ich dzienników.
Format odpowiedzi
Zapytania zasobów platformy Azure generują taki sam kształt odpowiedzi , jak zapytania przeznaczone dla obszaru roboczego usługi Log Analytics.
Format adresu URL
Rozważ zasób platformy Azure z w pełni kwalifikowanym identyfikatorem:
/subscriptions/<sid>/resourceGroups/<rg>/providers/<providerName>/<resourceType>/<resourceName>
Zapytanie dotyczące dzienników tego zasobu względem bezpośredniego punktu końcowego interfejsu API spowoduje przejście do następującego adresu URL:
https://api.loganalytics.azure.com/v1/subscriptions/<sid>/resourceGroups/<rg>/providers/<providerName>/<resourceType>/<resourceName>/query
Zapytanie do tego samego zasobu za pośrednictwem usługi ARM będzie używać następującego adresu URL:
https://management.azure.com/subscriptions/<sid>/resourceGroups/<rg>/providers/<providerName>/<resourceType>/<resourceName>/providers/microsoft.insights/logs?api-version=2018-03-01-preview
Zasadniczo ten adres URL jest w pełni kwalifikowanym zasobem platformy Azure oraz dostawcą rozszerzenia: /providers/microsoft.insights/logs
.
Dostęp do tabel i kontrola dostępu oparta na rolach
Dostawca microsoft.insights
zasobów uwidacznia nowy zestaw operacji na potrzeby kontrolowania dostępu do dzienników na poziomie tabeli. Te operacje mają następujący format dla tabeli o nazwie tableName
.
microsoft.insights/logs/<tableName>/read
To uprawnienie można dodać do ról przy użyciu właściwości "actions", aby zezwolić określonym tabelom i właściwości "notActions" na nie zezwalanie określonym tabelom.
Kontrola dostępu do obszaru roboczego
Obecnie zapytania dotyczące zasobów platformy Azure przejrzyją obszary robocze usługi Log Analytics jako możliwe źródła danych. Jednak administratorzy mogą zablokować dostęp do obszaru roboczego za pośrednictwem ról RBAC. Domyślnie interfejs API zwraca tylko wyniki z obszarów roboczych, do których użytkownik ma uprawnienia dostępu.
Administratorzy obszaru roboczego mogą chcieć korzystać z zapytań zasobów platformy Azure bez przerywania istniejącej kontroli dostępu opartej na rolach, tworząc scenariusz, w którym użytkownik może mieć dostęp do odczytu dzienników dla zasobu platformy Azure, ale może nie mieć uprawnień do wykonywania zapytań dotyczących obszaru roboczego zawierającego te dzienniki. Zasób administratorów obszaru roboczego, aby wyświetlić dzienniki za pośrednictwem właściwości logicznej w obszarze roboczym. Dzięki temu użytkownicy mogą uzyskiwać dostęp do dzienników odnoszących się do docelowego zasobu platformy Azure w określonym obszarze roboczym, o ile użytkownik ma dostęp do odczytu dzienników dla docelowego zasobu platformy Azure.
Jest to akcja określania zakresu dostępu do tabel na poziomie obszaru roboczego:
microsoft.operationalinsights/workspaces/query/<tableName>/read
Odpowiedzi na błędy
Poniżej znajduje się krótka lista typowych scenariuszy awarii podczas wykonywania zapytań dotyczących zasobów platformy Azure wraz z opisem zachowania objawowego.
Zasób platformy Azure nie istnieje
HTTP/1.1 404 Not Found
{
"error": {
"message": "The resource /subscriptions/7fd50ca7-1e78-4144-ab9c-0ec2faafa046/resourcegroups/test-rg/providers/microsoft.storage/storageaccounts/exampleResource was not found",
"code": "ResourceNotFoundError"
}
}
Brak dostępu do zasobu
HTTP/1.1 403 Forbidden
{
"error": {
"message": "The provided credentials have insufficient access to perform the requested operation",
"code": "InsufficientAccessError",
"innererror": {
"code": "AuthorizationFailedError",
"message": "User '92eba38a-70da-42b0-ab83-ffe82cce658f' does not have access to read logs for this resource"
}
}
Brak dzienników z zasobu lub brak uprawnień do obszaru roboczego zawierającego te dzienniki
W zależności od dokładnej kombinacji danych i uprawnień odpowiedź będzie zawierać wartość 200 bez danych wynikowych lub zgłosi błąd składniowy (błąd 4xx).
Dostęp częściowy
Istnieją pewne scenariusze, w których użytkownik może mieć częściowe uprawnienia dostępu do dzienników określonego zasobu. Gdy brakuje użytkownika:
- Dostęp do obszaru roboczego zawierającego dzienniki dla zasobu platformy Azure
- Dostęp do odwołań do tabel w zapytaniu
Zobaczy on normalną odpowiedź ze źródłami danych, do których użytkownik nie ma uprawnień dostępu w trybie dyskretnym. Aby wyświetlić informacje o dostępie użytkownika do zasobu platformy Azure, źródłowych obszarach roboczych usługi Log Analytics i określonych tabelach, dołącz nagłówek Prefer: include-permissions=true
do żądań. Spowoduje to dołączenie sekcji w formacie JSON odpowiedzi w następujący sposób:
{
"permissions": {
"resources": [
{
"resourceId": "/subscriptions/<id>/resourceGroups<id>/providers/Microsoft.Compute/virtualMachines/VM1",
"dataSources": [
"/subscriptions/<id>/resourceGroups<id>/providers/Microsoft.OperationalInsights/workspaces/WS1"
]
},
{
"resourceId": "/subscriptions/<id>/resourceGroups<id>/providers/Microsoft.Compute/virtualMachines/VM2",
"denyTables": [
"SecurityEvent",
"SecurityBaseline"
],
"dataSources": [
"/subscriptions/<id>/resourceGroups<id>/providers/Microsoft.OperationalInsights/workspaces/WS2",
"/subscriptions/<id>/resourceGroups<id>/providers/Microsoft.OperationalInsights/workspaces/WS3"
]
}
],
"dataSources": [
{
"resourceId": "/subscriptions/<id>/resourceGroups<id>/providers/Microsoft.OperationalInsights/workspaces/WS1",
"denyTables": [
"Tables.Custom"
]
},
{
"resourceId": "/subscriptions/<id>/resourceGroups<id>/providers/Microsoft.OperationalInsights/workspaces/WS2"
}
]
}
}
resources
Ładunek opisuje próbę wykonywania zapytania o dwie maszyny wirtualne. Maszyna WIRTUALNa VM1 wysyła dane do obszaru roboczego WS1, a maszyna WIRTUALNa VM2 wysyła dane do dwóch obszarów roboczych: WS2 i WS3. Ponadto użytkownik nie ma uprawnień do wykonywania zapytań SecurityEvent
dotyczących tabel lub SecurityBaseline
dla zasobu.
dataSources
Ładunek filtruje wyniki dalej, opisując, które obszary robocze użytkownik może wykonywać zapytania. W tym miejscu użytkownik nie ma uprawnień do wykonywania zapytań w usłudze WS3 i dodatkowej tabeli odfiltrowanej z usługi WS1.
Aby wyraźnie określić, jakie dane zwróci takie zapytanie:
- Dzienniki maszyny wirtualnej VM1 w programie WS1 z wyłączeniem tabel.Custom z obszaru roboczego.
- Dzienniki dla maszyny wirtualnej VM2, z wyłączeniem zabezpieczeńEvent i SecurityBaseline, w programie WS2.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla