Share via


Iot Security Solution - Create Or Update

Use this method to create or update yours IoT Security solution

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}?api-version=2019-08-01

URI Parameters

Name In Required Type Description
resourceGroupName
path True

string

minLength: 1
maxLength: 90
pattern: ^[-\w\._\(\)]+$

The name of the resource group within the user's subscription. The name is case insensitive.

solutionName
path True

string

The name of the IoT Security solution.

subscriptionId
path True

string

pattern: ^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$

Azure subscription ID

api-version
query True

string

API version for the operation

Request Body

Name Required Type Description
properties.displayName True

string

Resource display name.

properties.iotHubs True

string[]

IoT Hub resource IDs

location

string

The resource location.

properties.additionalWorkspaces

AdditionalWorkspacesProperties[]

List of additional workspaces

properties.disabledDataSources

DataSource[]

Disabled data sources. Disabling these data sources compromises the system.

properties.export

ExportData[]

List of additional options for exporting to workspace data.

properties.recommendationsConfiguration

RecommendationConfigurationProperties[]

List of the configuration status for each recommendation type.

properties.status

SecuritySolutionStatus

Status of the IoT Security solution.

properties.unmaskedIpLoggingStatus

UnmaskedIpLoggingStatus

Unmasked IP address logging status

properties.userDefinedResources

UserDefinedResourcesProperties

Properties of the IoT Security solution's user defined resources.

properties.workspace

string

Workspace resource ID

tags

object

Resource tags

Responses

Name Type Description
200 OK

IoTSecuritySolutionModel

Updated

201 Created

IoTSecuritySolutionModel

Created

Other Status Codes

CloudError

Error response describing why the operation failed.

Security

azure_auth

Azure Active Directory OAuth2 Flow

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Name Description
user_impersonation impersonate your user account

Examples

Create or update a IoT security solution

Sample request

PUT https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/MyGroup/providers/Microsoft.Security/iotSecuritySolutions/default?api-version=2019-08-01

{
  "tags": {},
  "location": "East Us",
  "properties": {
    "workspace": "/subscriptions/c4930e90-cd72-4aa5-93e9-2d081d129569/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace1",
    "status": "Enabled",
    "export": [],
    "disabledDataSources": [],
    "displayName": "Solution Default",
    "iotHubs": [
      "/subscriptions/075423e9-7d33-4166-8bdf-3920b04e3735/resourceGroups/myRg/providers/Microsoft.Devices/IotHubs/FirstIotHub"
    ],
    "userDefinedResources": {
      "query": "where type != \"microsoft.devices/iothubs\" | where name contains \"iot\"",
      "querySubscriptions": [
        "075423e9-7d33-4166-8bdf-3920b04e3735"
      ]
    },
    "recommendationsConfiguration": [
      {
        "recommendationType": "IoT_OpenPorts",
        "status": "Disabled"
      },
      {
        "recommendationType": "IoT_SharedCredentials",
        "status": "Disabled"
      }
    ],
    "unmaskedIpLoggingStatus": "Enabled"
  }
}

Sample response

