Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I Azure Monitor Log Analytics körs frågor vanligtvis i kontexten för en arbetsyta. En arbetsyta kan innehålla data för många resurser, vilket gör det svårt att isolera data för en viss resurs. Resurser kan dessutom skicka data till flera arbetsytor. För att förenkla den här upplevelsen tillåter REST-API:et att köra frågor mot Azure-resurser direkt för sina loggar.
Svarsformat
Azure-resursfrågor skapar samma svarsform som frågor som riktar sig till en Log Analytics-arbetsyta.
URL-format
Överväg en Azure-resurs med en fullständigt kvalificerad identifierare:
/subscriptions/<sid>/resourceGroups/<rg>/providers/<providerName>/<resourceType>/<resourceName>
En förfrågan för den här resursens loggar mot den direkta API-slutpunkten skulle gå till följande URL:
https://api.loganalytics.azure.com/v1/subscriptions/<sid>/resourceGroups/<rg>/providers/<providerName>/<resourceType>/<resourceName>/query
En fråga till samma resurs via ARM använder följande URL:
https://management.azure.com/subscriptions/<sid>/resourceGroups/<rg>/providers/<providerName>/<resourceType>/<resourceName>/providers/microsoft.insights/logs?api-version=2018-03-01-preview
Den här URL:en är i princip den fullständigt kvalificerade Azure-resursen plus tilläggsprovidern: /providers/microsoft.insights/logs.
Tabellåtkomst och RBAC
Resursprovidern microsoft.insights exponerar en ny uppsättning åtgärder för att kontrollera åtkomsten till loggar på tabellnivå. Dessa åtgärder har följande format för en tabell med namnet tableName.
microsoft.insights/logs/<tableName>/read
Den här behörigheten kan läggas till i roller med hjälp av egenskapen actions för att tillåta de angivna tabellerna och egenskapen notActions för att inte tillåta de angivna tabellerna.
Åtkomstkontroll för arbetsyta
Azure-resursfrågor tittar över Log Analytics-arbetsytor som möjliga datakällor. Administratörer kan dock låsa åtkomsten till arbetsytan via RBAC-roller. Som standard returnerar API:et endast resultat från arbetsytor som användaren har behörighet att komma åt.
Arbetsyteadministratörer kan använda Azure-resursfrågor utan att bryta befintliga RBAC. Med en boolesk egenskap på arbetsytan kan användare med läsbehörighet visa loggar för en specifik Azure-resurs, men inte köra frågor mot arbetsytan som innehåller loggarna.
Det här är åtgärden för att begränsa åtkomsten till tabeller på arbetsytans nivå.
microsoft.operationalinsights/workspaces/query/<tableName>/read
Felsvar
Här är en kort lista över vanliga felscenarier när du kör frågor mot Azure-resurser tillsammans med en beskrivning av symptomatiskt beteende.
Azure-resursen finns inte
HTTP/1.1 404 Not Found
{
"error": {
"message": "The resource /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/test-rg/providers/microsoft.storage/storageaccounts/exampleResource was not found",
"code": "ResourceNotFoundError"
}
}
}
Ingen åtkomst till resurs
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"
}
}
}
Inga loggar från resursen eller ingen behörighet till arbetsytan som innehåller dessa loggar
Beroende på den exakta kombinationen av data och behörigheter innehåller svaret antingen 200 utan resulterande data eller genererar ett syntaxfel (4xx-fel).
Partiell åtkomst
Det finns vissa scenarier där en användare kan ha partiell behörighet att komma åt en viss resurs loggar. Så här är fallet om användaren saknar något av följande:
- Åtkomst till arbetsytan som innehåller loggar för Azure-resursen.
- Åtkomst till tabellreferensen i frågan.
De ser ett normalt svar, med datakällor som användaren inte har behörighet att komma åt tyst filtreras bort. Om du vill se information om en användares åtkomst till en Azure-resurs, de underliggande Log Analytics-arbetsytorna och specifika tabeller inkluderar du rubriken Prefer: include-permissions=true i begäranden. Detta gör att svarets JSON inkluderar ett avsnitt som i följande exempel:
{
"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"
}
]
}
}
Nyttolasten resources beskriver ett försök att fråga två virtuella maskiner. VM1 skickar data till arbetsytan WS1, medan VM2 skickar data till två arbetsytor: WS2 och WS3. Dessutom har användaren inte behörighet att fråga efter resursens SecurityEvent tabeller eller SecurityBaseline tabeller.
Nyttolasten dataSources filtrerar resultatet ytterligare genom att beskriva vilka arbetsytor som användaren kan fråga efter. Här har användaren inte behörighet att fråga WS3 och en annan tabell filtreras bort från WS1.
För att tydligt ange vilka data som en sådan fråga skulle returnera:
- Loggar för VM1 i WS1, exklusive tabeller. Skräddarsydd från arbetsytan.
- Loggar för VM2, exklusive SecurityEvent och SecurityBaseline, i WS2.