Ajánlott eljárások az Azure Blob Storage monitorozásához

Ez a cikk a gyakori tárolási monitorozási forgatókönyvek gyűjteményét tartalmazza, és az ajánlott eljárásokkal kapcsolatos útmutatást nyújt az ezek végrehajtásához.

Identify storage accounts with no or low use

A Storage Elemzések egy irányítópult az Azure Storage-metrikák és -naplók tetején. A Storage Elemzések használatával megvizsgálhatja az összes fiók tranzakciós mennyiségét és kapacitását. Ezek az információk segíthetnek eldönteni, hogy mely fiókokat szeretné kivonni. A Storage Elemzések konfigurálásához lásd: A tárolási szolgáltatás monitorozása az Azure Monitor Storage-elemzésekkel.

Tranzakciómennyiség elemzése

Az Azure Monitor Storage Elemzések nézetében növekvő sorrendbe rendezheti a fiókokat a Tranzakciók oszlop használatával. Az alábbi képen egy alacsony tranzakciómennyiségű fiók látható a megadott időszakban.

transaction volume in Storage Insights

A fiókhivatkozásra kattintva további információkat tudhat meg ezekről a tranzakciókról. Ebben a példában a legtöbb kérés a Blob Storage szolgáltatáshoz történik.

transaction by service type

Annak megállapításához, hogy milyen típusú kérelmeket hajtanak végre, részletezze a Tranzakciók API-névdiagram alapján.

Storage transaction APIs

Ebben a példában minden kérés felsorolja a fióktulajdonságok adatait tartalmazó műveleteket vagy kéréseket. Nincsenek olvasási és írási tranzakciók. Ez azt eredményezheti, hogy a fiókot nem használják jelentős mértékben.

Használt kapacitás elemzése

Az Azure Monitor Storage Elemzések nézetÉnek Kapacitás lapján növekvő sorrendbe rendezheti a fiókokat a használt kapacitásoszlop használatával. Az alábbi képen egy olyan fiók látható, amelynek kapacitása kisebb, mint a többi fiók.

Used storage capacity

A használt kapacitáshoz társított blobok vizsgálatához használhatja a Storage Explorert. Nagy számú blob esetén érdemes lehet blobleltár-szabályzattal létrehozni egy jelentést.

Tároló használatának monitorozása

Ha az ügyfél adatait tároló alapján particionálja, akkor nyomon követheti, hogy az egyes ügyfelek mennyi kapacitást használnak. Az Azure Storage blobleltárával leltározhatja a méretadatokat tartalmazó blobokat. Ezután összesítheti a méretet és a darabszámot a tároló szintjén. Példa: Blobok számának és teljes méretének kiszámítása tárolónként az Azure Storage-leltár használatával.

A forgalmat a tároló szintjén is kiértékelheti a naplók lekérdezésével. A Log Analitikus lekérdezések írásáról további információt a Log Analyticsben talál. A tárolási naplók sémájáról további információt az Azure Blob Storage monitorozási adatreferenciájában talál.

Az alábbi lekérdezés beolvassa az olvasási tranzakciók számát és az egyes tárolókon beolvasott bájtok számát.

StorageBlobLogs
| where OperationName  == "GetBlob"
| extend ContainerName = split(parse_url(Uri).Path, "/")[1]
| summarize ReadSize = sum(ResponseBodySize), ReadCount = count() by tostring(ContainerName)

Az alábbi lekérdezés egy hasonló lekérdezést használ az írási műveletek információinak lekéréséhez.

StorageBlobLogs
| where OperationName == "PutBlob" or
  OperationName == "PutBlock" or
  OperationName == "PutBlockList" or
  OperationName == "AppendBlock" or
  OperationName == "SnapshotBlob" or
  OperationName == "CopyBlob" or
  OperationName == "SetBlobTier"
