Freigeben über


Custom Recommendations - Create Or Update

Erstellt oder aktualisiert eine benutzerdefinierte Empfehlung über einen bestimmten Bereich

PUT https://management.azure.com/{scope}/providers/Microsoft.Security/customRecommendations/{customRecommendationName}?api-version=2024-08-01

URI-Parameter

Name In Erforderlich Typ Beschreibung
customRecommendationName
path True

string

Name der benutzerdefinierten Empfehlung.

RegEx-Muster: [{]?[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$

scope
path True

string

Der Umfang der benutzerdefinierten Empfehlung. Gültige Bereiche sind: Verwaltungsgruppe (Format: 'Providers/Microsoft.Management/managementGroups/{managementGroup}'), Abonnement (Format: 'subscriptions/{subscriptionId}') oder Security Connector (Format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors/{securityConnectorName})'

api-version
query True

string

Die API-Version, die für diesen Vorgang verwendet werden soll.

Anforderungstext

Name Typ Beschreibung
properties.cloudProviders

RecommendationSupportedClouds[]

Liste aller standardmäßig unterstützten Clouds.

properties.description

string

Die Beschreibung, die sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

properties.displayName

string

Der Anzeigename der von dieser Empfehlung generierten Bewertungen.

properties.query

string

KQL-Abfrage, die die erforderlichen Empfehlungsergebnisse darstellt.

properties.remediationDescription

string

Die Beschreibung der Korrektur, die sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

properties.securityIssue

securityIssue

Der Schweregrad, der sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

properties.severity

severityEnum

Der Schweregrad, der sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

Antworten

Name Typ Beschreibung
200 OK

CustomRecommendation

OK – Aktualisiert

201 Created

CustomRecommendation

Erstellt

Other Status Codes

ErrorResponse

Fehlerantwort, die beschreibt, warum der Vorgang fehlgeschlagen ist

Sicherheit

azure_auth

Azure Active Directory OAuth2-Fluss

Typ: oauth2
Ablauf: implicit
Autorisierungs-URL: https://login.microsoftonline.com/common/oauth2/authorize

Bereiche

Name Beschreibung
user_impersonation Identitätswechsel ihres Benutzerkontos

Beispiele

Create or update custom recommendation over management group scope
Create or update custom recommendation over security connector scope
Create or update custom recommendation over subscription scope

Create or update custom recommendation over management group scope

Beispielanforderung

PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/contoso/providers/Microsoft.Security/customRecommendations/33e7cc6e-a139-4723-a0e5-76993aee0771?api-version=2024-08-01

{
  "properties": {
    "query": "RawEntityMetadata | where Environment == 'GCP' and Identifiers.Type == 'compute.firewalls' | extend IslogConfigEnabled = tobool(Record.logConfig.enable) | extend HealthStatus = iff(IslogConfigEnabled, 'HEALTHY', 'UNHEALTHY')",
    "cloudProviders": [
      "AWS"
    ],
    "severity": "Medium",
    "displayName": "Password Policy",
    "description": "organization passwords policy",
    "remediationDescription": "Change password policy to...",
    "securityIssue": "Vulnerability"
  }
}

Beispiel für eine Antwort

{
  "id": "/providers/Microsoft.Management/managementGroups/contoso/providers/Microsoft.Security/customRecommendations/33e7cc6e-a139-4723-a0e5-76993aee0771",
  "name": "33e7cc6e-a139-4723-a0e5-76993aee0771",
  "type": "Microsoft.Security/customRecommendations",
  "systemData": {
    "createdBy": "user@contoso.com",
    "createdByType": "User",
    "createdAt": "2021-08-31T13:47:50.328Z",
    "lastModifiedBy": "user@contoso.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2021-08-31T13:47:50.328Z"
  },
  "properties": {
    "query": "RawEntityMetadata | where Environment == 'GCP' and Identifiers.Type == 'compute.firewalls' | extend IslogConfigEnabled = tobool(Record.logConfig.enable) | extend HealthStatus = iff(IslogConfigEnabled, 'HEALTHY', 'UNHEALTHY')",
    "cloudProviders": [
      "AWS"
    ],
    "severity": "Medium",
    "displayName": "Password Policy",
    "description": "organization passwords policy",
    "remediationDescription": "Change password policy to...",
    "assessmentKey": "d5f442f7-7e77-4bcf-a450-a9c1b9a94eeb",
    "securityIssue": "Vulnerability"
  }
}
{
  "id": "/providers/Microsoft.Management/managementGroups/contoso/providers/Microsoft.Security/customRecommendations/33e7cc6e-a139-4723-a0e5-76993aee0771",
  "name": "33e7cc6e-a139-4723-a0e5-76993aee0771",
  "type": "Microsoft.Security/customRecommendations",
  "systemData": {
    "createdBy": "user@contoso.com",
    "createdByType": "User",
    "createdAt": "2021-08-31T13:47:50.328Z",
    "lastModifiedBy": "user@contoso.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2021-08-31T13:47:50.328Z"
  },
  "properties": {
    "query": "RawEntityMetadata | where Environment == 'GCP' and Identifiers.Type == 'compute.firewalls' | extend IslogConfigEnabled = tobool(Record.logConfig.enable) | extend HealthStatus = iff(IslogConfigEnabled, 'HEALTHY', 'UNHEALTHY')",
    "cloudProviders": [
      "AWS"
    ],
    "severity": "Medium",
    "displayName": "Password Policy",
    "description": "organization passwords policy",
    "remediationDescription": "Change password policy to...",
    "assessmentKey": "d5f442f7-7e77-4bcf-a450-a9c1b9a94eeb",
    "securityIssue": "Vulnerability"
  }
}

Create or update custom recommendation over security connector scope

Beispielanforderung

PUT https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/gcpResourceGroup/providers/Microsoft.Security/securityConnectors/gcpconnector/providers/Microsoft.Security/customRecommendations/33e7cc6e-a139-4723-a0e5-76993aee0771?api-version=2024-08-01

{
  "properties": {
    "query": "RawEntityMetadata | where Environment == 'GCP' and Identifiers.Type == 'compute.firewalls' | extend IslogConfigEnabled = tobool(Record.logConfig.enable) | extend HealthStatus = iff(IslogConfigEnabled, 'HEALTHY', 'UNHEALTHY')",
    "cloudProviders": [
      "AWS"
    ],
    "severity": "Medium",
    "displayName": "Password Policy",
    "description": "organization passwords policy",
    "remediationDescription": "Change password policy to...",
    "securityIssue": "Vulnerability"
  }
}

Beispiel für eine Antwort

{
  "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/gcpResourceGroup/providers/Microsoft.Security/securityConnectors/gcpconnector/providers/Microsoft.Security/customRecommendations/33e7cc6e-a139-4723-a0e5-76993aee0771",
  "name": "33e7cc6e-a139-4723-a0e5-76993aee0771",
  "type": "Microsoft.Security/customRecommendations",
  "systemData": {
    "createdBy": "user@contoso.com",
    "createdByType": "User",
    "createdAt": "2021-08-31T13:47:50.328Z",
    "lastModifiedBy": "user@contoso.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2021-08-31T13:47:50.328Z"
  },
  "properties": {
    "query": "RawEntityMetadata | where Environment == 'GCP' and Identifiers.Type == 'compute.firewalls' | extend IslogConfigEnabled = tobool(Record.logConfig.enable) | extend HealthStatus = iff(IslogConfigEnabled, 'HEALTHY', 'UNHEALTHY')",
    "cloudProviders": [
      "AWS"
    ],
    "severity": "Medium",
    "displayName": "Password Policy",
    "description": "organization passwords policy",
    "remediationDescription": "Change password policy to...",
    "assessmentKey": "d5f442f7-7e77-4bcf-a450-a9c1b9a94eeb",
    "securityIssue": "Vulnerability"
  }
}
{
  "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/gcpResourceGroup/providers/Microsoft.Security/securityConnectors/gcpconnector/providers/Microsoft.Security/customRecommendations/33e7cc6e-a139-4723-a0e5-76993aee0771",
  "name": "33e7cc6e-a139-4723-a0e5-76993aee0771",
  "type": "Microsoft.Security/customRecommendations",
  "systemData": {
    "createdBy": "user@contoso.com",
    "createdByType": "User",
    "createdAt": "2021-08-31T13:47:50.328Z",
    "lastModifiedBy": "user@contoso.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2021-08-31T13:47:50.328Z"
  },
  "properties": {
    "query": "RawEntityMetadata | where Environment == 'GCP' and Identifiers.Type == 'compute.firewalls' | extend IslogConfigEnabled = tobool(Record.logConfig.enable) | extend HealthStatus = iff(IslogConfigEnabled, 'HEALTHY', 'UNHEALTHY')",
    "cloudProviders": [
      "AWS"
    ],
    "severity": "Medium",
    "displayName": "Password Policy",
    "description": "organization passwords policy",
    "remediationDescription": "Change password policy to...",
    "assessmentKey": "d5f442f7-7e77-4bcf-a450-a9c1b9a94eeb",
    "securityIssue": "Vulnerability"
  }
}

Create or update custom recommendation over subscription scope

Beispielanforderung

PUT https://management.azure.com/subscriptions/e5d1b86c-3051-44d5-8802-aa65d45a279b/providers/Microsoft.Security/customRecommendations/33e7cc6e-a139-4723-a0e5-76993aee0771?api-version=2024-08-01

{
  "properties": {
    "query": "RawEntityMetadata | where Environment == 'GCP' and Identifiers.Type == 'compute.firewalls' | extend IslogConfigEnabled = tobool(Record.logConfig.enable) | extend HealthStatus = iff(IslogConfigEnabled, 'HEALTHY', 'UNHEALTHY')",
    "cloudProviders": [
      "AWS"
    ],
    "severity": "Medium",
    "displayName": "Password Policy",
    "description": "organization passwords policy",
    "remediationDescription": "Change password policy to...",
    "securityIssue": "Vulnerability"
  }
}

Beispiel für eine Antwort

{
  "id": "/subscriptions/e5d1b86c-3051-44d5-8802-aa65d45a279b/providers/Microsoft.Security/customRecommendations/33e7cc6e-a139-4723-a0e5-76993aee0771",
  "name": "33e7cc6e-a139-4723-a0e5-76993aee0771",
  "type": "Microsoft.Security/customRecommendations",
  "systemData": {
    "createdBy": "user@contoso.com",
    "createdByType": "User",
    "createdAt": "2021-08-31T13:47:50.328Z",
    "lastModifiedBy": "user@contoso.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2021-08-31T13:47:50.328Z"
  },
  "properties": {
    "query": "RawEntityMetadata | where Environment == 'GCP' and Identifiers.Type == 'compute.firewalls' | extend IslogConfigEnabled = tobool(Record.logConfig.enable) | extend HealthStatus = iff(IslogConfigEnabled, 'HEALTHY', 'UNHEALTHY')",
    "cloudProviders": [
      "AWS"
    ],
    "severity": "Medium",
    "displayName": "Password Policy",
    "description": "organization passwords policy",
    "remediationDescription": "Change password policy to...",
    "assessmentKey": "d5f442f7-7e77-4bcf-a450-a9c1b9a94eeb",
    "securityIssue": "Vulnerability"
  }
}
{
  "id": "/subscriptions/e5d1b86c-3051-44d5-8802-aa65d45a279b/providers/Microsoft.Security/customRecommendations/33e7cc6e-a139-4723-a0e5-76993aee0771",
  "name": "33e7cc6e-a139-4723-a0e5-76993aee0771",
  "type": "Microsoft.Security/customRecommendations",
  "systemData": {
    "createdBy": "user@contoso.com",
    "createdByType": "User",
    "createdAt": "2021-08-31T13:47:50.328Z",
    "lastModifiedBy": "user@contoso.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2021-08-31T13:47:50.328Z"
  },
  "properties": {
    "query": "RawEntityMetadata | where Environment == 'GCP' and Identifiers.Type == 'compute.firewalls' | extend IslogConfigEnabled = tobool(Record.logConfig.enable) | extend HealthStatus = iff(IslogConfigEnabled, 'HEALTHY', 'UNHEALTHY')",
    "cloudProviders": [
      "AWS"
    ],
    "severity": "Medium",
    "displayName": "Password Policy",
    "description": "organization passwords policy",
    "remediationDescription": "Change password policy to...",
    "assessmentKey": "d5f442f7-7e77-4bcf-a450-a9c1b9a94eeb",
    "securityIssue": "Vulnerability"
  }
}

Definitionen

Name Beschreibung
createdByType

Der Identitätstyp, der die Ressource erstellt hat.

CustomRecommendation

Benutzerdefinierte Empfehlung

ErrorAdditionalInfo

Der Ressourcenverwaltungsfehler zusätzliche Informationen.

ErrorDetail

Das Fehlerdetails.

ErrorResponse

Fehlerantwort

RecommendationSupportedClouds

Liste aller standardmäßig unterstützten Clouds.

securityIssue

Der Schweregrad, der sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

severityEnum

Der Schweregrad, der sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

systemData

Metadaten zur Erstellung und letzten Änderung der Ressource.

createdByType

Der Identitätstyp, der die Ressource erstellt hat.

Name Typ Beschreibung
Application

string

Key

string

ManagedIdentity

string

User

string

CustomRecommendation

Benutzerdefinierte Empfehlung

Name Typ Beschreibung
id

string

Ressourcen-ID

name

string

Ressourcenname

properties.assessmentKey

string

Der Beim Generieren einer Bewertung für diese Empfehlung verwendete Metadatenschlüssel.

properties.cloudProviders

RecommendationSupportedClouds[]

Liste aller standardmäßig unterstützten Clouds.

properties.description

string

Die Beschreibung, die sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

properties.displayName

string

Der Anzeigename der von dieser Empfehlung generierten Bewertungen.

properties.query

string

KQL-Abfrage, die die erforderlichen Empfehlungsergebnisse darstellt.

properties.remediationDescription

string

Die Beschreibung der Korrektur, die sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

properties.securityIssue

securityIssue

Der Schweregrad, der sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

properties.severity

severityEnum

Der Schweregrad, der sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

systemData

systemData

Azure Resource Manager-Metadaten, die createdBy- und modifiedBy-Informationen enthalten.

type

string

Ressourcentyp

ErrorAdditionalInfo

Der Ressourcenverwaltungsfehler zusätzliche Informationen.

Name Typ Beschreibung
info

object

Die zusätzlichen Informationen.

type

string

Der zusätzliche Informationstyp.

ErrorDetail

Das Fehlerdetails.

Name Typ Beschreibung
additionalInfo

ErrorAdditionalInfo[]

Die zusätzlichen Informationen des Fehlers.

code

string

Der Fehlercode.

details

ErrorDetail[]

Die Fehlerdetails.

message

string

Die Fehlermeldung.

target

string

Das Fehlerziel.

ErrorResponse

Fehlerantwort

Name Typ Beschreibung
error

ErrorDetail

Das Fehlerobjekt.

RecommendationSupportedClouds

Liste aller standardmäßig unterstützten Clouds.

Name Typ Beschreibung
AWS

string

Azure

string

GCP

string

securityIssue

Der Schweregrad, der sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

Name Typ Beschreibung
AnonymousAccess

string

BestPractices

string

ExcessivePermissions

string

NetworkExposure

string

TrafficEncryption

string

Vulnerability

string

severityEnum

Der Schweregrad, der sich auf die von dieser Empfehlung generierten Bewertungen bezieht.

Name Typ Beschreibung
High

string

Low

string

Medium

string

systemData

Metadaten zur Erstellung und letzten Änderung der Ressource.

Name Typ Beschreibung
createdAt

string

Der Zeitstempel der Ressourcenerstellung (UTC).

createdBy

string

Die Identität, die die Ressource erstellt hat.

createdByType

createdByType

Der Identitätstyp, der die Ressource erstellt hat.

lastModifiedAt

string

Der Zeitstempel der letzten Änderung der Ressource (UTC)

lastModifiedBy

string

Die Identität, die die Ressource zuletzt geändert hat.

lastModifiedByType

createdByType

Der Identitätstyp, der die Ressource zuletzt geändert hat.