{
  "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/MyGroup/providers/Microsoft.Security/Locations/eastus/IoTSecuritySolutions/default",
  "name": "default",
  "type": "Microsoft.Security/IoTSecuritySolutions",
  "location": "East Us",
  "tags": {},
  "properties": {
    "workspace": "/subscriptions/c4930e90-cd72-4aa5-93e9-2d081d129569/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace1",
    "status": "Enabled",
    "export": [],
    "disabledDataSources": [],
    "displayName": "Solution Default",
    "iotHubs": [
      "/subscriptions/075423e9-7d33-4166-8bdf-3920b04e3735/resourceGroups/myRg/providers/Microsoft.Devices/IotHubs/FirstIotHub"
    ],
    "userDefinedResources": {
      "query": "where type != \"microsoft.devices/iothubs\" | where name contains \"iot\"",
      "querySubscriptions": [
        "075423e9-7d33-4166-8bdf-3920b04e3735"
      ]
    },
    "autoDiscoveredResources": [
      "/subscriptions/075423e9-7d33-4166-8bdf-3920b04e3735",
      "/subscriptions/075423e9-7d33-4166-8bdf-3920b04e3735/resourceGroups/myRg/providers/Microsoft.Devices/IotHubs/FirstIotHub"
    ],
    "recommendationsConfiguration": [
      {
        "recommendationType": "IoT_ACRAuthentication",
        "name": "Service Principal Not Used with ACR",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_AgentSendsUnutilizedMessages",
        "name": "Agent sending underutilized messages",
        "status": "TurnedOn"
      },
      {
        "recommendationType": "IoT_Baseline",
        "name": "Operating system (OS) baseline validation failure",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_EdgeHubMemOptimize",
        "name": "Edge Hub memory can be optimized",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_EdgeLoggingOptions",
        "name": "No Logging Configured for Edge Module",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_InconsistentModuleSettings",
        "name": "Module Settings Inconsistent in SecurityGroup",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_InstallAgent",
        "name": "Install the Azure Security of Things Agent",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_IPFilter_DenyAll",
        "name": "Default IP Filter Policy should be Deny",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_IPFilter_PermissiveRule",
        "name": "IP Filter rule includes large IP range",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_OpenPorts",
        "name": "Open Ports On Device",
        "status": "Disabled"
      },
      {
        "recommendationType": "IoT_PermissiveFirewallPolicy",
        "name": "Permissive firewall policy in one of the chains was found",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_PermissiveInputFirewallRules",
        "name": "Permissive firewall rule in the input chain was found",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_PermissiveOutputFirewallRules",
        "name": "Permissive firewall rule in the output chain was found",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_PrivilegedDockerOptions",
        "name": "High level permissions configured in Edge model twin for Edge module",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_SharedCredentials",
        "name": "Same Authentication Credentials used by multiple devices",
        "status": "Disabled"
      },
      {
        "recommendationType": "IoT_VulnerableTLSCipherSuite",
        "name": "TLS cipher suite upgrade",
        "status": "Enabled"
      }
    ],
    "unmaskedIpLoggingStatus": "Enabled"
  },
  "systemData": {
    "createdBy": "string",
    "createdByType": "User",
    "createdAt": "2020-04-27T21:53:29.0928001Z",
    "lastModifiedBy": "string",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2020-04-27T21:53:29.0928001Z"
  }
}
{
  "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/MyGroup/providers/Microsoft.Security/Locations/eastus/IoTSecuritySolutions/default",
  "name": "default",
  "type": "Microsoft.Security/IoTSecuritySolutions",
  "location": "East Us",
  "tags": {},
  "properties": {
    "workspace": "/subscriptions/c4930e90-cd72-4aa5-93e9-2d081d129569/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace1",
    "status": "Enabled",
    "export": [],
    "disabledDataSources": [],
    "displayName": "Solution Default",
    "iotHubs": [
      "/subscriptions/075423e9-7d33-4166-8bdf-3920b04e3735/resourceGroups/myRg/providers/Microsoft.Devices/IotHubs/FirstIotHub"
    ],
    "userDefinedResources": {
      "query": "where type != \"microsoft.devices/iothubs\" | where name contains \"iot\"",
      "querySubscriptions": [
        "075423e9-7d33-4166-8bdf-3920b04e3735"
      ]
    },
    "autoDiscoveredResources": [
      "/subscriptions/075423e9-7d33-4166-8bdf-3920b04e3735",
      "/subscriptions/075423e9-7d33-4166-8bdf-3920b04e3735/resourceGroups/myRg/providers/Microsoft.Devices/IotHubs/FirstIotHub"
    ],
    "recommendationsConfiguration": [
      {
        "recommendationType": "IoT_ACRAuthentication",
        "name": "Service Principal Not Used with ACR",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_AgentSendsUnutilizedMessages",
        "name": "Agent sending underutilized messages",
        "status": "TurnedOn"
      },
      {
        "recommendationType": "IoT_Baseline",
        "name": "Operating system (OS) baseline validation failure",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_EdgeHubMemOptimize",
        "name": "Edge Hub memory can be optimized",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_EdgeLoggingOptions",
        "name": "No Logging Configured for Edge Module",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_InconsistentModuleSettings",
        "name": "Module Settings Inconsistent in SecurityGroup",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_InstallAgent",
        "name": "Install the Azure Security of Things Agent",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_IPFilter_DenyAll",
        "name": "Default IP Filter Policy should be Deny",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_IPFilter_PermissiveRule",
        "name": "IP Filter rule includes large IP range",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_OpenPorts",
        "name": "Open Ports On Device",
        "status": "Disabled"
      },
      {
        "recommendationType": "IoT_PermissiveFirewallPolicy",
        "name": "Permissive firewall policy in one of the chains was found",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_PermissiveInputFirewallRules",
        "name": "Permissive firewall rule in the input chain was found",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_PermissiveOutputFirewallRules",
        "name": "Permissive firewall rule in the output chain was found",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_PrivilegedDockerOptions",
        "name": "High level permissions configured in Edge model twin for Edge module",
        "status": "Enabled"
      },
      {
        "recommendationType": "IoT_SharedCredentials",
        "name": "Same Authentication Credentials used by multiple devices",
        "status": "Disabled"
      },
      {
        "recommendationType": "IoT_VulnerableTLSCipherSuite",
        "name": "TLS cipher suite upgrade",
        "status": "Enabled"
      }
    ],
    "unmaskedIpLoggingStatus": "Enabled"
  },
  "systemData": {
    "createdBy": "string",
    "createdByType": "User",
    "createdAt": "2020-04-27T21:53:29.0928001Z",
    "lastModifiedBy": "string",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2020-04-27T21:53:29.0928001Z"
  }
}