| extend ContainerName = split(parse_url(Uri).Path, "/")[1]
| summarize WriteSize = sum(RequestBodySize), WriteCount = count() by tostring(ContainerName)

A fenti lekérdezés több művelet nevére hivatkozik, mert egynél több művelet is írási műveletnek számíthat. Ha többet szeretne megtudni arról, hogy mely műveletek minősülnek olvasási és írási műveleteknek, tekintse meg az Azure Blob Storage díjszabását vagy az Azure Data Lake Storage díjszabását.

Audit account activity

Sok esetben a tárfiókok tevékenységeit kell naplóznia a biztonság és a megfelelőség érdekében. A tárfiókokon végzett műveletek két kategóriába sorolhatók: vezérlősík és adatsík.

A vezérlősík-művelet bármely Azure Resource Manager-kérés, amely egy tárfiók létrehozására vagy egy meglévő tárfiók tulajdonságának frissítésére kéri. További információ: Azure Resource Manager.

Az adatsík-művelet a tárfiók adatain végzett olyan művelet, amely a tárolási szolgáltatás végpontjára irányuló kérésből ered. Az adatsík-műveletet például akkor hajtja végre a rendszer, ha feltölt egy blobot egy tárfiókba, vagy letölt egy blobot egy tárfiókból. További információ: Azure Storage API.

A szakasz bemutatja, hogyan azonosíthatja a vezérlő- és adatsík-műveletek "mikor", "ki", "what" és "how" adatait.

A vezérlősík műveleteinek naplózása

A Resource Manager-műveleteket az Azure-tevékenységnapló rögzíti. A tevékenységnapló megtekintéséhez nyissa meg a tárfiókot az Azure Portalon, majd válassza a Tevékenységnapló lehetőséget.

Activity Log

Nyisson meg minden naplóbejegyzést a tevékenységet leíró JSON megtekintéséhez. A következő JSON egy vezérlősík-művelet "mikor", "what" és "how" információját mutatja be:

Activity Log JSON

A "who" információk elérhetősége a vezérlősík-művelet végrehajtásához használt hitelesítési módszertől függ. Ha az engedélyezést egy Microsoft Entra biztonsági tag végezte el, az adott biztonsági tag objektumazonosítója is megjelenik ebben a JSON-kimenetben (például: "http://schemas.microsoft.com/identity/claims/objectidentifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"). Mivel előfordulhat, hogy nem mindig jelenik meg más identitással kapcsolatos információ, például e-mail-cím vagy név, az objektumazonosító mindig a legjobb módszer a biztonsági tag egyedi azonosítására.

A biztonsági tag rövid nevét az objektumazonosító értékének figyelembe vételével és a biztonsági tag megkeresésével találja meg az Azure Portal Microsoft Entra ID lapján. Az alábbi képernyőképen egy keresési eredmény látható a Microsoft Entra-azonosítóban.

Search Microsoft Entra ID

Adatsík-műveletek naplózása

Az adatsík-műveletek a Storage Azure-erőforrásnaplóiban vannak rögzítve. A diagnosztikai beállítás konfigurálható úgy, hogy naplókat exportáljon a Log Analytics-munkaterületre natív lekérdezési élmény érdekében.

Íme egy Log Analytics-lekérdezés, amely lekéri a "mikor", a "who", a "what" és a "how" adatokat a naplóbejegyzések listájában.

StorageBlobLogs
| where TimeGenerated > ago(3d)
| project TimeGenerated, AuthenticationType, RequesterObjectId, OperationName, Uri

A napló "mikor" részében a TimeGenerated mező azt mutatja, hogy mikor lett rögzítve a naplóbejegyzés.

Az audit "what" része esetén a Uri mező azt mutatja, hogy az elem módosult vagy beolvasva lett.

Az audit "how" részében a OperationName mező azt mutatja, hogy melyik műveletet hajtották végre.

Tipp.

