다음을 통해 공유


코드리스 커넥터 플랫폼에 대한 데이터 커넥터 정의 참조

CCP(Codeless Connector Platform)를 사용하여 데이터 커넥터를 만들려면 이 문서를 Microsoft Sentinel REST API for Data Connector Definitions 참조 문서의 보완으로 사용합니다. 특히 이 참조 문서는 다음 섹션에서 확장됩니다.

  • connectorUiConfig - Microsoft Sentinel의 데이터 커넥터 페이지에 표시되는 시각적 요소 및 텍스트를 정의합니다.

자세한 내용은 코드 없는 커넥터 만들기를 참조 하세요.

데이터 커넥터 정의 - 만들기 또는 업데이트

REST API 문서에서 만들기 또는 업데이트 작업을 참조하여 안정적인 최신 또는 미리 보기 API 버전을 찾습니다. 작업에만 update 값이 etag 필요합니다.

PUT 메서드

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

URI 매개 변수

최신 API 버전 에 대한 자세한 내용은 데이터 커넥터 정의 - URI 매개 변수 만들기 또는 업데이트

속성 설명
dataConnectorDefinitionName 데이터 커넥터 정의는 고유한 이름이어야 하며 요청 본문name 매개 변수와 동일합니다.
resourceGroupName 대/소문자를 구분하지 않는 리소스 그룹의 이름입니다.
subscriptionId 대상 구독의 ID입니다.
workspaceName ID가 아닌 작업 영역의 이름입니다.
Regex 패턴: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
api-version 이 작업에 사용할 API 버전입니다.

요청 본문

API를 사용하여 CCP 데이터 커넥터 정의를 만들기 위한 요청 본문에는 다음과 같은 구조가 있습니다.

{
    "kind": "Customizable",
    "properties": {
        "connectorUIConfig": {}
    }
}

dataConnectorDefinition 에는 다음과 같은 속성이 있습니다.

속성 필수 Type 설명
종류 True 문자열 Customizable API 폴링 데이터 커넥터의 경우 또는 Static 그렇지 않은 경우
속성.connectorUiConfig True 중첩된 JSON
connectorUiConfig
데이터 커넥터의 UI 구성 속성

커넥터의 사용자 인터페이스 구성

이 섹션에서는 데이터 커넥터 페이지의 사용자 인터페이스를 사용자 지정하는 데 사용할 수 있는 구성 옵션에 대해 설명합니다.

다음 스크린샷은 사용자 인터페이스의 주목할 만한 영역에 해당하는 숫자로 강조 표시된 샘플 데이터 커넥터 페이지를 보여 줍니다.

섹션 레이블이 1~9인 샘플 데이터 커넥터 페이지의 스크린샷.

사용자 인터페이스를 구성하는 데 필요한 섹션의 connectorUiConfig 다음 각 요소는 API의 CustomizableConnectorUiConfig 부분에 해당합니다.

필드 필수 Type 설명 스크린샷 주목할 만한 영역 #
title True string 데이터 커넥터 페이지에 표시되는 제목 1
id string 내부 사용에 대한 사용자 지정 커넥터 ID 설정
로고 string SVG 형식의 이미지 파일 경로입니다. 값이 구성되지 않은 경우 기본 로고가 사용됩니다. 2
publisher True string 커넥터의 공급자 3
descriptionMarkdown True markdown의 문자열 markdown 언어를 추가하여 기능을 향상할 수 있는 커넥터에 대한 설명입니다. 4
sampleQueries True 중첩된 JSON
sampleQueries
고객이 이벤트 로그에서 데이터를 찾는 방법을 이해하기 위한 쿼리입니다.
graphQueries True 중첩된 JSON
graphQueries
지난 2주 동안의 데이터 수집을 제공하는 쿼리입니다.

