Registro em log do Atestado do Azure

Se você criar um ou mais recursos do Atestado do Azure, você vai querer monitorar como e quando sua instância de atestado é acessada e por quem. Você pode fazer isso habilitando o log para o Atestado do Microsoft Azure, que salva informações em uma conta de armazenamento do Azure que você fornece.

As informações de registro estarão disponíveis até 10 minutos após a operação (na maioria dos casos, será mais rápido). Como você fornece a conta de armazenamento, pode proteger seus logs por meio de controles de acesso padrão do Azure e excluir logs que não deseja mais manter em sua conta de armazenamento.

Interpretar seus logs de Atestado do Azure

Quando o registro em log está habilitado, até três contêineres podem ser criados automaticamente para você em sua conta de armazenamento especificada: insights-logs-auditevent, insights-logs-operational, insights-logs-notprocessed. É recomendável usar apenas insights-logs-operational e insights-logs-notprocessados. insights-logs-auditevent foi criado para fornecer acesso antecipado aos logs para clientes que usam a VBS. Melhorias futuras no log ocorrerão no insights-logs-operational e insights-logs-notprocessados.

Insights-logs-operational contém informações genéricas em todos os tipos de TEE.

Insights-logs-notprocessed contém solicitações que o serviço não pôde processar, geralmente devido a cabeçalhos HTTP malformados, corpos de mensagens incompletos ou problemas semelhantes.

Os blobs individuais são armazenados como texto, formatados como um blob JSON. Vamos examinar um exemplo de entrada de log:

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

A maioria desses campos está documentada no esquema comum de nível superior. A tabela a seguir lista os nomes de campo e as descrições das entradas não incluídas no esquema comum de nível superior:

Nome do campo Descrição
traceContext Blob do JSON que representa o contexto de rastreamento do W3C
uri URI da solicitação

As propriedades contêm contexto específico de atestado do Azure adicional:

Nome do campo Descrição
failureResourceId ID do recurso do componente que resultou em falha na solicitação
failureCategory Categoria ampla que indica a categoria de uma falha de solicitação. Inclui categorias como AzureNetworkingPhysical, AzureAuthorization etc.
failureDetails Informações detalhadas sobre uma falha de solicitação, se disponível
infoDataReceived Informações sobre a solicitação recebida do cliente. Inclui alguns cabeçalhos HTTP, o número de cabeçalhos recebidos, o tipo de conteúdo e o comprimento do conteúdo

Próximas etapas