informations de référence sur le connecteur de données Blob de stockage Azure pour l’infrastructure de connecteur sans code

Pour créer un connecteur de données blob de stockage Azure avec l’infrastructure de connecteur sans code (CCF), utilisez cette référence en plus de l’article API REST Microsoft Sentinel pour les connecteurs de données.

Chaque dataConnector représente une connexion spécifique d’un connecteur de données Microsoft Sentinel. Un connecteur de données peut avoir plusieurs connexions, qui extraient des données à partir de différents points de terminaison. La configuration JSON générée à l’aide de ce document de référence est utilisée pour terminer le modèle de déploiement pour le connecteur de données CCF.

Pour plus d’informations, consultez Créer un connecteur sans code pour Microsoft Sentinel.

Créer le connecteur de données CCF d’objets blob Azure Storage

Simplifiez le développement de la connexion de votre source de données Blob de stockage Azure avec un exemple de modèle de déploiement de connecteur de données CCF d’objet blob de stockage. Pour plus d’informations , consultez Connector StorageBlob CCF template.

Une fois la plupart des sections de modèle de déploiement remplies, il vous suffit de générer les deux premiers composants, la table de sortie et la DCR. Pour plus d’informations, consultez les sections Définition de table de sortie et Règle de collecte de données (DCR).

Connecteurs de données - Créer ou mettre à jour

Reportez-vous à l’opération Créer ou mettre à jour dans la documentation de l’API REST pour rechercher la dernière version stable ou préliminaire de l’API. La différence entre l’opération de création et l’opération de mise à jour est que la mise à jour nécessite la valeur etag .

PUT , méthode

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

Paramètres d’URI

Pour plus d’informations sur la dernière version de l’API, consultez Connecteurs de données - Créer ou mettre à jour des paramètres d’URI.

Nom Description
dataConnectorId L’ID du connecteur de données doit être un nom unique et est identique au name paramètre dans le corps de la requête.
resourceGroupName Nom du groupe de ressources, qui ne respecte pas la casse.
subscriptionId ID de l’abonnement cible.
workspaceName Nom de l’espace de travail, pas l’ID.
Modèle d’expression régulière : ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
api-version Version de l’API à utiliser pour cette opération.

Corps de la demande

Le corps de la demande pour un StorageAccountBlobContainer connecteur de données CCF a la structure suivante :

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

StorageAccountBlobContainer

StorageAccountBlobContainer représente un connecteur de données CCF où les charges utiles de réponse attendues pour votre Azure source de données Storage Blob ont déjà été configurées. La configuration de votre producteur pour envoyer des données à Storage Blob doit être effectuée séparément.

Nom Obligatoire Type Description
name True string Nom unique de la connexion correspondant au paramètre URI
kind True string Doit être StorageAccountBlobContainer
etag GUID Laissez vide pour la création de nouveaux connecteurs. Pour les opérations de mise à jour, l’etag doit correspondre à l’etag (GUID) du connecteur existant.
Propriétés. connectorDefinitionName string Nom de la ressource DataConnectorDefinition qui définit la configuration de l’interface utilisateur du connecteur de données. Pour plus d’informations, consultez Définition du connecteur de données.
Propriétés. Auth Vrai JSON imbriqué Décrit les informations d’identification pour l’ingestion Azure données d’objet blob de stockage. Pour plus d’informations, consultez Configuration de l’authentification.
Propriétés. Demande Vrai JSON imbriqué Décrit les files d’attente Azure Stockage qui reçoivent des événements d’objet blob dans l’étendue créés. Pour plus d’informations, consultez Configuration de la demande.
Propriétés. dcrConfig JSON imbriqué Paramètres obligatoires lorsque les données sont envoyées à une règle de collecte de données (DCR). Pour plus d’informations, consultez Configuration de DCR.
Propriétés. Réponse Vrai JSON imbriqué Décrit l’objet de réponse et le message imbriqué retournés par l’API lors de l’extraction des données. Pour plus d’informations, consultez Configuration de la réponse.

Configuration de l’authentification

Le connecteur d’objets blob de stockage Azure s’appuie sur un principal de service créé dans votre locataire associé à une application multilocataire gérée par Microsoft (blueprint de principal de service). L’administrateur client doit accorder son consentement pour créer ce principal de service. Le modèle ARM permet de vérifier si le principal de service associé à l’application existe déjà dans votre locataire et, dans le cas contraire, fournit une option pour créer le principal de service avec le consentement de l’utilisateur.

L’exemple de modèle ARM inclut des opérations pour appliquer tous les accès en fonction du rôle nécessaires sur le compte de stockage pour lire des objets blob et contribuer aux files d’attente. Vérifiez que le modèle et les principaux de service utilisés sont associés à l’application pour votre environnement et que le consentement de l’administrateur du locataire a été accordé.

Le tableau suivant répertorie les ID d’application par Azure environnement :

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

Exemple d’authentification StorageAccountBlobContainer :

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

Configuration de la demande

La section de demande décrit les files d’attente de stockage Azure qui reçoivent les messages d’événement créés par l’objet blob.

Field Obligatoire Type Description
QueueUri Vrai String URI de la file d’attente de stockage Azure qui reçoit les événements créés par l’objet blob.
DlqUri Vrai String URI de la file d’attente de lettres mortes pour les messages ayant échoué.

Exemple de requête StorageAccountBlobContainer :

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

Configuration de la réponse

Définissez la gestion des réponses de votre connecteur de données avec les paramètres suivants :

Field Obligatoire Type Description
EventsJsonPaths Vrai Liste de chaînes Définit le chemin d’accès au message dans la réponse JSON. Une expression de chemin JSON spécifie un chemin d’accès à un élément, ou à un ensemble d’éléments, dans une structure JSON.
IsGzipCompressed Booléen Détermine si la réponse est compressée dans un fichier gzip.
format Vrai String json, csv, xmlou parquet
CompressionAlgo String L’algorithme de compression, ou multi-gzipdeflate. Pour la compression gzip, configurez IsGzipCompressedTrue sur au lieu de définir une valeur pour ce paramètre.
CsvDelimiter String Si le format de réponse est CSV et que vous souhaitez modifier le délimiteur CSV par défaut de ,.
HasCsvBoundary Booléen Indique si les données CSV ont une limite.
HasCsvHeader Booléen Indique si les données CSV ont un en-tête. La valeur par défaut est : True.
CsvEscape String Caractère d’échappement pour une limite de champ. La valeur par défaut est : ". Par exemple, un fichier CSV avec des en-têtes id,name,avg et une ligne de données contenant des espaces comme 1,"my name",5.5 nécessite la limite de " champ.

Remarque

Le type de format CSV est analysé par la spécification RFC 4180 .

Exemples de configuration de réponse

JSON non compressé :

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

CSV compressé :

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

Parquet (la compression peut être déduite) :

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

Configuration de DCR

Field Obligatoire Type Description
DataCollectionEndpoint Vrai String DCE (Data Collection Endpoint), par exemple : https://example.ingest.monitor.azure.com.
DataCollectionRuleImmutableId Vrai String ID immuable DCR. Recherchez-la en consultant la réponse de création de DCR ou en utilisant l’API DCR.
StreamName True string Cette valeur est définie streamDeclaration dans la DCR (le préfixe doit commencer par Custom-).

Exemple de connecteur de données CCF

Voici un exemple de tous les composants du connecteur de StorageAccountBlobContainer données CCF JSON.

{
    "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'))]"
        }
    }
}

Pour plus d’informations, consultez Exemple d’API REST Créer un connecteur de données.