Coletar registros do Gerenciamento de APIs do Azure
Versão do analisador:1.0
Este documento explica como criar um feed do Hub de Eventos do Azure para ingerir registros do Azure API Management no Google Security Operations.
O Azure API Management é uma plataforma de gerenciamento híbrida e multicloud para APIs em todos os ambientes. Ela ajuda as organizações a publicar APIs para desenvolvedores externos, parceiros e internos, liberando o potencial dos dados e serviços. O gerenciamento de API oferece ferramentas para descoberta de API, funcionalidade de gateway, políticas de segurança, análise e engajamento de desenvolvedores. Os registros de diagnóstico capturam informações detalhadas sobre as operações do gateway de API, incluindo solicitações, respostas e erros.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos:
- Uma instância do Google SecOps
- Acesso privilegiado ao portal do Microsoft Azure com permissões para:
- Criar namespaces dos Hubs de Eventos
- Criar hubs de eventos
- Configurar as configurações de diagnóstico para o gerenciamento de APIs do Azure
- Gerenciar políticas de acesso
Uma instância do serviço de gerenciamento de APIs do Azure
Criar namespace do Hub de Eventos
Um namespace dos Hubs de Eventos é um contêiner de gerenciamento para um ou mais Hubs de Eventos.
- No portal do Azure, pesquise Hubs de Eventos.
- Clique em Criar.
Informe os seguintes detalhes de configuração:
Configuração Valor Assinatura Selecione sua assinatura do Azure Grupo de recursos Selecionar ou criar Nome do namespace Insira um nome exclusivo (por exemplo, secops-apim-eventhub).Local Selecione a região (por exemplo, East US).Nível de preços Padrão (recomendado para produção) Unidades de capacidade de processamento Comece com 1 e ative o recurso de expansão automática (recomendado) Clique em Revisar + criar.
Revise a visão geral e clique em Criar.
Aguarde a conclusão da implantação (1 a 2 minutos).
Criar Hub de Eventos
- Depois que o namespace for implantado, acesse o namespace do Hub de Eventos.
- Na navegação à esquerda, selecione Hubs de eventos em Entidades.
- Clique em + Hub de eventos.
Informe os seguintes detalhes de configuração:
Configuração Valor Nome Insira um nome exclusivo (por exemplo, apim-logs).Contagem de partições 40 (recomendado para escalonamento ideal do Google SecOps) Retenção de mensagens 7 dias (mínimo recomendado) Capturar Desativado (não é necessário para o Google SecOps) Clique em Criar.
Receber a string de conexão do Hub de Eventos
O Google SecOps exige uma string de conexão para autenticar o Hub de eventos.
Opção A: string de conexão no nível do namespace (recomendada)
- Acesse o namespace do Hub de Eventos.
- Na navegação à esquerda, selecione Políticas de acesso compartilhado em Configurações.
- Clique na política padrão RootManageSharedAccessKey.
- Copie a String de conexão – chave primária.
- Salve essa string de conexão com segurança.
Exemplo:
Original: Endpoint=sb://secops-apim-eventhub.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==;EntityPath=apim-logs Remove EntityPath: Endpoint=sb://secops-apim-eventhub.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==
Opção B: string de conexão no nível do Hub de Eventos
- Acesse o Hub de Eventos (não o namespace).
- Na navegação à esquerda, selecione Políticas de acesso compartilhado em Configurações.
- Clique em + Adicionar para criar uma política.
- Informe os seguintes detalhes de configuração:
- Nome da política: insira um nome descritivo (por exemplo,
chronicle-read). - Permissões: selecione Ouvir somente (acesso somente leitura).
- Nome da política: insira um nome descritivo (por exemplo,
- Clique em Criar.
- Clique na política recém-criada.
- Copie a String de conexão – chave primária.
Salve essa string de conexão com segurança.
Configurar o gerenciamento de APIs do Azure para transmitir para o Hub de Eventos
- No portal do Azure, pesquise Serviços de gerenciamento de API.
- Selecione a instância do serviço de gerenciamento de API.
- Na navegação à esquerda, selecione Configurações de diagnóstico em Monitoring.
- Clique em + Adicionar configuração de diagnóstico.
- Informe os seguintes detalhes de configuração:
- Nome da configuração de diagnóstico: insira um nome descritivo (por exemplo,
apim-to-secops). - Na seção Registros, selecione as seguintes categorias:
- GatewayLogs: registros de solicitação e resposta do gateway de API.
- WebSocketConnectionLogs: registros de conexão WebSocket (se aplicável)
- DeveloperPortalAuditLogs: registros de auditoria do portal do desenvolvedor (se aplicável)
- GatewayLlmLogs: registros do gateway de IA generativa (se aplicável)
- GatewayMCPLogs: registros do servidor do Protocolo de Contexto de Modelo (MCP), se aplicável.
- Na seção Detalhes do destino, marque a caixa de seleção Transmitir para um hub de eventos.
- Assinatura: selecione a assinatura que contém o namespace do Hub de Eventos.
- Namespace do hub de eventos: selecione o namespace que você criou anteriormente (por exemplo,
secops-apim-eventhub). - Nome do hub de eventos: selecione o hub de eventos que você criou (por exemplo,
apim-logs). - Nome da política do hub de eventos: selecione RootManageSharedAccessKey ou uma política personalizada com permissões de envio.
- Nome da configuração de diagnóstico: insira um nome descritivo (por exemplo,
Clique em Salvar.
(Opcional) Configurar o Azure Blob Storage para criação de pontos de verificação
O Google SecOps pode usar o Armazenamento de Blobs do Azure para armazenar pontos de verificação do Hub de Eventos, que rastreiam quais eventos foram processados. Isso evita a ingestão duplicada se o feed for interrompido temporariamente.
Criar uma conta de armazenamento para checkpointing
- No portal do Azure, pesquise Contas de armazenamento.
- Clique em Criar.
Informe os seguintes detalhes de configuração:
Configuração Valor Assinatura Selecione sua assinatura do Azure Grupo de recursos Use o mesmo grupo de recursos que o Hub de Eventos Nome da conta de armazenamento Insira um nome exclusivo (por exemplo, secopsapimcheckpoint).Região A mesma região do Hub de Eventos Desempenho Padrão Redundância LRS (armazenamento com redundância local) Clique em Revisar + criar.
Clique em Criar.
Criar contêiner de blob
- Acesse a conta de armazenamento que você acabou de criar.
- Na navegação à esquerda, selecione Contêineres em Armazenamento de dados.
- Clique em + Contêiner.
- Informe os seguintes detalhes de configuração:
- Nome: insira
checkpoints. - Nível de acesso público: particular (sem acesso anônimo)
- Nome: insira
- Clique em Criar.
Receber credenciais da conta de armazenamento
- Na conta de armazenamento, selecione Chaves de acesso em Segurança + rede.
- Clique em Mostrar chaves.
- Copie e salve:
- Nome da conta de armazenamento: o nome da sua conta de armazenamento.
- Chave 1: o valor da chave de acesso
Você vai fornecer esses valores ao criar o feed do Google SecOps.
(Opcional) Criar um grupo de consumidores dedicado
Por padrão, o Hub de Eventos fornece um grupo de consumidores chamado $Default. Para ambientes de produção, recomendamos criar um grupo de consumidores dedicado para o Google SecOps.
- Acesse o Hub de Eventos (não o namespace).
- Na navegação à esquerda, selecione Grupos de consumidores em Entidades.
- Clique em + Grupo de consumidores.
- Informe os seguintes detalhes de configuração:
- Nome: insira um nome descritivo, por exemplo,
chronicle.
- Nome: insira um nome descritivo, por exemplo,
Clique em Criar.
Configurar um feed no Google SecOps para ingerir registros do Azure API Management
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed (por exemplo,
Azure API Management Logs). - Selecione Hub de eventos do Microsoft Azure como o Tipo de origem.
- Selecione Gerenciamento de APIs do Azure como o Tipo de registro.
- Clique em Próxima.
Especifique valores para os seguintes parâmetros de entrada:
String de conexão do hub de eventos: insira a string de conexão do hub de eventos que você capturou anteriormente.
Se você estiver usando uma string de conexão no nível do namespace:
- Remova o parâmetro
EntityPath. - Você também precisa fornecer o Nome do hub de eventos no próximo campo.
- Remova o parâmetro
Se estiver usando uma string de conexão no nível do hub de eventos:
- Use a string de conexão como está (inclui
EntityPath) - O campo Nome do hub de eventos pode ser deixado em branco.
- Use a string de conexão como está (inclui
Nome do hub de eventos: insira o nome do hub de eventos (por exemplo,
apim-logs).- Obrigatório se você estiver usando uma string de conexão no nível do namespace.
- Opcional se você estiver usando uma string de conexão no nível do hub de eventos.
Grupo de consumidores (opcional): insira o nome do grupo.
- Deixe em branco para usar o grupo de consumidores padrão
$Default. - Se você criou um grupo de consumidores dedicado, insira o nome dele (por exemplo,
chronicle).
- Deixe em branco para usar o grupo de consumidores padrão
Nome do contêiner do Armazenamento de Blobs (opcional): para fazer checkpointing, insira o nome do contêiner (por exemplo,
checkpoints).
Se você estiver fornecendo armazenamento de blobs para checkpointing:
- Nome da conta de armazenamento do Azure: insira o nome da conta de armazenamento da configuração de checkpoint.
Chave da conta de armazenamento do Azure: insira a chave de acesso da configuração de checkpoint.
Namespace do recurso: o namespace do recurso
Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed
Clique em Próxima.
Revise a nova configuração do feed na tela Finalizar e clique em Enviar.
Para mais informações sobre feeds do Google SecOps, consulte a documentação de feeds do Google SecOps.
Tabela de mapeamento de UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
Level_label |
additional.fields |
Mesclado |
Sku_label |
additional.fields |
Mesclado |
apiId_label |
additional.fields |
Mesclado |
apiRevision_label |
additional.fields |
Mesclado |
apimSubscriptionId_label |
additional.fields |
Mesclado |
backendMethod_label |
additional.fields |
Mesclado |
backendProtocol_label |
additional.fields |
Mesclado |
backendResponseCode_label |
additional.fields |
Mesclado |
backendTime_label |
additional.fields |
Mesclado |
cache_label |
additional.fields |
Mesclado |
clientProtocol_label |
additional.fields |
Mesclado |
durationMs_label |
additional.fields |
Mesclado |
eventName_label |
additional.fields |
Mesclado |
eventid_label |
additional.fields |
Mesclado |
functionInvocationId_label |
additional.fields |
Mesclado |
functionName_label |
additional.fields |
Mesclado |
hostInstanceId_label |
additional.fields |
Mesclado |
hostVersion_label |
additional.fields |
Mesclado |
isRequestSuccess_label |
additional.fields |
Mesclado |
operationId_label |
additional.fields |
Mesclado |
productId_label |
additional.fields |
Mesclado |
properties.message |
metadata.description |
Mapeado diretamente |
time |
metadata.event_timestamp |
Analisado como ISO8601 |
has_principal |
metadata.event_type |
Mapeado: true → STATUS_UPDATE |
operationName |
metadata.product_event_type |
Mapeado diretamente |
DeploymentVersion |
metadata.product_version |
Mapeado diretamente |
properties.method |
network.http.method |
Mapeado diretamente |
properties.responseCode |
network.http.response_code |
Mapeado diretamente |
properties.responseSize |
network.received_bytes |
Mapeado diretamente |
properties.requestSize |
network.sent_bytes |
Mapeado diretamente |
correlationId |
network.session_id |
Mapeado diretamente |
properties.clientTlsCipherSuite |
network.tls.cipher |
Mapeado diretamente |
properties.clientTlsVersion |
network.tls.version |
Mapeado diretamente |
callerIpAddress |
principal.asset.ip |
Mesclado |
callerIpAddress |
principal.ip |
Mesclado |
location |
principal.location.name |
Mapeado diretamente |
properties.url |
principal.url |
Mapeado diretamente |
properties.userId |
principal.user.userid |
Mapeado diretamente |
action |
security_result.action |
Mesclado |
resultType |
security_result.action |
Mapeado: Succeeded → action |
category |
security_result.category_details |
Mesclado |
properties.category |
security_result.category_details |
Mesclado |
level |
security_result.severity |
Mapeado diretamente |
resultType |
security_result.summary |
Mapeado diretamente |
properties.appName |
target.application |
Mapeado diretamente |
properties.processId |
target.process.pid |
Mapeado diretamente |
roleInstance_label |
target.resource.attribute.labels |
Mesclado |
resourceId |
target.resource.product_object_id |
Mapeado diretamente |
properties.backendUrl |
target.url |
Mapeado diretamente |
| N/A | metadata.event_type |
Constante: GENERIC_EVENT |
| N/A | metadata.product_name |
Constante: AZURE API MANAGEMENT |
| N/A | metadata.vendor_name |
Constante: AZURE_API_MANAGEMENT |
| N/A | network.tls.version_protocol |
Constante: HTTP |
Registro de alterações
Ver o registro de alterações deste analisador
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.