Ha például azt gyanítja, hogy egy blobot vagy tárolót véletlenül töröltek, adjon hozzá egy where záradékot, amely csak olyan naplóbejegyzéseket ad vissza, amelyekben a blob törlése vagy a OperationName tároló törlése beállítás van beállítva. Az audit "who" részében látható, AuthenticationType hogy milyen típusú hitelesítést használtak a kérések teljesítéséhez. Ez a mező megjelenítheti az Azure Storage által támogatott hitelesítési típusokat, beleértve a fiókkulcsok, SAS-jogkivonatok vagy Microsoft Entra-hitelesítés használatát.

Ha a kérés a Microsoft Entra-azonosítóval van engedélyezve, a RequestObjectId mezővel azonosíthatja a "ki" azonosítót. A megosztott kulcs és SAS-hitelesítés nem biztosít lehetőséget az egyéni identitások naplózására. Ezekben az esetekben a callerIPAddress mezők segíthetnek userAgentHeader a művelet forrásának azonosításában. Ha SAS-jogkivonatot használtak egy művelet engedélyezéséhez, azonosíthatja a jogkivonatot, és ha a jogkivonatokat a jogkivonat címzettjeihez rendelte le a végén, meghatározhatja, hogy melyik felhasználó, szervezet vagy alkalmazás hajtotta végre a műveletet. Lásd : A kérelem engedélyezéséhez használt SAS-jogkivonat azonosítása.

A kérés engedélyezéséhez használt biztonsági tag azonosítása

Ha egy kérés hitelesítése a Microsoft Entra-azonosítóval történt, a RequesterObjectId mező biztosítja a legmegbízhatóbb módot a biztonsági tag azonosítására. A biztonsági tag rövid nevét a mező értékének RequesterObjectId figyelembe vételével és a biztonsági tag megkeresésével találja meg az Azure Portal Microsoft Entra ID oldalán. Az alábbi képernyőképen egy keresési eredmény látható a Microsoft Entra-azonosítóban.

Search Microsoft Entra ID

Bizonyos esetekben előfordulhat, hogy a naplókban egy egyszerű felhasználónév vagy egyszerű felhasználónév jelenik meg. Ha például a biztonsági tag Egy Microsoft Entra-felhasználó, az UPN valószínűleg megjelenik. Más típusú biztonsági tagok, például a felhasználó által hozzárendelt felügyelt identitások, vagy bizonyos esetekben, például a Microsoft Entra-bérlők közötti hitelesítés esetén az UPN nem jelenik meg a naplókban.

Ez a lekérdezés az OAuth biztonsági tagok által végrehajtott összes olvasási műveletet megjeleníti.

StorageBlobLogs
| where TimeGenerated > ago(3d)
  and OperationName == "GetBlob"
  and AuthenticationType == "OAuth"
| project TimeGenerated, AuthenticationType, RequesterObjectId, OperationName, Uri

A megosztott kulcs és SAS-hitelesítés nem biztosít lehetőséget az egyéni identitások naplózására. Ezért ha javítani szeretné az identitáson alapuló naplózási képességet, javasoljuk, hogy váltson a Microsoft Entra-azonosítóra, és tiltsa meg a megosztott kulcs- és SAS-hitelesítést. A megosztott kulcs és SAS-hitelesítés megelőzésének módjáról az Azure Storage-fiók megosztott kulcsának engedélyezésének megakadályozása című témakörben olvashat. A Microsoft Entra ID használatának megkezdéséhez lásd : Blobok hozzáférésének engedélyezése a Microsoft Entra ID használatával.

A kérelem engedélyezéséhez használt SAS-jogkivonat azonosítása

AZ SAS-jogkivonattal engedélyezett műveletekről kérdezhet le. Ez a lekérdezés például az összes olyan írási műveletet visszaadja, amelyet SAS-jogkivonat használatával engedélyeztek.

StorageBlobLogs
| where TimeGenerated > ago(3d)
  and OperationName == "PutBlob"
  and AuthenticationType == "SAS"
