Referência do conector de dados do Blob de Armazenamento do Azure para a Estrutura do Conector Sem Codificação

Para criar um conector de dados do Blob de Armazenamento do Azure com o CCF (Codeless Connector Framework), use esta referência além do artigo API REST do Microsoft Sentinel para Conectores de Dados.

Nesse padrão de ingestão, um produtor escreve dados no Armazenamento de Blobs do Azure. Grade de Eventos do Azure envia eventos de criação de blobs para uma fila do Armazenamento do Azure, onde eles são armazenados em buffer até que o conector os processe. O conector então lê os blobs e roteia seu conteúdo através de uma regra de coleta de dados (DCR) do Azure Monitor até a tabela de destino. Esse design duradouro baseado em filas suporta o manejo de contrapressão e a ingestão resiliente para fontes de dados de alto volume.

Cada dataConnector um representa uma conexão específica de um conector de dados do Microsoft Sentinel. Um conector de dados pode ter várias conexões, que buscam dados de pontos de extremidade diferentes. A configuração JSON criada usando este documento de referência é usada para concluir o modelo de implantação do conector de dados CCF.

Para obter mais informações, consulte Criar um conector sem código para o Microsoft Sentinel.

Crie o conector de dados CCF do Blob de Armazenamento do Azure

Simplifique o desenvolvimento da conexão da fonte de dados do Blob de Armazenamento do Azure com um modelo de implantação do conector de dados CCF do Blob de Armazenamento de amostra. Para obter mais informações, consulte Modelo CCF do Conector StorageBlob.

Com a maioria das seções do modelo de implantação preenchidas, você só precisa criar os dois primeiros componentes, a tabela de saída e o DCR. Para obter mais informações, consulte as seções Definição da tabela de saída e Regra de coleta de dados (DCR).

Conectores de Dados \u2012 Criar ou atualizar

Consulte a operação Criar ou Atualizar nos documentos da API REST para encontrar a versão mais recente da API estável ou prévia. A diferença entre a operação de criação e a operação de atualização é que a atualização requer o valor etag .

Método PUT

https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.OperationalInsights/workspaces/{{workspaceName}}/providers/Microsoft.SecurityInsights/dataConnectors/{{dataConnectorId}}?api-version={{apiVersion}}

Parâmetros de URI

Para obter mais informações sobre a versão mais recente da API, consulte Conectores de dados - Criar ou atualizar parâmetros de URI.

Nome Descrição
dataConnectorId A ID do conector de dados deve ser um nome exclusivo e é o mesmo que o name parâmetro no corpo da solicitação.
resourceGroupName O nome do grupo de recursos, não diferencia maiúsculas de minúsculas.
subscriptionId A ID da assinatura de destino.
workspaceName O nome do workspace, não a ID.
Padrão Regex: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
versão da api A versão da API a ser usada para esta operação.

Corpo da solicitação

O corpo da solicitação para um StorageAccountBlobContainer conector de dados CCF tem a seguinte estrutura:

{
   "name": "{{dataConnectorId}}",
   "kind": "StorageAccountBlobContainer",
   "etag": "",
   "properties": {
        "connectorDefinitionName": "",
        "auth": {},
        "request": {},
        "dcrConfig": {},
        "response": {}
   }
}

StorageAccountBlobContainer

StorageAccountBlobContainer representa um conector de dados CCF no qual as cargas de resposta esperadas para a fonte de dados do Blob de Armazenamento do Azure já foram configuradas. A configuração do produtor para enviar dados ao Blob de Armazenamento deve ser feita separadamente.

Nome Obrigatório Tipo Descrição
name True cadeia O nome exclusivo da conexão correspondente ao parâmetro URI
kind True cadeia Deve ser StorageAccountBlobContainer
etag GUID Deixe em branco para a criação de novos conectores. Para operações de atualização, a etag deve corresponder à etag (GUID) do conector existente.
propriedades. connectorDefinitionName cadeia O nome do recurso DataConnectorDefinition que define a configuração da interface do usuário do conector de dados. Para obter mais informações, consulte Definição do conector de dados.
propriedades. de autenticação True JSON aninhado Descreve as credenciais para ingerir dados do Blob de Armazenamento do Azure. Para obter mais informações, consulte configuração de autenticação.
propriedades. solicitação True JSON aninhado Descreve as filas de Armazenamento do Azure que recebem eventos criados por blobs no escopo. Para obter mais informações, consulte solicitar configuração.
propriedades. dcrConfig JSON aninhado Parâmetros necessários quando os dados são enviados para uma DCR (Regra de Coleta de Dados). Para obter mais informações, consulte Configuração do DCR.
propriedades. resposta True JSON aninhado Descreve o objeto de resposta e a mensagem aninhada retornada da API ao extrair os dados. Para obter mais informações, consulte configuração de resposta.

Configuração de autenticação

O conector de Blob de Armazenamento do Azure depende de uma entidade de serviço criada em seu locatário associada a um aplicativo multilocatário gerenciado pela Microsoft (blueprint da entidade de serviço). O administrador do locatário precisa conceder consentimento para criar essa entidade de serviço. O modelo ARM fornece a capacidade de confirmar se a entidade de serviço associada ao aplicativo já existe em seu locatário e, caso contrário, fornece uma opção para criar a entidade de serviço com o consentimento do usuário.

