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 |
|---|---|---|---|---|
|
resource
|
path | True |
string minLength: 1maxLength: 90 pattern: ^[-\w\._\(\)]+$ |
The name of the resource group within the user's subscription. The name is case insensitive. |
|
solution
|
path | True |
string |
The name of the IoT Security solution. |
|
subscription
|
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 |
List of additional workspaces |
||
| properties.disabledDataSources |
Disabled data sources. Disabling these data sources compromises the system. |
||
| properties.export |
List of additional options for exporting to workspace data. |
||
| properties.recommendationsConfiguration |
List of the configuration status for each recommendation type. |
||
| properties.status |
Status of the IoT Security solution. |
||
| properties.unmaskedIpLoggingStatus |
Unmasked IP address logging status |
||
| properties.userDefinedResources |
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 |
Updated |
|
| 201 Created |
Created |
|
| Other Status Codes |
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 |
|---|---|
|
Additional |
List of data types sent to workspace |
|
Additional |
Properties of the additional workspaces. |
|
Additional |
Workspace type. |
|
Cloud |
Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). |
|
Cloud |
The error detail. |
|
created |
The type of identity that created the resource. |
|
Data |
Disabled data sources. Disabling these data sources compromises the system. |
|
Error |
The resource management error additional info. |
|
Export |
List of additional options for exporting to workspace data. |
|
Io |
IoT Security solution configuration and resource information. |
|
Recommendation |
Recommendation status. When the recommendation status is disabled recommendations are not generated. |
|
Recommendation |
The type of IoT Security recommendation. |
|
Recommendation |
The type of IoT Security recommendation. |
|
Security |
Status of the IoT Security solution. |
|
system |
Metadata pertaining to creation and last modification of the resource. |
|
Unmasked |
Unmasked IP address logging status |
|
User |
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 |
List of data types sent to workspace |
||
| type | 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 |
The error additional info. |
|
| error.code |
string |
The error code. |
| error.details |
The error details. |
|
| error.message |
string |
The error message. |
| error.target |
string |
The error target. |
CloudErrorBody
The error detail.
| Name | Type | Description |
|---|---|---|
| additionalInfo |
The error additional info. |
|
| code |
string |
The error code. |
| details |
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 |
List of additional workspaces |
||
| properties.autoDiscoveredResources |
string[] |
List of resources that were automatically discovered as relevant to the security solution. |
|
| properties.disabledDataSources |
Disabled data sources. Disabling these data sources compromises the system. |
||
| properties.displayName |
string |
Resource display name. |
|
| properties.export |
List of additional options for exporting to workspace data. |
||
| properties.iotHubs |
string[] |
IoT Hub resource IDs |
|
| properties.recommendationsConfiguration |
List of the configuration status for each recommendation type. |
||
| properties.status | Enabled |
Status of the IoT Security solution. |
|
| properties.unmaskedIpLoggingStatus | Disabled |
Unmasked IP address logging status |
|
| properties.userDefinedResources |
Properties of the IoT Security solution's user defined resources. |
||
| properties.workspace |
string |
Workspace resource ID |
|
| 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 |
The type of IoT Security recommendation. |
||
| status | 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 |
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 |
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. |