События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Платформа соединителя без кода (CCP) предоставляет партнерам, расширенным пользователям и разработчикам возможность создавать пользовательские соединители для приема данных в Microsoft Sentinel.
Соединители, созданные с помощью CCP, полностью являются SaaS без требований к установке служб. Они также включают мониторинг работоспособности и полную поддержку От Microsoft Sentinel.
Чтобы создать соединитель CCP и подключить источник данных к Microsoft Sentinel, выполните следующие действия.
В этой статье показано, как выполнить каждый шаг и предоставить пример соединителя без кода для сборки по пути.
Начальная версия CCP была объявлена в январе 2022 года. С тех пор мы улучшили платформу и устаревший выпуск больше не рекомендуется. Эта новая версия CCP имеет следующие ключевые улучшения:
Улучшена поддержка различных типов проверки подлинности и разбиения на страницы.
Поддерживает стандартные правила сбора данных (DCR).
Теперь отдельные части пользовательского интерфейса и конфигурации подключения соединителя без кода. Это позволяет создавать соединители с несколькими подключениями, которые ранее не были возможными.
Прежде чем создавать соединитель, ознакомьтесь с источником данных и способом подключения Microsoft Sentinel.
Конечная точка сбора данных (DCE)
DCE — это требование для DCR. Для развертывания DCR рабочей области log analytics создается только один DCE. Каждый DCR, развернутый для рабочей области Microsoft Sentinel, использует тот же DCE. Дополнительные сведения о том, как создать одну или нужно ли вам новую, см . в статье о конечных точках сбора данных в Azure Monitor.
Схема выходных таблиц.
Важно понимать форму потока данных и поля, которые необходимо включить в выходную таблицу. Ссылка на документацию по источнику данных или анализ достаточного количества выходных примеров.
Изучите следующие компоненты и проверьте их поддержку в справочнике по API соединителя данных:
Структура HTTP-запроса и ответа к источнику данных
Проверка подлинности, необходимая источником данных.
Например, если для источника данных требуется маркер, подписанный сертификатом, справочник по API соединителя данных указывает, что проверка подлинности сертификата не поддерживается.
Параметры разбиения на страницы в источник данных
Мы рекомендуем протестировать компоненты с помощью средства тестирования API, например одного из следующих:
Внимание!
В сценариях, в которых есть конфиденциальные данные, такие как учетные данные, секреты, маркеры доступа, ключи API и другие аналогичные сведения, обязательно используйте средство, которое защищает данные с помощью необходимых функций безопасности, работает в автономном режиме или локально, не синхронизирует данные с облаком и не требует входа в учетную запись в Сети. Таким образом, вы снижаете риск предоставления конфиденциальных данных общественности.
Для создания соединителя данных CCP требуется четыре компонента.
Каждый компонент содержит раздел, в который подробно описан процесс создания и проверки. Возьмите JSON из каждого компонента для окончательной упаковки шаблона ARM.
Совет
Пропустите этот шаг, если данные будут приема только в стандартные таблицы Log Analytics. Примерами стандартных таблиц являются CommonSecurityLog и ASimDnsActivityLogs. Дополнительные сведения о полном списке поддерживаемых стандартных типов данных см. в статье о поддержке преобразования данных для пользовательских соединителей данных.
Если источник данных не соответствует схеме стандартной таблицы, у вас есть два варианта:
Используйте пользовательский интерфейс Log Analytics для прямого метода для создания настраиваемой таблицы вместе с DCR. Если вы создаете пользовательскую таблицу с помощью API таблиц или другого программного метода, добавьте _CL
суффикс вручную в имя таблицы. Дополнительные сведения см. в разделе "Создание настраиваемой таблицы".
Дополнительные сведения о разбиение данных на несколько таблиц см. в примерах данных и примере настраиваемой таблицы , созданной для данных.
Правила сбора данных (DCR) определяют процесс сбора данных в Azure Monitor. Правила DCR указывают, какие данные следует собирать, как их преобразовывать и куда отправлять.
Ознакомьтесь с последними сведениями о контроллерах домена в следующих статьях:
Руководство по созданию DCE, включая использование примеров данных для создания пользовательской таблицы и DCR, см. в руководстве по отправке данных в журналы Azure Monitor с помощью API приема журналов журналов (портал Azure). Используйте процесс, приведенный в этом руководстве, чтобы проверить правильность приема данных в таблицу с помощью DCR.
Сведения о создании сложного DCR с несколькими потоками данных см. в разделе примеров DCR.
Этот компонент отображает пользовательский интерфейс соединителя данных в коллекции соединителя данных Microsoft Sentinel. Каждый соединитель данных может иметь только одно определение пользовательского интерфейса.
Создайте пользовательский интерфейс соединителя данных с помощью API определения соединителя данных. Используйте ссылки на определения соединителя данных в качестве дополнения, чтобы объяснить элементы API более подробно.
Примечания:
kind
соединителя опроса API всегда должно быть Customizable
.connectivityCriteria
hasDataConnectors
instructionSteps
Пример включает в себя кнопку типаConnectionToggleButton
. Эта кнопка помогает активировать развертывание правил соединителя данных на основе указанных параметров подключения.Используйте средство тестирования API для вызова API определений соединителя данных, чтобы создать пользовательский интерфейс соединителя данных, чтобы проверить его в коллекции соединителей данных.
Дополнительные сведения см. в разделе "Пример определений соединителя данных".
В настоящее время существует два типа правил подключения к данным для определения соединителя данных CCP.
RestApiPoller
kind позволяет настроить разбиение на страницы, авторизацию и ожидаемые полезные данные запроса и ответа для источника данных. Дополнительные сведения см. в справочнике по правилам подключения соединителя данных RestApiPoller.GCP
kind позволяет уменьшить время разработки, автоматически настраивая полезные данные разбиения на страницы и ожидаемые полезные данные ответа для источника данных Google Cloud Platform (GCP). Дополнительные сведения см. в разделе "Правила подключения соединителя данных GCP"Используйте средство тестирования API для вызова API соединителя данных, чтобы создать соединитель данных, который объединяет правила подключения и предыдущие компоненты. Убедитесь, что соединитель подключен к пользовательскому интерфейсу.
Независимо от того, какая проверка подлинности используется соединителем данных CCP, выполните эти действия, чтобы обеспечить безопасность конфиденциальной информации. Цель состоит в том, чтобы передать учетные данные из шаблона ARM в CCP, не оставляя доступные для чтения конфиденциальные объекты в журнале развертываний.
Определение соединителя данных создает элемент пользовательского интерфейса для запроса учетных данных безопасности. Например, если соединитель данных проходит проверку подлинности в источнике журнала с помощью OAuth, в разделе определения соединителя данных содержится OAuthForm
тип в инструкциях. Это настраивает шаблон ARM для запроса учетных данных.
"instructions": [
{
"type": "OAuthForm",
"parameters": {
"UsernameLabel": "Username",
"PasswordLabel": "Password",
"connectButtonLabel": "Connect",
"disconnectButtonLabel": "Disconnect"
}
}
],
Раздел шаблона развертывания ARM предоставляет место для администратора, развертывающего соединитель данных для ввода пароля. Используется securestring
для сохранения конфиденциальной информации, защищенной в объекте, который не доступен для чтения после развертывания. Дополнительные сведения см. в рекомендациях по безопасности для параметров.
"mainTemplate": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "[variables('dataConnectorCCPVersion')]",
"parameters": {
"Username": {
"type": "securestring",
"minLength": 1,
"metadata": {
"description": "Enter the username to connect to your data source."
},
"Password": {
"type": "securestring",
"minLength": 1,
"metadata": {
"description": "Enter the API key, client secret or password required to connect."
}
},
// more deployment template information
}
}
Наконец, CCP использует объекты учетных данных в разделе соединителя данных.
"auth": {
"type": "OAuth2",
"ClientSecret": "[[parameters('Password')]",
"ClientId": "[[parameters('Username')]",
"GrantType": "client_credentials",
"TokenEndpoint": "https://api.contoso.com/oauth/token",
"TokenEndpointHeaders": {
"Content-Type": "application/x-www-form-urlencoded"
},
"TokenEndpointQueryParameters": {
"grant_type": "client_credentials"
}
},
Примечание
Странный синтаксис объекта "ClientSecret": "[[parameters('Password')]",
учетных данных не является опечаткой!
Чтобы создать шаблон развертывания, который также использует параметры, необходимо экранировать параметры в этом разделе с дополнительным запуском[
. Это позволяет параметрам назначать значение на основе взаимодействия пользователя с соединителем.
Дополнительные сведения см. в статье "Выражения шаблонов", экранные символы.
Вручную упаковайте шаблон Azure Resource Management (ARM), используя примеры кода шаблона в качестве руководства. Эти примеры кода разделены разделами шаблонов ARM, которые необходимо объединить вместе.
Если вы создаете соединитель данных CCP Google Cloud Platform (GCP), упаковите шаблон развертывания с помощью примера шаблона CCP GCP. Сведения о том, как заполнить шаблон GCP CCP, см. в справочнике по правилам подключения соединителя данных GCP.
Помимо примеров шаблонов опубликованные решения, доступные в центре содержимого Microsoft Sentinel, используют CCP для своих соединителей данных. Ознакомьтесь со следующими решениями в качестве дополнительных примеров того, как объединить компоненты в шаблон ARM.
RestApiPoller
Примеры соединителя данных CCP
GCP
Примеры соединителя данных CCP
Разверните соединитель без кода в качестве пользовательского шаблона.
Совет
Удалите ресурсы, созданные на предыдущих шагах. DCR и настраиваемая таблица создаются с развертыванием. Если вы не удалите эти ресурсы перед развертыванием, вам будет сложнее проверить шаблон.
Если источник ведения журнала требует сетевой изоляции, настройте список разрешений общедоступных IP-адресов, используемых CCP.
Виртуальные сети Azure используют теги служб для определения элементов управления доступом к сети. Для CCP этот тег службы — Scuba.
Чтобы найти текущий диапазон IP-адресов, связанный с тегом службы scuba , см. раздел "Использование API обнаружения тегов службы".
Просмотрите соединитель без кода в коллекции соединителей данных. Откройте соединитель данных и завершите все параметры проверки подлинности, необходимые для подключения. После успешного подключения создаются DCR и пользовательские таблицы. Просмотрите ресурс DCR в группе ресурсов и любые пользовательские таблицы из рабочей области logs analytics.
Примечание
Для начала приема данных может потребоваться до 30 минут.
Каждый шаг в создании соединителя без кода представлен в следующих примерах.
Чтобы продемонстрировать сложный источник данных с приемом в несколько таблиц, в этом примере представлена схема выходной таблицы и DCR с несколькими выходными потоками. Пример DCR объединяет их вместе со своими преобразованиями KQL. Примеры определения пользовательского интерфейса соединителя данных и правил подключения продолжаются из этого же примера источника данных. Наконец, шаблон решения использует все эти примеры компонентов, чтобы показать конец созданию примера соединителя данных CCP.
Источник данных возвращает следующий код JSON при подключении к конечной точке.
[
{
"ts": "3/6/2023 8:15:15 AM",
"eventType": "Alert",
"deviceMac": "bc:27:c6:21:1c:70",
"clientMac": "",
"srcIp": "10.12.11.106",
"destIp": "121.93.178.13",
"protocol": "tcp/ip",
"priority": "0",
"message": "This is an alert message"
},
{
"ts": "3/6/2023 8:14:54 AM",
"eventType": "File",
"srcIp": "178.175.128.249",
"destIp": "234.113.125.105",
"fileType": "MS_EXE",
"fileSizeBytes": 193688,
"disposition": "Malicious"
}
]
Этот ответ содержит оповещение eventType
и файл. События файла должны быть приема в нормализованную стандартную таблицу AsimFileEventLogs, а события генерации оповещений должны быть приема в настраиваемую таблицу.
Дополнительные сведения о структуре этой таблицы см. в разделе API таблиц. Пользовательские имена таблиц журналов должны иметь _CL
суффикс.
{
"properties": {
"schema": {
"name": "ExampleConnectorAlerts_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "datetime"
},
{
"name": "SourceIP",
"type": "string"
},
{
"name": "DestIP",
"type": "string"
},
{
"name": "Message",
"type": "string"
},
{
"name": "Priority",
"type": "int"
}
]
}
}
}
Следующий DCR определяет один поток Custom-ExampleConnectorInput
с помощью примера источника данных и преобразует выходные данные в две таблицы.
eventType
= в настраиваемую ExampleConnectorAlerts_CL
таблицу.eventType
= файл в нормализованную стандартную таблицу.ASimFileEventLogs
Дополнительные сведения о структуре этого примера см. в разделе "Структура правила сбора данных".
Чтобы создать этот DCR в тестовой среде, следуйте API правил сбора данных. Элементы примера указывают {{double curly braces}}
на переменные, требующие значений для удобства использования с средством тестирования API. При создании этого ресурса в шаблоне ARM переменные, выраженные здесь, обмениваются параметрами.
{
"location": "{{location}}",
"properties": {
"dataCollectionEndpointId": "/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.Insights/dataCollectionEndpoints/{{dataCollectionEndpointName}}",
"streamDeclarations": {
"Custom-ExampleConnectorInput": {
"columns": [
{
"name": "ts",
"type": "datetime"
},
{
"name": "eventType",
"type": "string"
},
{
"name": "deviceMac",
"type": "string"
},
{
"name": "clientMac",
"type": "string"
},
{
"name": "srcIp",
"type": "string"
},
{
"name": "destIp",
"type": "string"
},
{
"name": "protocol",
"type": "string"
},
{
"name": "priority",
"type": "string"
},
{
"name": "message",
"type": "string"
},
{
"name": "fileType",
"type": "string"
},
{
"name": "fileSizeBytes",
"type": "int"
},
{
"name": "disposition",
"type": "string"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/{{subscriptionId}}/resourcegroups/{{resourceGroupName}}/providers/microsoft.operationalinsights/workspaces/{{workspaceName}}",
"name": "{{uniqueFriendlyDestinationName}}"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-ExampleConnectorInput"
],
"destinations": [
"{{uniqueFriendlyDestinationName}}"
],
"transformKql": "source | where eventType == \"Alert\" | project TimeGenerated = ts, SourceIP = srcIp, DestIP = destIp, Message = message, Priority = priority \n",
"outputStream": "Custom-ExampleConnectorAlerts_CL"
},
{
"streams": [
"Custom-ExampleConnectorInput"
],
"destinations": [
"{{uniqueFriendlyDestinationName}}"
],
"transformKql": "source | where eventType == \"File\" | project-rename TimeGenerated = ts, EventOriginalType = eventType, SrcIpAddr = srcIp, DstIpAddr = destIp, FileContentType = fileType, FileSize = fileSizeBytes, EventOriginalSeverity = disposition \n",
"outputStream": "Microsoft-ASimFileEventLogs"
}
]
}
}
Этот пример находится в справочнике по определениям соединителя данных.
Этот пример находится в справочнике по соединителям данных.
Создайте шаблон развертывания ARM со следующей структурой, которая включает в себя 4 раздела компонентов JSON, необходимых для создания соединителя данных CCP:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [],
}
Скройте разделы вместе с редактором с поддержкой JSON, например Visual Code, чтобы свести к минимуму синтаксические ошибки, такие как запятые и закрывающие скобки и скобки.
Чтобы руководствоваться процессом создания шаблона, комментарии отображаются в метаданных description
или встроенных с //
нотацией комментариев. Дополнительные сведения см . в рекомендациях по шаблону ARM — комментарии.
Рекомендуется использовать набор средств тестирования шаблонов ARM (arm-ttk), чтобы проверить сборку шаблона. Дополнительные сведения см . в разделе arm-ttk.
Дополнительные сведения см. в разделе "Параметры" в шаблонах ARM.
Предупреждение
Используется securestring
для всех паролей и секретов в объектах, доступных для чтения после развертывания ресурсов.
Дополнительные сведения см. в разделе "Безопасные конфиденциальные входные данные " и рекомендации по безопасности для параметров.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"minLength": 1,
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Not used, but needed to pass the arm-ttk test, 'Location-Should-Not-Be-Hardcoded'. Instead the `workspace-location` derived from the log analytics workspace is used."
}
},
"workspace-location": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "[concat('Region to deploy solution resources -- separate from location selection',parameters('location'))]"
}
},
"subscription": {
"defaultValue": "[last(split(subscription().id, '/'))]",
"type": "string",
"metadata": {
"description": "subscription id where Microsoft Sentinel is configured"
}
},
"resourceGroupName": {
"defaultValue": "[resourceGroup().name]",
"type": "string",
"metadata": {
"description": "resource group name where Microsoft Sentinel is configured"
}
},
"workspace": {
"defaultValue": "",
"type": "string",
"metadata": {
"description": "the log analytics workspace enabled for Microsoft Sentinel"
}
}
},
// Next is the variables section here
}
Эти рекомендуемые переменные помогают упростить шаблон. Используйте больше или меньше по мере необходимости. Дополнительные сведения см. в разделе "Переменные" в шаблонах ARM.
"variables": {
"workspaceResourceId": "[resourceId('microsoft.OperationalInsights/Workspaces', parameters('workspace'))]",
"_solutionName": "Solution name", // Enter your solution name
"_solutionVersion": "3.0.0", // must be 3.0.0 or above
"_solutionAuthor": "Contoso", // Enter the name of the author
"_packageIcon": "<img src=\"{LogoLink}\" width=\"75px\" height=\"75px\">", // Enter the http link for the logo. NOTE: This field is only recommended for Azure Global Cloud.
"_solutionId": "azuresentinel.azure-sentinel-solution-azuresentinel.azure-sentinel-MySolution", // Enter a name for your solution with this format but exchange the 'MySolution' portion
"dataConnectorVersionConnectorDefinition": "1.0.0",
"dataConnectorVersionConnections": "1.0.0",
"_solutionTier": "Community", // This designates the appropriate support - all custom data connectors are "Community"
"_dataConnectorContentIdConnectorDefinition": "MySolutionTemplateConnectorDefinition", // Enter a name for the connector
"dataConnectorTemplateNameConnectorDefinition": "[concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentIdConnectorDefinition')))]",
"_dataConnectorContentIdConnections": "MySolutionTemplateConnections", // Enter a name for the connections this connector makes
"dataConnectorTemplateNameConnections": "[concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentIdConnections')))]",
"_logAnalyticsTableId1": "ExampleConnectorAlerts_CL" // Enter the custom table name - not needed if you are ingesting data into standard tables
// Enter more variables as needed "":""
},
// Next is the resources sections here
В этом шаблоне содержится 5 ресурсов развертывания ARM, в которых размещено 4 компонента соединителя данных CCP.
"resources": [
// resource section 1 - contentTemplates
{
"type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates",
"apiVersion": "2023-04-01-preview",
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/', variables('dataConnectorTemplateNameConnectorDefinition'), variables('dataConnectorVersionConnectorDefinition'))]",
"location": "[parameters('workspace-location')]",
"dependsOn": [
"[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]"
],
"properties": {
"contentId": "[variables('_dataConnectorContentIdConnectorDefinition')]",
"displayName": "[concat(variables('_solutionName'), variables('dataConnectorTemplateNameConnectorDefinition'))]",
"contentKind": "DataConnector",
"mainTemplate": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "[variables('dataConnectorVersionConnectorDefinition')]",
"parameters": {},
"variables": {},
"resources": [
{
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', variables('_dataConnectorContentIdConnectorDefinition')))]",
"apiVersion": "2022-01-01-preview",
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
"properties": {
"parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectorDefinitions', variables('_dataConnectorContentIdConnectorDefinition'))]",
"contentId": "[variables('_dataConnectorContentIdConnectorDefinition')]",
"kind": "DataConnector",
"version": "[variables('dataConnectorVersionConnectorDefinition')]",
"source": {
"sourceId": "[variables('_solutionId')]",
"name": "[variables('_solutionName')]",
"kind": "Solution"
},
"author": {
"name": "[variables('_solutionAuthor')]"
},
"support": {
"name": "[variables('_solutionAuthor')]",
"tier": "[variables('_solutionTier')]"
},
"dependencies": {
"criteria": [
{
"version": "[variables('dataConnectorVersionConnections')]",
"contentId": "[variables('_dataConnectorContentIdConnections')]",
"kind": "ResourcesDataConnector"
}
]
}
}
},
{
"name": "MyDCRV1", // Enter your DCR name
"apiVersion": "2021-09-01-preview",
"type": "Microsoft.Insights/dataCollectionRules",
"location": "[parameters('workspace-location')]",
"kind": null,
"properties":
{
// Enter your DCR properties here.
// Consider using these variables:
// "dataCollectionEndpointId": "[concat('/subscriptions/',parameters('subscription'),'/resourceGroups/',parameters('resourceGroupName'),'/providers/Microsoft.Insights/dataCollectionEndpoints/',parameters('workspace'))]",
// "workspaceResourceId": "[variables('workspaceResourceId')]",
}
},
{
"name": "[variables('_logAnalyticsTableId1')]",
"apiVersion": "2022-10-01",
"type": "Microsoft.OperationalInsights/workspaces/tables",
"location": "[parameters('workspace-location')]",
"kind": null,
"properties":
{
// Enter your log analytics table schema here.
// Consider using this variable for the name property:
// "name": "[variables('_logAnalyticsTableId1')]",
}
}
// Enter more tables if needed.
]
},
"packageKind": "Solution",
"packageVersion": "[variables('_solutionVersion')]",
"packageName": "[variables('_solutionName')]",
"contentProductId": "[concat(substring(variables('_solutionId'), 0, 50),'-','dc','-', uniqueString(concat(variables('_solutionId'),'-','DataConnector','-',variables('_dataConnectorContentIdConnectorDefinition'),'-', variables('dataConnectorVersionConnectorDefinition'))))]",
"packageId": "[variables('_solutionId')]",
"contentSchemaVersion": "3.0.0",
"version": "[variables('_solutionVersion')]"
}
},
// resource 2 section here
// resource section 2 - dataConnectorDefinitions
{
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',variables('_dataConnectorContentIdConnectorDefinition'))]",
"apiVersion": "2022-09-01-preview",
"type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectorDefinitions",
"location": "[parameters('workspace-location')]",
"kind": "Customizable",
"properties":
{
//Enter your data connector definition properties here
//"connectorUiConfig": {
// "graphQueriesTableName": "[variables('_logAnalyticsTableId1')]",
//},
}
},
// resource 3 section here
// resource section 3 - metadata
{
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', variables('_dataConnectorContentIdConnectorDefinition')))]",
"apiVersion": "2022-01-01-preview",
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
"properties": {
"parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectorDefinitions', variables('_dataConnectorContentIdConnectorDefinition'))]",
"contentId": "[variables('_dataConnectorContentIdConnectorDefinition')]",
"kind": "DataConnector",
"version": "[variables('dataConnectorVersionConnectorDefinition')]",
"source": {
"sourceId": "[variables('_solutionId')]",
"name": "[variables('_solutionName')]",
"kind": "Solution"
},
"author": {
"name": "[variables('_solutionAuthor')]"
},
"support": {
"name": "[variables('_solutionAuthor')]",
"tier": "[variables('_solutionTier')]"
},
"dependencies": {
"criteria": [
{
"version": "[variables('dataConnectorVersionConnections')]",
"contentId": "[variables('_dataConnectorContentIdConnections')]",
"kind": "ResourcesDataConnector"
}
]
}
}
},
// resource 4 section here
// resource section 4 - contentTemplates
{
"type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates",
"apiVersion": "2023-04-01-preview",
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/', variables('dataConnectorTemplateNameConnections'), variables('dataConnectorVersionConnections'))]",
"location": "[parameters('workspace-location')]",
"dependsOn": [
"[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]"
],
"properties": {
"contentId": "[variables('_dataConnectorContentIdConnections')]",
"displayName": "[concat(variables('_solutionName'), variables('dataConnectorTemplateNameConnections'))]",
"contentKind": "ResourcesDataConnector",
"mainTemplate": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "[variables('dataConnectorVersionConnections')]",
"parameters":
// These parameters are used by the data connector primarily as properties for the administrator to enter in the UI when configuring the connector
{
"connectorDefinitionName": {
"defaultValue": "connectorDefinitionName",
"type": "string",
"minLength": 1
},
"workspace": {
"defaultValue": "[parameters('workspace')]",
"type": "string"
},
"dcrConfig": {
"defaultValue": {
"dataCollectionEndpoint": "data collection Endpoint",
"dataCollectionRuleImmutableId": "data collection rule immutableId"
},
"type": "object"
}
// Enter additional parameters, for example:
//"domainname": {
// "defaultValue": "domain name",
// "type": "string",
// "minLength": 1
//},
//"apikey": {
// "defaultValue": "",
// "type": "securestring",
// "minLength": 1
//}
},
"variables": {
"_dataConnectorContentIdConnections": "[variables('_dataConnectorContentIdConnections')]"
},
"resources": [
{
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', variables('_dataConnectorContentIdConnections')))]",
"apiVersion": "2022-01-01-preview",
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
"properties": {
"parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentIdConnections'))]",
"contentId": "[variables('_dataConnectorContentIdConnections')]",
"kind": "ResourcesDataConnector",
"version": "[variables('dataConnectorVersionConnections')]",
"source": {
"sourceId": "[variables('_solutionId')]",
"name": "[variables('_solutionName')]",
"kind": "Solution"
},
"author": {
"name": "[variables('_solutionAuthor')]"
},
"support": {
"name": "[variables('_solutionAuthor')]",
"tier": "[variables('_solutionTier')]"
}
}
},
{
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/', 'MyDataConnector')]", // Replace the last part of the name with your data connector name
// To create several connections using this template, make the name dynamic. For example, use the 'concat' function to add the connector name with a GUID using the 'guid' function.
"apiVersion": "2022-12-01-preview",
"type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectors",
"location": "[parameters('workspace-location')]",
"kind": "RestApiPoller",
"properties":
{
// Enter your data connector properties here. If you want to use UI parameters remember to escape the parameter like this: "[[parameters('paramName')]"
// Use parameters as needed. For example:
// "dataType": "My product security event API",
// "response": {
// "eventsJsonPaths": [
// "$"
// ],
// "format": "json"
// },
// "paging": {
// "pagingType": "LinkHeader"
// },
// "connectorDefinitionName": "[[parameters('connectorDefinitionName')]",
// "auth": {
// "apiKeyName": "Authorization",
// "ApiKey": "[[parameters('apikey')]",
// "apiKeyIdentifier": "SSWS",
// "type": "APIKey"
//} ,
// "request": {
// "apiEndpoint": "[[concat('https://',parameters('domainname'),'/api/v1/logs')]",
// "rateLimitQPS": 10,
// "queryWindowInMin": 5,
// "httpMethod": "GET",
// "retryCount": 3,
// "timeoutInSeconds": 60,
// "headers": {
// "Accept": "application/json",
// "User-Agent": "My-Data-Source"
// },
// "startTimeAttributeName": "since",
// "endTimeAttributeName": "until"
// },
// "dcrConfig": {
// "dataCollectionEndpoint": "[[parameters('dcrConfig').dataCollectionEndpoint]",
// "dataCollectionRuleImmutableId": "[[parameters('dcrConfig').dataCollectionRuleImmutableId]",
// "streamName": "Custom-ExampleConnectorAlerts_CL" //This input stream should be the same as the inputStream property configured for the DataCollectionRule
// },
// "isActive": true
}
}
]
},
"packageKind": "Solution",
"packageVersion": "[variables('_solutionVersion')]",
"packageName": "[variables('_solutionName')]",
"contentProductId": "[concat(substring(variables('_solutionId'), 0, 50),'-','rdc','-', uniqueString(concat(variables('_solutionId'),'-','ResourcesDataConnector','-',variables('_dataConnectorContentIdConnections'),'-', variables('dataConnectorVersionConnections'))))]",
"packageId": "[variables('_solutionId')]",
"contentSchemaVersion": "3.0.0",
"version": "[variables('_solutionVersion')]"
}
},
// resource 5 section here
// resource section 5 - contentPackages
{
"type": "Microsoft.OperationalInsights/workspaces/providers/contentPackages",
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/', variables('_solutionId'))]",
"location": "[parameters('workspace-location')]",
"apiVersion": "2023-04-01-preview",
"properties": {
"version": "[variables('_solutionVersion')]",
"kind": "Solution",
"contentSchemaVersion": "3.0.0",
"contentId": "[variables('_solutionId')]",
"source": {
"kind": "Solution",
"name": "[variables('_solutionName')]",
"sourceId": "[variables('_solutionId')]"
},
"author": {
"name": "[variables('_solutionAuthor')]"
},
"support": {
"name": "[variables('_solutionAuthor')]"
},
"dependencies": {
"operator": "AND",
"criteria": [
{
"kind": "DataConnector",
"contentId": "[variables('dataConnectorVersionConnectorDefinition')]",
"version": "[variables('_dataConnectorContentIdConnectorDefinition')]"
}
]
},
"firstPublishDate": "2023-12-05",
"providers": [
"[variables('_solutionAuthor')]"
],
"contentKind": "Solution",
"packageId": "[variables('_solutionId')]",
"contentProductId": "[concat(substring(variables('_solutionId'), 0, 50),'-','sl','-', uniqueString(concat(variables('_solutionId'),'-','Solution','-',variables('_solutionId'),'-', variables('_solutionVersion'))))]",
"displayName": "[variables('_solutionName')]",
"publisherDisplayName": "[variables('_solutionId')]",
"descriptionHtml": "test",
"icon": "[variables('_packageIcon')]"
}
}
// that's the end!
]
}
Дополнительные сведения см. в разделе
События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!