모든 데이터 커넥터의 데이터 형식에 대해 하나의 쿼리를 제공하거나 각 데이터 형식에 대해 다른 쿼리를 제공합니다.
5
graphQueriesTableName 커넥터에서 데이터를 삽입하는 테이블의 이름을 설정합니다. 이 이름은 자리 표시자 및 lastDataReceivedQuery 값을 지정하여 {{graphQueriesTableName}} 다른 쿼리에서 graphQueries 사용할 수 있습니다.
dataTypes True 중첩된 JSON
dataTypes
커넥터의 모든 데이터 형식 목록 및 각 데이터 형식에 대한 마지막 이벤트의 시간을 가져오는 쿼리입니다. 6
connectivityCriteria True 중첩된 JSON
connectivityCriteria
커넥터가 연결되어 있는지 확인하는 방법을 정의하는 개체입니다. 7
permissions True 중첩된 JSON
permissions
커넥터를 사용하거나 사용하지 않도록 설정하는 데 필요한 권한을 나열하는 UI의 필수 구성 요소 섹션 아래에 표시되는 정보입니다. 8
instructionSteps True 중첩된 JSON
지침
커넥터를 설치하는 방법과 지침 탭에 표시되는 실행 가능한 컨트롤을 설명하는 위젯 파트의 배열입니다 . 9

connectivityCriteria

필드 필수 Type 설명
Type True 문자열 다음 두 가지 옵션 중 하나: HasDataConnectors – 이 값은 CCP와 같은 API 폴링 데이터 커넥터에 가장 적합합니다. 커넥터는 하나 이상의 활성 연결로 연결된 것으로 간주됩니다.

isConnectedQuery – 이 값은 다른 유형의 데이터 커넥터에 가장 적합합니다. 커넥터는 제공된 쿼리가 데이터를 반환할 때 연결된 것으로 간주됩니다.
True이면 형식이 입니다 isConnectedQuery 문자열 특정 기간 내에 데이터가 수신되는지 여부를 확인하는 쿼리입니다. 예: CommonSecurityLog | where DeviceVendor == \"Vectra Networks\"\n| where DeviceProduct == \"X Series\"\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(7d)"

dataTypes

배열 값 Type Description
이름 문자열 변수에 대한lastDataReceivedQuery 지원을 포함하여 의미 있는 설명입니다 graphQueriesTableName .

예: {{graphQueriesTableName}}
lastDataReceivedQuery 문자열 한 행을 반환하고 데이터를 마지막으로 받은 시간을 나타내거나 결과가 없는 경우 데이터가 없음을 나타내는 KQL 쿼리입니다.

예: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)

graphQueries

지난 2주 동안의 데이터 수집을 표시하는 쿼리를 정의합니다.

모든 데이터 커넥터의 데이터 형식에 대해 하나의 쿼리를 제공하거나 각 데이터 형식에 대해 다른 쿼리를 제공합니다.

배열 값 Type 설명
metricName 문자열 그래프의 의미 있는 이름입니다.

예: Total data received
legend 문자열 변수 참조를 포함하여 차트 오른쪽의 범례에 나타나는 문자열입니다.

예: {{graphQueriesTableName}}
baseQuery 문자열 변수 참조를 포함하여 관련 이벤트를 필터링하는 쿼리입니다.

예: TableName_CL | where ProviderName == "myprovider" 또는 {{graphQueriesTableName}}

permissions

배열 값 Type 설명
customs 문자열 데이터 연결에 필요한 모든 사용자 지정 권한을 다음 구문으로 설명합니다.
{
"name":string,
"description":string
}

예: customs 값은 Microsoft Sentinel 필수 구성 요소 섹션에 파란색 정보 아이콘이 표시됩니다. GitHub 예제에서 이 값은 GitHub API 개인 토큰 키 줄 과 관련이 있습니다. GitHub 개인 토큰에 액세스해야 합니다...
라이선스 ENUM 다음 값 중 하나로 필수 라이선스를 정의합니다. OfficeIRM,OfficeATP, Office365, AadP1P2, Mcas, Aatp, Mdatp, Mtp, IoT

예: licenses 값은 Microsoft Sentinel에서 라이선스: 필수 Azure AD Premium P2로 표시됩니다.
resourceProvider resourceProvider Azure 리소스에 대한 필수 구성 요소를 설명합니다.

예: resourceProvider 값은 다음과 같이 Microsoft Sentinel 필수 구성 요소 섹션에 표시됩니다.
작업 영역: 읽기 및 쓰기 권한이 필요합니다.
키: 작업 영역의 공유 키에 대한 읽기 권한이 필요합니다.
테넌트 ENUM 값의 배열
예시:

"tenant": [
"GlobalADmin",
"SecurityAdmin"
]
다음 값 중 하나 이상으로 필수 권한을 정의합니다. "GlobalAdmin", "SecurityAdmin", "SecurityReader", "InformationProtection"

예: Microsoft Sentinel에서 tenant 값을 다음과 같이 표시합니다. 테넌트 사용 권한: 작업 영역의 테넌트에 Global Administrator 또는 Security Administrator 필요

