Journalisation Azure Attestation
Si vous créez une ou plusieurs ressources Azure Attestation, vous devez surveiller comment et quand votre instance d’attestation est accessible, et par qui. Vous pouvez le faire en activant la journalisation pour Microsoft Azure Attestation, qui enregistre les informations dans un compte de stockage Azure que vous fournissez.
Les informations de journalisation seront disponibles jusqu’à 10 minutes après l’opération (dans la plupart des cas, il sera plus rapide). Étant donné que vous fournissez le compte de stockage, vous pouvez sécuriser vos journaux via des contrôles d’accès Azure standard et supprimer les journaux que vous ne souhaitez plus conserver dans votre compte de stockage.
Interpréter vos journaux d’activité Azure Attestation
Lorsque la journalisation est activée, jusqu’à trois conteneurs peuvent être créés automatiquement pour vous dans votre compte de stockage spécifié : insights-logs-auditevent, insights-logs-operational, insights-logs-notprocessed. Il est recommandé d’utiliser uniquement insights-logs-operational et insights-logs-notprocessed. Insights-logs-auditevent a été créé pour fournir un accès anticipé aux journaux pour les clients utilisant VBS. Les améliorations futures apportées à la journalisation se produisent dans insights-logs-operational et insights-logs-notprocessed.
Informations-logs-operational contient des informations génériques sur tous les types TEE.
Insights-logs-notprocessed contient des demandes que le service n’a pas pu traiter, généralement en raison d’en-têtes HTTP mal formés, de corps de messages incomplets ou de problèmes similaires.
Les objets blob individuels sont stockés sous forme de texte en tant qu’objet blob JSON. Examinons un exemple d’entrée du journal :
{
"Time": "2021-11-03T19:33:54.3318081Z",
"resourceId": "/subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.Attestation/attestationProviders/<instance name>",
"region": "EastUS",
"operationName": "AttestSgxEnclave",
"category": "Operational",
"resultType": "Succeeded",
"resultSignature": "400",
"durationMs": 636,
"callerIpAddress": "::ffff:24.17.183.201",
"traceContext": "{\"traceId\":\"e4c24ac88f33c53f875e5141a0f4ce13\",\"parentId\":\"0000000000000000\",}",
"identity": "{\"callerAadUPN\":\"deschuma@microsoft.com\",\"callerAadObjectId\":\"6ab02abe-6ca2-44ac-834d-42947dbde2b2\",\"callerId\":\"deschuma@microsoft.com\"}",
"uri": "https://deschumatestrp.eus.test.attest.azure.net:443/attest/SgxEnclave?api-version=2018-09-01-preview",
"level": "Informational",
"location": "EastUS",
"properties":
{
"failureResourceId": "",
"failureCategory": "None",
"failureDetails": "",
"infoDataReceived":
{
"Headers":
{
"User-Agent": "PostmanRuntime/7.28.4"
},
"HeaderCount": 10,
"ContentType": "application/json",
"ContentLength": 6912,
"CookieCount": 0,
"TraceParent": ""
}
}
}
La plupart de ces champs sont documentés dans le schéma commun de niveau supérieur. Le tableau suivant répertorie les noms et descriptions des champs pour les entrées non incluses dans le schéma commun de niveau supérieur :
Nom du champ | Description |
---|---|
traceContext | Objet blob JSON représentant le contexte de trace W3C |
URI | URI de demande |
Les propriétés contiennent un contexte spécifique d’attestation Azure supplémentaire :
Nom du champ | Description |
---|---|
failureResourceId | ID de ressource du composant qui a entraîné l’échec de la demande |
FailureCategory | Catégorie générale indiquant la catégorie d’un échec de demande. Inclut des catégories telles qu’AzureNetworkingPhysical, AzureAuthorization, etc. |
failureDetails | Informations détaillées sur un échec de demande, le cas échéant |
infoDataReceived | Informations sur la demande reçue du client. Inclut certains en-têtes HTTP, le nombre d’en-têtes reçus, le type de contenu et la longueur du contenu |