| project TimeGenerated, AuthenticationType, AuthenticationHash, OperationName, Uri

Biztonsági okokból az SAS-jogkivonatok nem jelennek meg a naplókban. Az SAS-jogkivonat SHA-256 kivonata azonban megjelenik a AuthenticationHash lekérdezés által visszaadott mezőben.

Ha több SAS-jogkivonatot osztott ki, és tudni szeretné, hogy mely SAS-jogkivonatokat használja, az egyes SAS-jogkivonatokat SHA-256 kivonattá kell konvertálnia, majd ezt a kivonatot a naplókban megjelenő kivonatértékhez kell hasonlítani.

Először dekódolja az egyes SAS-jogkivonat-sztringeket. Az alábbi példa egy SAS-jogkivonat-sztringet dekódol a PowerShell használatával.

[uri]::UnescapeDataString("<SAS token goes here>")

Ezután átadhatja ezt a sztringet a Get-FileHash PowerShell-parancsmagnak. Példa: 4. példa: Sztring kivonatának kiszámítása.

Másik lehetőségként a dekódolt sztringet átadhatja a hash_sha256() függvénynek egy lekérdezés részeként az Azure Data Explorer használatakor.

Az SAS-jogkivonatok nem tartalmaznak identitásadatokat. A felhasználók vagy szervezetek tevékenységeinek nyomon követésének egyik módja a felhasználók vagy szervezetek különböző SAS-jogkivonatokra való leképezése.

A ritkán használt lekérdezések költségeinek optimalizálása

A logokat a Log Analyticsbe exportálhatja a natív lekérdezési képességek érdekében. Ha a tárfiókon jelentős tranzakciók vannak, a naplók Log Analytics-lel való használatának költsége magas lehet. További információkért tekintse meg az Azure Log Analytics díjszabását. Ha csak alkalmanként szeretne naplókat lekérdezni (például a megfelelőségi naplózás lekérdezési naplóit), fontolja meg a teljes költség csökkentését a naplók tárfiókba való exportálásával, majd egy kiszolgáló nélküli lekérdezési megoldás használatával a naplóadatokon, például az Azure Synapse-on.

Az Azure Synapse használatával kiszolgáló nélküli SQL-készletet hozhat létre a naplóadatok lekérdezéséhez, ha szükséges. Ez jelentősen csökkentheti a költségeket.

  1. Naplók exportálása tárfiókba. További információ: Diagnosztikai beállítás létrehozása.

  2. Synapse-munkaterület létrehozása és konfigurálása. További információ : Rövid útmutató: Synapse-munkaterület létrehozása.

  3. Query logs. További információ: JSON-fájlok lekérdezése kiszolgáló nélküli SQL-készlet használatával az Azure Synapse Analyticsben.

    Here's an example:

     select
         JSON_VALUE(doc, '$.time') AS time,
         JSON_VALUE(doc, '$.properties.accountName') AS accountName,
         JSON_VALUE(doc, '$.identity.type') AS identityType,
         JSON_VALUE(doc, '$.identity.requester.objectId') AS requesterObjectId,
         JSON_VALUE(doc, '$.operationName') AS operationName,
         JSON_VALUE(doc, '$.callerIpAddress') AS callerIpAddress,
         JSON_VALUE(doc, '$.uri') AS uri
         doc
     from openrowset(
             bulk 'https://demo2uswest4log.blob.core.windows.net/insights-logs-storageread/resourceId=/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/mytestrp/providers/Microsoft.Storage/storageAccounts/demo2uswest/blobServices/default/y=2021/m=03/d=19/h=*/m=*/PT1H.json',
             format = 'csv', fieldterminator ='0x0b', fieldquote = '0x0b'
         ) with (doc nvarchar(max)) as rows
     order by JSON_VALUE(doc, '$.time') desc
    
    

Kapcsolódó információk