Important

가장 적은 권한으로 역할을 사용하는 것이 좋습니다. 이렇게 하면 조직의 보안을 개선하는 데 도움이 됩니다. 전역 관리자는 기존 역할을 사용할 수 없는 경우 긴급 시나리오로 제한해야 하는 높은 권한 있는 역할입니다.

resourceProvider

하위 배열 값 Type 설명
provider ENUM 다음 값 중 하나를 사용하여 리소스 공급자를 설명합니다.
- Microsoft.OperationalInsights/workspaces
- Microsoft.OperationalInsights/solutions
- Microsoft.OperationalInsights/workspaces/datasources
- microsoft.aadiam/diagnosticSettings
- Microsoft.OperationalInsights/workspaces/sharedKeys
- Microsoft.Authorization/policyAssignments
providerDisplayName 문자열 필수 구성 요소 아래의 목록 항목으로, 커넥터 페이지에서 필수 구성 요소의 유효성을 검사할 때 빨간색 "x" 또는 녹색 확인 표시가 표시됩니다. 본보기 "Workspace"
permissionsDisplayText 문자열 requiredPermissions에 구성된 값에 해당하는 읽기, 쓰기 또는 읽기 및 쓰기 권한에 대한 텍스트를 표시합니다.
requiredPermissions {
"action":부울,
"delete":부울,
"read":부울,
"write":부울
}
커넥터에 필요한 최소 사용 권한을 설명합니다.
범위 ENUM 데이터 커넥터의 범위를 "Subscription", "ResourceGroup", "Workspace" 값 중 하나로 설명합니다.

sampleQueries

배열 값 Type 설명
description 문자열 샘플 쿼리에 대한 의미 있는 설명입니다.

예: Top 10 vulnerabilities detected
query 문자열 데이터 형식의 데이터를 가져오는 데 사용되는 샘플 쿼리입니다.

예: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10

markdown을 사용하여 인라인 링크를 정의하려면 다음 예제를 사용합니다.

{
   "title": "",
   "description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)"
}

링크를 ARM 템플릿으로 정의하려면 다음 예제를 지침으로 사용합니다.

{
   "title": "Azure Resource Manager (ARM) template",
   "description": "1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)]({URL to custom ARM template})"
}

instructionSteps

이 섹션에서는 Microsoft Sentinel의 데이터 커넥터 페이지에 표시되고 다음 구조를 포함하는 명령 집합을 정의하는 매개 변수를 제공합니다.

"instructionSteps": [
    {
        "title": "",
        "description": "",
        "instructions": [
        {
            "type": "",
            "parameters": {}
        }
        ],
        "innerSteps": {}
    }
]
배열 속성 필수 Type 설명
title 문자열 지침의 제목을 정의합니다.
description 문자열 지침에 대한 의미 있는 설명을 정의합니다.
innerSteps 배열 내부 명령어 단계의 배열을 정의합니다.
지침 True 명령의 배열 특정 매개 변수 형식의 명령 배열을 정의합니다.

지침

다양한 매개 변수와 더 많은 instructionSteps를 그룹에 중첩하는 기능을 사용하여 명령 그룹을 표시합니다. 여기에 정의된 매개 변수는 해당합니다.

