Sdílet prostřednictvím


Dotazování protokolů pro prostředky Azure

V Azure Monitor Log Analytics se dotazy obvykle spouštějí v kontextu pracovního prostoru. Pracovní prostor může obsahovat data pro mnoho prostředků, což znesnadňuje izolaci dat pro konkrétní prostředek. Prostředky mohou navíc odesílat data do více pracovních prostorů. Pro zjednodušení tohoto prostředí rozhraní REST API umožňuje dotazování prostředků Azure přímo pro jejich protokoly.

Formát odpovědi

Dotazy na prostředky Azure vytvářejí stejný tvar odpovědi jako dotazy, které cílí na pracovní prostor služby Log Analytics.

Formát adresy URL

Zvažte prostředek Azure s plně kvalifikovaným identifikátorem:

/subscriptions/<sid>/resourceGroups/<rg>/providers/<providerName>/<resourceType>/<resourceName>

Dotaz na protokoly tohoto prostředku vůči přímému koncovému bodu rozhraní API by šel na následující adresu URL:

https://api.loganalytics.azure.com/v1/subscriptions/<sid>/resourceGroups/<rg>/providers/<providerName>/<resourceType>/<resourceName>/query

Dotaz na stejný prostředek prostřednictvím ARM by použil následující adresu URL:

https://management.azure.com/subscriptions/<sid>/resourceGroups/<rg>/providers/<providerName>/<resourceType>/<resourceName>/providers/microsoft.insights/logs?api-version=2018-03-01-preview

V podstatě je tato adresa URL plně kvalifikovaným prostředkem Azure a poskytovatelem rozšíření: /providers/microsoft.insights/logs.

Přístup k tabulce a řízení přístupu na základě role

Poskytovatel microsoft.insights prostředků zveřejňuje novou sadu operací pro řízení přístupu k protokolům na úrovni tabulky. Tyto operace mají následující formát tabulky s názvem tableName.

microsoft.insights/logs/<tableName>/read 

Toto oprávnění lze přidat do rolí pomocí actions vlastnosti, aby se povolily zadané tabulky a notActions vlastnost zakázat zadané tabulky.

Řízení přístupu k pracovním prostorům

Dotazy na prostředky Azure se dívají na pracovní prostory služby Log Analytics jako možné zdroje dat. Správci ale můžou uzamknout přístup k pracovnímu prostoru prostřednictvím rolí RBAC. Ve výchozím nastavení rozhraní API vrací pouze výsledky z pracovních prostorů, ke které má uživatel oprávnění pro přístup.

Správci pracovního prostoru můžou používat dotazy na prostředky Azure bez přerušení stávajícího řízení přístupu na základě role. Logická vlastnost pracovního prostoru umožňuje uživatelům s oprávněními ke čtení zobrazit protokoly pro konkrétní prostředek Azure, ale ne dotazovat se na pracovní prostor, který tyto protokoly obsahuje.

Toto je akce pro přístup k tabulkám na úrovni pracovního prostoru:

microsoft.operationalinsights/workspaces/query/<tableName>/read

Chybové odpovědi

Tady je stručný přehled běžných scénářů selhání při dotazování prostředků Azure spolu s popisem symptomatického chování.

Prostředek Azure neexistuje.

    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" 
        }
    }
}

Žádný přístup k prostředku

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"
        }
    } 
}

Žádné protokoly z prostředku nebo žádná oprávnění k pracovnímu prostoru obsahujícímu tyto protokoly

V závislosti na přesné kombinaci dat a oprávnění odpověď obsahuje hodnotu 200 bez výsledných dat nebo vyvolá chybu syntaxe (chyba 4xx).

Částečný přístup

Existuje několik scénářů, kdy uživatel může mít částečná oprávnění pro přístup k protokolům konkrétního prostředku. To je případ, kdy uživatel chybí:

  • Přístup k pracovnímu prostoru obsahujícímu protokoly pro prostředek Azure
  • Přístup k odkazům na tabulky v dotazu

Uvidí normální odpověď se zdroji dat, ke kterým uživatel nemá oprávnění k tichému odfiltrování. Pokud chcete zobrazit informace o přístupu uživatele k prostředku Azure, podkladovým pracovním prostorům služby Log Analytics a ke konkrétním tabulkám, zahrňte hlavičku Prefer: include-permissions=true s požadavky. To způsobí, že JSON odpovědi bude obsahovat oddíl podobný následujícímu příkladu:

{ 
    "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" 
            } 
        ] 
    } 
}

Datová resources část popisuje pokus o dotazování dvou virtuálních počítačů. VM1 odesílá data do pracovního prostoru WS1, zatímco VM2 odesílá data do dvou pracovních prostorů: WS2 a WS3. Uživatel navíc nemá oprávnění k dotazování na SecurityEvent prostředky nebo SecurityBaseline tabulky.

Datová dataSources část filtruje výsledky dále popisem pracovních prostorů, které může uživatel dotazovat. V této části uživatel nemá oprávnění k dotazování WS3 a jiná tabulka vyfiltrovaná z WS1.

Pokud chcete jasně uvést, jaká data by takový dotaz vrátil:

  • Protokoly pro virtuální počítač 1 ve WS1 s výjimkou tabulek Vlastní z pracovního prostoru.
  • Protokoly pro virtuální počítač 2 s výjimkou SecurityEvent a SecurityBaseline ve WS2