Definitions

Name Description
AdditionalWorkspaceDataType

List of data types sent to workspace

AdditionalWorkspacesProperties

Properties of the additional workspaces.

AdditionalWorkspaceType

Workspace type.

CloudError

Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).

CloudErrorBody

The error detail.

createdByType

The type of identity that created the resource.

DataSource

Disabled data sources. Disabling these data sources compromises the system.

ErrorAdditionalInfo

The resource management error additional info.

ExportData

List of additional options for exporting to workspace data.

IoTSecuritySolutionModel

IoT Security solution configuration and resource information.

RecommendationConfigStatus

Recommendation status. When the recommendation status is disabled recommendations are not generated.

RecommendationConfigurationProperties

The type of IoT Security recommendation.

RecommendationType

The type of IoT Security recommendation.

SecuritySolutionStatus

Status of the IoT Security solution.

systemData

Metadata pertaining to creation and last modification of the resource.

UnmaskedIpLoggingStatus

Unmasked IP address logging status

UserDefinedResourcesProperties

Properties of the IoT Security solution's user defined resources.

AdditionalWorkspaceDataType

List of data types sent to workspace

Value Description
Alerts
RawEvents

AdditionalWorkspacesProperties

Properties of the additional workspaces.

Name Type Default value Description
dataTypes

AdditionalWorkspaceDataType[]

List of data types sent to workspace

type

AdditionalWorkspaceType

Sentinel

Workspace type.

workspace

string

Workspace resource id

AdditionalWorkspaceType

Workspace type.

Value Description
Sentinel

CloudError

Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).

Name Type Description
error.additionalInfo

ErrorAdditionalInfo[]

The error additional info.

error.code

string

The error code.

error.details

CloudErrorBody[]

The error details.

error.message

string

The error message.

error.target

string

The error target.

CloudErrorBody

The error detail.

Name Type Description
additionalInfo

ErrorAdditionalInfo[]

The error additional info.

code

string

The error code.

details

CloudErrorBody[]

The error details.

message

string

The error message.

target

string

The error target.

createdByType

The type of identity that created the resource.

Value Description
User
Application
ManagedIdentity
Key

DataSource

Disabled data sources. Disabling these data sources compromises the system.

Value Description
TwinData

Devices twin data

ErrorAdditionalInfo

The resource management error additional info.

Name Type Description
info

object

The additional info.

type

string

The additional info type.

ExportData

List of additional options for exporting to workspace data.

Value Description
RawEvents

Agent raw events

IoTSecuritySolutionModel

IoT Security solution configuration and resource information.

Name Type Default value Description
id

string

Resource Id

location

string

The resource location.

name

string

Resource name

properties.additionalWorkspaces

AdditionalWorkspacesProperties[]

List of additional workspaces

properties.autoDiscoveredResources

string[]

List of resources that were automatically discovered as relevant to the security solution.

properties.disabledDataSources

DataSource[]

Disabled data sources. Disabling these data sources compromises the system.

properties.displayName

string

Resource display name.

properties.export

ExportData[]

List of additional options for exporting to workspace data.

properties.iotHubs

string[]