Type 배열 속성 설명
OAuthForm OAuthForm OAuth를 사용하여 연결
입력란 입력란 이 쌍은 .와 쌍을 이 ConnectionToggleButton깁니다. 사용 가능한 형식은 4가지입니다.
  • password
  • text
  • number
  • email
  • ConnectionToggleButton ConnectionToggleButton 자리 표시자 매개 변수를 통해 제공된 연결 정보를 기반으로 DCR의 배포를 트리거합니다. 지원되는 매개 변수는 다음과 같습니다.
  • name :필수
  • disabled
  • isPrimary
  • connectLabel
  • disconnectLabel
  • CopyableLabel CopyableLabel 끝에 복사 단추가 있는 텍스트 필드를 표시합니다. 단추를 선택하면 필드 값이 복사됩니다.
    InfoMessage InfoMessage 인라인 정보 메시지를 정의합니다.
    InstructionStepsGroup InstructionStepsGroup 필요에 따라 확장되거나 축소 가능한 명령 그룹을 별도의 지침 섹션에 표시합니다.
    InstallAgent InstallAgent 다양한 설치 요구 사항을 충족하기 위해 Azure의 다른 부분에 대한 링크를 표시합니다.

    OAuthForm

    이 구성 요소를 사용하려면 형식이 OAuth2 데이터 커넥터 템플릿의 속성에 있어야 auth 합니다.

    "instructions": [
    {
      "type": "OAuthForm",
      "parameters": {
        "clientIdLabel": "Client ID",
        "clientSecretLabel": "Client Secret",
        "connectButtonLabel": "Connect",
        "disconnectButtonLabel": "Disconnect"
      }          
    }
    ]
    

    입력란

    다음은 형식의 몇 가지 예입니다 Textbox . 이러한 예제는 Codeless Connector Platform에 대한 데이터 커넥터 참조의 예제 auth 섹션에서 사용되는 매개 변수에 해당합니다. 각 4가지 형식에 대해 각각에는 label, placeholdername.

    "instructions": [
    {
      "type": "Textbox",
      "parameters": {
          {
            "label": "User name",
            "placeholder": "User name",
            "type": "text",
            "name": "username"
          }
      }
    },
    {
      "type": "Textbox",
      "parameters": {
          "label": "Secret",
          "placeholder": "Secret",
          "type": "password",
          "name": "password"
      }
    }
    ]
    

    ConnectionToggleButton

    "instructions": [
    {
      "type": "ConnectionToggleButton",
      "parameters": {
        "connectLabel": "toggle",
        "name": "toggle"
      }          
    }
    ]
    

    CopyableLabel

    예시:

    필드의 값 복사 단추 스크린샷.

    샘플 코드:

    {
        "parameters": {
            "fillWith": [
                "WorkspaceId",
                "PrimaryKey"
                ],
            "label": "Here are some values you'll need to proceed.",
            "value": "Workspace is {0} and PrimaryKey is {1}"
        },
        "type": "CopyableLabel"
    }
    
    배열 값 필수 Type 설명
    fillWith ENUM 자리 표시자를 채우는 데 사용되는 환경 변수의 배열입니다. 여러 자리 표시자를 쉼표로 구분합니다. 예: {0},{1}

    지원되는 값은 workspaceId, workspaceName, primaryKey, MicrosoftAwsAccount, subscriptionId입니다.
    label True 문자열 텍스트 상자 위의 레이블에 대한 텍스트를 정의합니다.
    value True 문자열 텍스트 상자에 표시할 값을 정의하고 자리 표시자를 지원합니다.
    rows 사용자 인터페이스 영역의 행을 정의합니다. 기본적으로 1로 설정됩니다.
    wideLabel Boolean 긴 문자열에 대한 넓은 레이블을 결정합니다. 기본적으로 false로 설정됩니다.

    InfoMessage

    인라인 정보 메시지의 예는 다음과 같습니다.

    인라인 정보 메시지의 스크린샷.

    반면, 다음 이미지는 인라인이 아닌 정보 메시지를 보여줍니다.

    인라인이 아닌 정보 메시지의 스크린샷

    배열 값 Type 설명
    text 문자열 메시지에 표시할 텍스트를 정의합니다.
    visible 부울 메시지를 표시할지 여부를 결정합니다.
    inline 부울 정보 메시지가 표시되는 방식을 결정합니다.

    - true: (권장) 지침에 포함된 정보 메시지를 표시합니다.
    - false: 파란색 백그라운드를 추가합니다.

    InstructionStepsGroup

    확장 가능한 명령 그룹의 예는 다음과 같습니다.

    확장 가능한 추가 지침 그룹의 스크린샷.

    배열 값 필수 Type 설명
    title True 문자열 지침 단계의 제목을 정의합니다.
    description 문자열 선택적 설명 텍스트입니다.
    canCollapseAllSections Boolean 섹션이 축소 가능한 아코디언인지 여부를 결정합니다.
    noFxPadding Boolean true인 경우 공간을 절약하기 위해 높이 패딩을 줄입니다.
    expanded Boolean true인 경우 기본적으로 확장된 것으로 표시됩니다.

    자세한 예제는 Windows DNS 커넥터에 대한 구성 JSON을 참조하세요.

    InstallAgent

    일부 InstallAgent 형식은 단추로 표시되며 다른 유형은 링크로 표시됩니다. 다음은 두 가지에 대한 예입니다.

    단추로 추가된 링크의 스크린샷.

    인라인 텍스트로 추가된 링크의 스크린샷.

    배열 값 필수 Type 설명
    linkType True ENUM 다음 값 중 하나로 연결 종류를 결정합니다.

    InstallAgentOnWindowsVirtualMachine
    InstallAgentOnWindowsNonAzure
    InstallAgentOnLinuxVirtualMachine
    InstallAgentOnLinuxNonAzure
    OpenSyslogSettings
    OpenCustomLogsSettings
    OpenWaf
    OpenAzureFirewall OpenMicrosoftAzureMonitoring
    OpenFrontDoors
    OpenCdnProfile
    AutomaticDeploymentCEF
    OpenAzureInformationProtection
    OpenAzureActivityLog
    OpenIotPricingModel
    OpenPolicyAssignment
    OpenAllAssignmentsBlade
    OpenCreateDataCollectionRule
    policyDefinitionGuid linkType을 사용하는 OpenPolicyAssignment 경우 True입니다. 문자열 정책 기반 커넥터의 경우 기본 제공 정책 정의의 GUID를 정의합니다.
    assignMode ENUM 정책 기반 커넥터의 경우 할당 모드를 Initiative, Policy 값 중 하나로 정의합니다.
    dataCollectionRuleType ENUM DCR 기반 커넥터의 경우 데이터 수집 규칙 형식의 형식을 또는 .로 SecurityEventForwardEvent정의합니다.

    예제 데이터 커넥터 정의

    다음 예제에서는 이 문서에 정의된 일부 구성 요소를 JSON 본문 형식으로 결합하여 데이터 만들기 또는 업데이트 커넥터 정의 API와 함께 사용합니다.

    다른 CCP 데이터 커넥터를 검토하는 connectorUiConfig 더 많은 예제를 보려면 레거시 CCP를 사용하는 커넥터에도 UI 만들기의 유효한 예가 있습니다.

    {
        "kind": "Customizable",
        "properties": {
            "connectorUiConfig": {
              "title": "Example CCP Data Connector",
              "publisher": "My Company",
              "descriptionMarkdown": "This is an example of data connector",
              "graphQueriesTableName": "ExampleConnectorAlerts_CL",
              "graphQueries": [
                {
                  "metricName": "Alerts received",
                  "legend": "My data connector alerts",
                  "baseQuery": "{{graphQueriesTableName}}"
                },   
               {
                  "metricName": "Events received",
                  "legend": "My data connector events",
                  "baseQuery": "ASIMFileEventLogs"
                }
              ],
                "sampleQueries": [
                {
                    "description": "All alert logs",
                    "query": "{{graphQueriesTableName}} \n | take 10"
                }
              ],
              "dataTypes": [
                {
                  "name": "{{graphQueriesTableName}}",
                  "lastDataReceivedQuery": "{{graphQueriesTableName}} \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)"
                },
                 {
                  "name": "ASIMFileEventLogs",
                  "lastDataReceivedQuery": "ASIMFileEventLogs \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)"
                 }
              ],
              "connectivityCriteria": [
                {
                  "type": "HasDataConnectors"
                }
              ],
              "permissions": {
                "resourceProvider": [
                  {
                    "provider": "Microsoft.OperationalInsights/workspaces",
                    "permissionsDisplayText": "Read and Write permissions are required.",
                    "providerDisplayName": "Workspace",
                    "scope": "Workspace",
                    "requiredPermissions": {
                      "write": true,
                      "read": true,
                      "delete": true
                    }
                  },
                ],
                "customs": [
                  {
                    "name": "Example Connector API Key",
                    "description": "The connector API key username and password is required"
                  }
                ] 
            },
              "instructionSteps": [
                {
                  "title": "Connect My Connector to Microsoft Sentinel",
                  "description": "To enable the connector provide the required information below and click on Connect.\n>",
                  "instructions": [
                   {
                      "type": "Textbox",
                      "parameters": {
                        "label": "User name",
                        "placeholder": "User name",
                        "type": "text",
                        "name": "username"
                      }
                    },
                    {
                      "type": "Textbox",
                      "parameters": {
                        "label": "Secret",
                        "placeholder": "Secret",
                        "type": "password",
                        "name": "password"
                      }
                    },
                    {
                      "type": "ConnectionToggleButton",
                      "parameters": {
                        "connectLabel": "toggle",
                        "name": "toggle"
                      }
                    }
                  ]
                }
              ]
            }
        }
    }