Azure referência do conector de dados do Blob de Armazenamento para o Codeless Connector Framework

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

Cada dataConnector um representa uma ligação específica de um conector de dados Microsoft Sentinel. Um conector de dados pode ter várias ligações, que obtêm dados de diferentes pontos finais. A configuração JSON criada com este documento de referência é utilizada para concluir o modelo de implementação do conector de dados CCF.

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

Criar o conector de dados CCF do Blob de Armazenamento Azure

Simplifique o desenvolvimento da ligação da sua origem de dados do Blob de Armazenamento Azure com um modelo de implementação de conector de dados CCF de Blob de Armazenamento de exemplo. Para obter mais informações, veja Connector StorageBlob CCF template (Modelo Do Conector StorageBlob CCF).

Com a maioria das secções do modelo de implementação preenchidas, só precisa de criar os dois primeiros componentes, a tabela de saída e o DCR. Para obter mais informações, veja as secções Definição da tabela de saída e Regra de Recolha de Dados (DCR).

Conectores de Dados – Criar ou atualizar

Veja a operação Criar ou Atualizar nos documentos da API REST para encontrar a versão mais recente da API estável ou de pré-visualização. A diferença entre a operação de criação e atualização é que a atualização requer o valor de 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, veja Conectores de Dados – Criar ou Atualizar Parâmetros de URI.

Nome Descrição
dataConnectorId O ID do conector de dados tem de ser um nome exclusivo e é o mesmo que o name parâmetro no corpo do pedido.
resourceGroupName O nome do grupo de recursos, não sensível a maiúsculas e minúsculas.
subscriptionId O ID da subscrição de destino.
workspaceName O nome da área de trabalho, não o 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 utilizar para esta operação.

Corpo da solicitação

O corpo do pedido 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 onde já foram configurados os payloads de resposta esperados para a sua origem de dados do Blob de Armazenamento Azure. A configuração do produtor para enviar dados para o Blob de Armazenamento tem de ser feita separadamente.

Nome Obrigatório Tipo Descrição
name True string O nome exclusivo da ligação que corresponde ao parâmetro URI
kind True string Deve ser StorageAccountBlobContainer
etag GUID Deixe vazio para a criação de novos conectores. Para operações de atualização, a etag tem de corresponder à etag (GUID) do conector existente.
propriedades. connectorDefinitionName string O nome do recurso DataConnectorDefinition que define a configuração da IU do conector de dados. Para obter mais informações, veja Definição do Conector de Dados.
propriedades. autenticação Verdadeiro JSON Aninhado Descreve as credenciais para ingerir Azure dados do Blob de Armazenamento. Para obter mais informações, veja Configuração da autenticação.
propriedades. pedido Verdadeiro JSON Aninhado Descreve o Azure filas de Armazenamento que recebem eventos criados pelo blob no âmbito. Para obter mais informações, veja Configuração do pedido.
propriedades. dcrConfig JSON Aninhado Parâmetros necessários quando os dados são enviados para uma Regra de Recolha de Dados (DCR). Para obter mais informações, veja Configuração do DCR.
propriedades. resposta Verdadeiro JSON Aninhado Descreve o objeto de resposta e a mensagem aninhada devolvida da API ao extrair os dados. Para obter mais informações, veja Configuração da resposta.

Configuração da autenticação

O conector Azure Blob de Armazenamento baseia-se num principal de serviço criado no seu inquilino associado a uma aplicação multi-inquilino gerida pela Microsoft (esquema do principal de serviço). O administrador de inquilinos tem de conceder consentimento para criar este principal de serviço. O modelo do ARM permite confirmar se o principal de serviço associado à aplicação já existe no seu inquilino e, caso contrário, fornece uma opção para criar o principal de serviço com o consentimento do utilizador.

O exemplo de modelo do ARM inclui operações para aplicar todo o acesso baseado em funções necessário na conta de armazenamento para ler blobs e contribuir para as filas. Certifique-se de que o modelo e os principais de serviço utilizados estão associados à aplicação para o seu ambiente e que foi concedido o consentimento do administrador do inquilino.

A tabela seguinte lista os IDs da aplicação por ambiente Azure:

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

Exemplo de autenticação StorageAccountBlobContainer:

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

Configuração do pedido

A secção de pedido descreve as filas de armazenamento Azure que recebem mensagens de eventos criadas pelo blob.

Campo Obrigatório Tipo Descrição
QueueUri Verdadeiro Cadeia de caracteres O URI da fila de Armazenamento Azure que recebe eventos criados por blobs.
DlqUri Verdadeiro Cadeia de caracteres O URI da fila de mensagens não entregues para mensagens falhadas.

Exemplo de pedido StorageAccountBlobContainer:

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

Configuração da resposta

Defina o processamento de respostas do conector de dados com os seguintes parâmetros:

Campo Obrigatório Tipo Descrição
EventsJsonPaths Verdadeiro Lista de Cadeias 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, numa estrutura JSON.
IsGzipCompressed Booliano Determina se a resposta é comprimida num ficheiro gzip.
format Verdadeiro Cadeia de caracteres json, , csvxmlouparquet
CompressionAlgo Cadeia de caracteres O algoritmo de compressão, ou multi-gzipdeflate. Para compressão gzip, configure IsGzipCompressed para True em vez de definir um valor para este parâmetro.
CsvDelimiter Cadeia de caracteres Se o formato de resposta for CSV e quiser alterar o delimitador CSV predefinido de ,.
HasCsvBoundary Booliano Indica se os dados CSV têm um limite.
HasCsvHeader Booliano Indica se os dados CSV têm um cabeçalho. A predefinição é: True.
CsvEscape Cadeia de caracteres Caráter de escape para um limite de campo. A predefinição é: ". Por exemplo, um CSV com cabeçalhos id,name,avg e uma linha de dados que contenham 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 não comprimido:

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

CSV comprimido:

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

Parquet (a compressão pode ser inferida):

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

Configuração do DCR

Campo Obrigatório Tipo Descrição
DataCollectionEndpoint Verdadeiro Cadeia de caracteres DCE (Ponto Final de Recolha de Dados), por exemplo: https://example.ingest.monitor.azure.com.
DataCollectionRuleImmutableId Verdadeiro Cadeia de caracteres O ID imutável do DCR. Localize-a ao ver a resposta de criação do DCR ou através da API DCR.
StreamName True string Este valor é o streamDeclaration definido no DCR (o prefixo tem de começar por Personalizado-).

Conector de dados CCF de exemplo

Eis um exemplo de todos os componentes do JSON do StorageAccountBlobContainer conector de dados CCF em conjunto.

{
    "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, veja Create data connector REST API example (Exemplo de API REST do conector de dados).