O exemplo de modelo do ARM inclui operações para aplicar todo o acesso baseado em função necessário na conta de armazenamento para ler blobs e contribuir para filas. Certifique-se de que o modelo e as entidades de serviço usadas estejam associados ao aplicativo para seu ambiente e que o consentimento do administrador do locatário tenha sido concedido.

A tabela a seguir lista as IDs de aplicativo por ambiente do Azure:

Ambiente do Azure ApplicationId
AzureCloud 4f05ce56-95b6-4612-9d98-a45c8cc33f9f

Exemplo de autenticação StorageAccountBlobContainer:

"auth": {
    "type": "ServicePrincipal"
}

Solicitar configuração

A seção de solicitação descreve as filas de Armazenamento do Azure que recebem mensagens de evento criadas por blobs.

Antes de configurar essa seção, crie as filas de notificação e de letras mortas. Configure uma assinatura do Grade de Eventos do Azure na conta de armazenamento para enviar Microsoft.Storage.BlobCreated eventos para a fila de notificações especificada pelo QueueUri. Para mais informações, veja Quickstart: Rotear eventos de armazenamento Blob para um endpoint web com o portal Azure.

Campo Obrigatório Tipo Descrição
QueueUri True Cadeia de caracteres O URI da fila de Armazenamento do Azure que recebe eventos criados por blobs.
DlqUri True Cadeia de caracteres O URI da fila de mensagens mortas para mensagens com falha.
StorageAccountSubscriptionId True Cadeia de caracteres O ID da assinatura da conta de armazenamento.
StorageAccountResourceGroupName True Cadeia de caracteres O grupo de recursos da conta de armazenamento.

Exemplo de solicitação StorageAccountBlobContainer:

"request": {
    "QueueUri": "[[concat('https://', variables('storageAccountName'), '.queue.core.windows.net/', variables('queueName'))]",
    "DlqUri": "[[concat('https://', variables('storageAccountName'), '.queue.core.windows.net/', variables('dlqName'))]",
    "StorageAccountSubscriptionId": "[[parameters('StorageAccountSubscription')]",
    "StorageAccountResourceGroupName": "[[parameters('StorageAccountResourceGroupName')]"
}

Configuração de resposta

Defina o tratamento de resposta do conector de dados com os seguintes parâmetros:

Campo Obrigatório Tipo Descrição
EventsJsonPaths True Lista de cadeias de caracteres Define o caminho para a mensagem no JSON de resposta. Uma expressão de caminho JSON especifica um caminho para um elemento, ou um conjunto de elementos, em uma estrutura JSON.
IsGzipCompressed booleano Determina se a resposta é compactada em um arquivo gzip.
format True Cadeia de caracteres json, csv, xml, ou parquet
CompressionAlgo Cadeia de caracteres O algoritmo de compactação, ou multi-gzipdeflate. Para compactação gzip, configure IsGzipCompressed em True vez de definir um valor para esse parâmetro.
CsvDelimiter Cadeia de caracteres Se o formato de resposta for CSV e você quiser alterar o delimitador CSV padrão de ,.
HasCsvBoundary booleano Indica se os dados CSV têm um limite.
HasCsvHeader booleano Indica se os dados CSV têm um cabeçalho. O padrão é: True.
Escape CsvEscape Cadeia de caracteres Caractere de escape para um limite de campo. O padrão é: ". Por exemplo, um CSV com cabeçalhos id,name,avg e uma linha de dados contendo espaços como 1,"my name",5.5 requer o limite do " campo.

Observação

O tipo de formato CSV é analisado pela especificação RFC 4180 .

Exemplos de configuração de resposta

JSON descompactado:

"response": {
    "EventsJsonPaths": ["$"],
    "format": "json"
}

CSV compactado:

"response": {
    "EventsJsonPaths": ["$"],
    "format": "csv",
    "IsGzipCompressed": true
}

Parquet (a compactação pode ser inferida):

"response": {
    "EventsJsonPaths": ["$"],
    "format": "parquet"
}

Configuração do DCR

Campo Obrigatório Tipo Descrição
DataCollectionEndpoint True Cadeia de caracteres DCE (Data Collection Endpoint), por exemplo: https://example.ingest.monitor.azure.com.
DataCollectionRuleImmutableId True Cadeia de caracteres A ID imutável do DCR. Encontre-o exibindo a resposta de criação do DCR ou usando a API do DCR.
StreamName True cadeia Esse valor é definido no DCR (o prefixo streamDeclaration deve começar com Custom-).

Exemplo de conector de dados CCF

Aqui está um exemplo de todos os componentes do JSON do conector de StorageAccountBlobContainer dados CCF juntos.

{
    "kind": "StorageAccountBlobContainer",
    "properties": {
        "connectorDefinitionName": "[[parameters('connectorDefinitionName')]",
        "dcrConfig": {
            "streamName": "[variables('streamName')]",
            "dataCollectionEndpoint": "[[parameters('dcrConfig').dataCollectionEndpoint]",
            "dataCollectionRuleImmutableId": "[[parameters('dcrConfig').dataCollectionRuleImmutableId]"
        },
        "auth": {
            "type": "ServicePrincipal"
        },
        "request": {
            "QueueUri": "[[concat('https://', variables('storageAccountName'), '.queue.core.windows.net/', variables('queueName'))]",
            "DlqUri": "[[concat('https://', variables('storageAccountName'), '.queue.core.windows.net/', variables('dlqName'))]"
        }
    }
}

Para obter mais informações, consulte Criar exemplo de API REST do conector de dados.