IoT Hub resource IDs

properties.recommendationsConfiguration

RecommendationConfigurationProperties[]

List of the configuration status for each recommendation type.

properties.status

SecuritySolutionStatus

Enabled

Status of the IoT Security solution.

properties.unmaskedIpLoggingStatus

UnmaskedIpLoggingStatus

Disabled

Unmasked IP address logging status

properties.userDefinedResources

UserDefinedResourcesProperties

Properties of the IoT Security solution's user defined resources.

properties.workspace

string

Workspace resource ID

systemData

systemData

Azure Resource Manager metadata containing createdBy and modifiedBy information.

tags

object

Resource tags

type

string

Resource type

RecommendationConfigStatus

Recommendation status. When the recommendation status is disabled recommendations are not generated.

Value Description
Disabled
Enabled

RecommendationConfigurationProperties

The type of IoT Security recommendation.

Name Type Default value Description
name

string

recommendationType

RecommendationType

The type of IoT Security recommendation.

status

RecommendationConfigStatus

Enabled

Recommendation status. When the recommendation status is disabled recommendations are not generated.

RecommendationType

The type of IoT Security recommendation.

Value Description
IoT_ACRAuthentication

Authentication schema used for pull an edge module from an ACR repository does not use Service Principal Authentication.

IoT_AgentSendsUnutilizedMessages

IoT agent message size capacity is currently underutilized, causing an increase in the number of sent messages. Adjust message intervals for better utilization.

IoT_Baseline

Identified security related system configuration issues.

IoT_EdgeHubMemOptimize

You can optimize Edge Hub memory usage by turning off protocol heads for any protocols not used by Edge modules in your solution.

IoT_EdgeLoggingOptions

Logging is disabled for this edge module.

IoT_InconsistentModuleSettings

A minority within a device security group has inconsistent Edge Module settings with the rest of their group.

IoT_InstallAgent

Install the Azure Security of Things Agent.

IoT_IPFilter_DenyAll

IP Filter Configuration should have rules defined for allowed traffic and should deny all other traffic by default.

IoT_IPFilter_PermissiveRule

An Allow IP Filter rules source IP range is too large. Overly permissive rules might expose your IoT hub to malicious intenders.

IoT_OpenPorts

A listening endpoint was found on the device.

IoT_PermissiveFirewallPolicy

An Allowed firewall policy was found (INPUT/OUTPUT). The policy should Deny all traffic by default and define rules to allow necessary communication to/from the device.

IoT_PermissiveInputFirewallRules

A rule in the firewall has been found that contains a permissive pattern for a wide range of IP addresses or Ports.

IoT_PermissiveOutputFirewallRules

A rule in the firewall has been found that contains a permissive pattern for a wide range of IP addresses or Ports.

IoT_PrivilegedDockerOptions

Edge module is configured to run in privileged mode, with extensive Linux capabilities or with host-level network access (send/receive data to host machine).

IoT_SharedCredentials

Same authentication credentials to the IoT Hub used by multiple devices. This could indicate an illegitimate device impersonating a legitimate device. It also exposes the risk of device impersonation by an attacker.

IoT_VulnerableTLSCipherSuite

Insecure TLS configurations detected. Immediate upgrade recommended.

SecuritySolutionStatus

Status of the IoT Security solution.

Value Description
Enabled
Disabled

systemData

Metadata pertaining to creation and last modification of the resource.

Name Type Description
createdAt

string (date-time)

The timestamp of resource creation (UTC).

createdBy

string

The identity that created the resource.

createdByType

createdByType

The type of identity that created the resource.

lastModifiedAt

string (date-time)

The timestamp of resource last modification (UTC)

lastModifiedBy

string

The identity that last modified the resource.

lastModifiedByType

createdByType

The type of identity that last modified the resource.

UnmaskedIpLoggingStatus

Unmasked IP address logging status

Value Description
Disabled

Unmasked IP logging is disabled

Enabled

Unmasked IP logging is enabled

UserDefinedResourcesProperties

Properties of the IoT Security solution's user defined resources.

Name Type Description
query

string

Azure Resource Graph query which represents the security solution's user defined resources. Required to start with "where type != "Microsoft.Devices/IotHubs""

querySubscriptions

string[]

pattern: ^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$

List of Azure subscription ids on which the user defined resources query should be executed.