범위에서 제공된 클라우드용 Microsoft Defender 가격 책정 구성을 업데이트합니다. 유효한 범위는 구독 ID 또는 특정 리소스 ID입니다(지원되는 리소스는 'VirtualMachines, VMSS 및 ARC Machines'이며 plan='VirtualMachines' 및 subPlan='P1'에만 해당).
PUT https://management.azure.com/{scopeId}/providers/Microsoft.Security/pricings/{pricingName}?api-version=2024-01-01
URI 매개 변수
Name |
In(다음 안에) |
필수 |
형식 |
Description |
pricingName
|
path |
True
|
string
|
가격 책정 구성의 이름
|
scopeId
|
path |
True
|
string
|
가격 책정의 범위 ID입니다. 유효한 범위는 구독(형식: 'subscriptions/{subscriptionId}') 또는 특정 리소스(형식: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}) - 지원되는 리소스는 (VirtualMachines)
|
api-version
|
query |
True
|
string
|
작업에 대한 API 버전
|
요청 본문
Name |
필수 |
형식 |
Description |
properties.pricingTier
|
True
|
pricingTier
|
선택한 범위에서 Defender 계획을 사용할 수 있는지 여부를 나타냅니다. 클라우드용 Microsoft Defender는 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하는 반면 무료 계층은 기본 보안 기능을 제공합니다.
|
properties.enforce
|
|
enforce
|
"False"로 설정하면 이 범위의 하위 항목이 이 범위에서 설정된 가격 책정 구성을 재정의할 수 있습니다(inherited="False" 설정 허용). "True"로 설정하면 재정의를 방지하고 이 범위의 모든 하위 항목에서 이 가격 책정 구성을 강제로 적용합니다. 이 필드는 구독 수준 가격 책정에만 사용할 수 있습니다.
|
properties.extensions
|
|
Extension[]
|
선택적. 계획에 따라 제공되는 확장 목록입니다.
|
properties.subPlan
|
|
string
|
둘 이상의 하위 플랜을 사용할 수 있는 경우 표준 가격 책정 구성에 대해 선택된 하위 계획입니다. 각 하위 계획은 보안 기능 집합을 사용하도록 설정합니다. 지정하지 않으면 전체 계획이 적용됩니다. VirtualMachines 계획의 경우 사용 가능한 하위 계획은 'P1' & 'P2'이며, 리소스 수준의 경우 'P1' 하위 계획만 지원됩니다.
|
응답
Name |
형식 |
Description |
200 OK
|
Pricing
|
성공적으로 업데이트됨
|
201 Created
|
Pricing
|
성공적으로 만들어졌습니다.
|
Other Status Codes
|
CloudError
|
작업이 실패한 이유를 설명하는 오류 응답입니다.
|
보안
azure_auth
Azure Active Directory OAuth2 Flow
형식:
oauth2
Flow:
implicit
권한 부여 URL:
https://login.microsoftonline.com/common/oauth2/authorize
범위
Name |
Description |
user_impersonation
|
사용자 계정 가장
|
예제
Update pricing on resource (example for VirtualMachines plan)
샘플 요청
PUT https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1/providers/Microsoft.Security/pricings/virtualMachines?api-version=2024-01-01
{
"properties": {
"pricingTier": "Standard",
"subPlan": "P1"
}
}
import com.azure.resourcemanager.security.fluent.models.PricingInner;
import com.azure.resourcemanager.security.models.PricingTier;
/**
* Samples for Pricings Update.
*/
public final class Main {
/*
* x-ms-original-file:
* specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/
* PutResourcePricingByNameVirtualMachines_example.json
*/
/**
* Sample code: Update pricing on resource (example for VirtualMachines plan).
*
* @param manager Entry point to SecurityManager.
*/
public static void updatePricingOnResourceExampleForVirtualMachinesPlan(
com.azure.resourcemanager.security.SecurityManager manager) {
manager.pricings().updateWithResponse(
"subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1",
"virtualMachines", new PricingInner().withPricingTier(PricingTier.STANDARD).withSubPlan("P1"),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armsecurity_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/security/armsecurity"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/9ac34f238dd6b9071f486b57e9f9f1a0c43ec6f6/specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutResourcePricingByNameVirtualMachines_example.json
func ExamplePricingsClient_Update_updatePricingOnResourceExampleForVirtualMachinesPlan() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armsecurity.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewPricingsClient().Update(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1", "virtualMachines", armsecurity.Pricing{
Properties: &armsecurity.PricingProperties{
PricingTier: to.Ptr(armsecurity.PricingTierStandard),
SubPlan: to.Ptr("P1"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.Pricing = armsecurity.Pricing{
// Name: to.Ptr("virtualMachines"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1/providers/Microsoft.Security/pricings/virtualMachines"),
// Properties: &armsecurity.PricingProperties{
// EnablementTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T12:42:42.192Z"); return t}()),
// FreeTrialRemainingTime: to.Ptr("PT0S"),
// Inherited: to.Ptr(armsecurity.InheritedFalse),
// PricingTier: to.Ptr(armsecurity.PricingTierStandard),
// SubPlan: to.Ptr("P1"),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("MdeDesignatedSubscription"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledFalse),
// },
// {
// Name: to.Ptr("AgentlessVmScanning"),
// AdditionalExtensionProperties: map[string]any{
// "ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]",
// },
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// }},
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { SecurityCenter } = require("@azure/arm-security");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
*
* @summary Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutResourcePricingByNameVirtualMachines_example.json
*/
async function updatePricingOnResourceExampleForVirtualMachinesPlan() {
const scopeId =
"subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1";
const pricingName = "virtualMachines";
const pricing = { pricingTier: "Standard", subPlan: "P1" };
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.update(scopeId, pricingName, pricing);
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
샘플 응답
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1/providers/Microsoft.Security/pricings/virtualMachines",
"name": "virtualMachines",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"subPlan": "P1",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"inherited": "False",
"inheritedFrom": null,
"extensions": [
{
"name": "MdeDesignatedSubscription",
"isEnabled": "False"
},
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]"
}
}
]
}
}
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1/providers/Microsoft.Security/pricings/virtualMachines",
"name": "virtualMachines",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"subPlan": "P1",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"inherited": "False",
"inheritedFrom": null,
"extensions": [
{
"name": "MdeDesignatedSubscription",
"isEnabled": "False"
},
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"ExclusionTags": "[{'Key':'TestKey1','Value':'TestValue1'},{'Key':'TestKey2','Value':'TestValue2'}]"
}
}
]
}
}
Update pricing on subscription (example for CloudPosture plan)
샘플 요청
PUT https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture?api-version=2024-01-01
{
"properties": {
"pricingTier": "Standard"
}
}
import com.azure.resourcemanager.security.fluent.models.PricingInner;
import com.azure.resourcemanager.security.models.PricingTier;
/**
* Samples for Pricings Update.
*/
public final class Main {
/*
* x-ms-original-file:
* specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/
* PutPricingByName_example.json
*/
/**
* Sample code: Update pricing on subscription (example for CloudPosture plan).
*
* @param manager Entry point to SecurityManager.
*/
public static void updatePricingOnSubscriptionExampleForCloudPosturePlan(
com.azure.resourcemanager.security.SecurityManager manager) {
manager.pricings().updateWithResponse("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "CloudPosture",
new PricingInner().withPricingTier(PricingTier.STANDARD), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armsecurity_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/security/armsecurity"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/9ac34f238dd6b9071f486b57e9f9f1a0c43ec6f6/specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingByName_example.json
func ExamplePricingsClient_Update_updatePricingOnSubscriptionExampleForCloudPosturePlan() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armsecurity.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewPricingsClient().Update(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "CloudPosture", armsecurity.Pricing{
Properties: &armsecurity.PricingProperties{
PricingTier: to.Ptr(armsecurity.PricingTierStandard),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.Pricing = armsecurity.Pricing{
// Name: to.Ptr("CloudPosture"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture"),
// Properties: &armsecurity.PricingProperties{
// EnablementTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T12:42:42.192Z"); return t}()),
// Enforce: to.Ptr(armsecurity.EnforceFalse),
// FreeTrialRemainingTime: to.Ptr("PT0S"),
// PricingTier: to.Ptr(armsecurity.PricingTierStandard),
// ResourcesCoverageStatus: to.Ptr(armsecurity.ResourcesCoverageStatusFullyCovered),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("AgentlessVmScanning"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// },
// {
// Name: to.Ptr("AgentlessDiscoveryForKubernetes"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// },
// {
// Name: to.Ptr("SensitiveDataDiscovery"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// },
// {
// Name: to.Ptr("ContainerRegistriesVulnerabilityAssessments"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// },
// {
// Name: to.Ptr("EntraPermissionsManagement"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// }},
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { SecurityCenter } = require("@azure/arm-security");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
*
* @summary Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingByName_example.json
*/
async function updatePricingOnSubscriptionExampleForCloudPosturePlan() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "CloudPosture";
const pricing = { pricingTier: "Standard" };
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.update(scopeId, pricingName, pricing);
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
샘플 응답
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture",
"name": "CloudPosture",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "AgentlessDiscoveryForKubernetes",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "ContainerRegistriesVulnerabilityAssessments",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "EntraPermissionsManagement",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture",
"name": "CloudPosture",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "AgentlessDiscoveryForKubernetes",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "ContainerRegistriesVulnerabilityAssessments",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "EntraPermissionsManagement",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
Update pricing on subscription (example for CloudPosture plan) - partial success
샘플 요청
PUT https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture?api-version=2024-01-01
{
"properties": {
"pricingTier": "Standard"
}
}
import com.azure.resourcemanager.security.fluent.models.PricingInner;
import com.azure.resourcemanager.security.models.PricingTier;
/**
* Samples for Pricings Update.
*/
public final class Main {
/*
* x-ms-original-file:
* specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/
* PutPricingByNamePartialSuccess_example.json
*/
/**
* Sample code: Update pricing on subscription (example for CloudPosture plan) - partial success.
*
* @param manager Entry point to SecurityManager.
*/
public static void updatePricingOnSubscriptionExampleForCloudPosturePlanPartialSuccess(
com.azure.resourcemanager.security.SecurityManager manager) {
manager.pricings().updateWithResponse("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "CloudPosture",
new PricingInner().withPricingTier(PricingTier.STANDARD), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armsecurity_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/security/armsecurity"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/9ac34f238dd6b9071f486b57e9f9f1a0c43ec6f6/specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingByNamePartialSuccess_example.json
func ExamplePricingsClient_Update_updatePricingOnSubscriptionExampleForCloudPosturePlanPartialSuccess() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armsecurity.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewPricingsClient().Update(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "CloudPosture", armsecurity.Pricing{
Properties: &armsecurity.PricingProperties{
PricingTier: to.Ptr(armsecurity.PricingTierStandard),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.Pricing = armsecurity.Pricing{
// Name: to.Ptr("CloudPosture"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture"),
// Properties: &armsecurity.PricingProperties{
// EnablementTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T12:42:42.192Z"); return t}()),
// Enforce: to.Ptr(armsecurity.EnforceFalse),
// FreeTrialRemainingTime: to.Ptr("PT0S"),
// PricingTier: to.Ptr(armsecurity.PricingTierStandard),
// ResourcesCoverageStatus: to.Ptr(armsecurity.ResourcesCoverageStatusFullyCovered),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("AgentlessVmScanning"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeFailed),
// Message: to.Ptr("Failed find dedicated first party application client ID for extension"),
// },
// },
// {
// Name: to.Ptr("AgentlessDiscoveryForKubernetes"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeFailed),
// Message: to.Ptr("Failed assigning roles {d5a2ae44-610b-4500-93be-660a0c5f5ca6} to {identityName} for plan"),
// },
// },
// {
// Name: to.Ptr("SensitiveDataDiscovery"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeFailed),
// Message: to.Ptr("Failed assigning roles {f58310d9-a9f6-439a-9e8d-f62e7b41a168} to {identityName} for plan"),
// },
// },
// {
// Name: to.Ptr("ContainerRegistriesVulnerabilityAssessments"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// },
// {
// Name: to.Ptr("EntraPermissionsManagement"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// }},
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { SecurityCenter } = require("@azure/arm-security");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
*
* @summary Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingByNamePartialSuccess_example.json
*/
async function updatePricingOnSubscriptionExampleForCloudPosturePlanPartialSuccess() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "CloudPosture";
const pricing = { pricingTier: "Standard" };
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.update(scopeId, pricingName, pricing);
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
샘플 응답
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture",
"name": "CloudPosture",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed find dedicated first party application client ID for extension"
}
},
{
"name": "AgentlessDiscoveryForKubernetes",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed assigning roles {d5a2ae44-610b-4500-93be-660a0c5f5ca6} to {identityName} for plan"
}
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed assigning roles {f58310d9-a9f6-439a-9e8d-f62e7b41a168} to {identityName} for plan"
}
},
{
"name": "ContainerRegistriesVulnerabilityAssessments",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "EntraPermissionsManagement",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture",
"name": "CloudPosture",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed find dedicated first party application client ID for extension"
}
},
{
"name": "AgentlessDiscoveryForKubernetes",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed assigning roles {d5a2ae44-610b-4500-93be-660a0c5f5ca6} to {identityName} for plan"
}
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed assigning roles {f58310d9-a9f6-439a-9e8d-f62e7b41a168} to {identityName} for plan"
}
},
{
"name": "ContainerRegistriesVulnerabilityAssessments",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "EntraPermissionsManagement",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
Update pricing on subscription (example for VirtualMachines plan)
샘플 요청
PUT https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/VirtualMachines?api-version=2024-01-01
{
"properties": {
"pricingTier": "Standard",
"subPlan": "P2",
"enforce": "True"
}
}
import com.azure.resourcemanager.security.fluent.models.PricingInner;
import com.azure.resourcemanager.security.models.Enforce;
import com.azure.resourcemanager.security.models.PricingTier;
/**
* Samples for Pricings Update.
*/
public final class Main {
/*
* x-ms-original-file:
* specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/
* PutPricingVMsByName_example.json
*/
/**
* Sample code: Update pricing on subscription (example for VirtualMachines plan).
*
* @param manager Entry point to SecurityManager.
*/
public static void updatePricingOnSubscriptionExampleForVirtualMachinesPlan(
com.azure.resourcemanager.security.SecurityManager manager) {
manager.pricings().updateWithResponse("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "VirtualMachines",
new PricingInner().withPricingTier(PricingTier.STANDARD).withSubPlan("P2").withEnforce(Enforce.TRUE),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armsecurity_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/security/armsecurity"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/9ac34f238dd6b9071f486b57e9f9f1a0c43ec6f6/specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingVMsByName_example.json
func ExamplePricingsClient_Update_updatePricingOnSubscriptionExampleForVirtualMachinesPlan() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armsecurity.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewPricingsClient().Update(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "VirtualMachines", armsecurity.Pricing{
Properties: &armsecurity.PricingProperties{
Enforce: to.Ptr(armsecurity.EnforceTrue),
PricingTier: to.Ptr(armsecurity.PricingTierStandard),
SubPlan: to.Ptr("P2"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.Pricing = armsecurity.Pricing{
// Name: to.Ptr("VirtualMachines"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/VirtualMachines"),
// Properties: &armsecurity.PricingProperties{
// EnablementTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T12:42:42.192Z"); return t}()),
// Enforce: to.Ptr(armsecurity.EnforceTrue),
// FreeTrialRemainingTime: to.Ptr("PT0S"),
// PricingTier: to.Ptr(armsecurity.PricingTierStandard),
// ResourcesCoverageStatus: to.Ptr(armsecurity.ResourcesCoverageStatusFullyCovered),
// SubPlan: to.Ptr("P2"),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("MdeDesignatedSubscription"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledFalse),
// },
// {
// Name: to.Ptr("AgentlessVmScanning"),
// AdditionalExtensionProperties: map[string]any{
// "ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]",
// },
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// }},
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { SecurityCenter } = require("@azure/arm-security");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
*
* @summary Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingVMsByName_example.json
*/
async function updatePricingOnSubscriptionExampleForVirtualMachinesPlan() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "VirtualMachines";
const pricing = {
enforce: "True",
pricingTier: "Standard",
subPlan: "P2",
};
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.update(scopeId, pricingName, pricing);
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
샘플 응답
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/VirtualMachines",
"name": "VirtualMachines",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"subPlan": "P2",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "True",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "MdeDesignatedSubscription",
"isEnabled": "False"
},
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]"
},
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/VirtualMachines",
"name": "VirtualMachines",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"subPlan": "P2",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "True",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "MdeDesignatedSubscription",
"isEnabled": "False"
},
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]"
},
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
정의
Name |
Description |
CloudError
|
실패한 작업에 대한 오류 세부 정보를 반환하는 모든 Azure Resource Manager API에 대한 일반적인 오류 응답입니다. 또한 OData 오류 응답 형식을 따릅니다.
|
CloudErrorBody
|
오류 세부 정보입니다.
|
code
|
작업 상태 코드입니다.
|
enforce
|
"False"로 설정하면 이 범위의 하위 항목이 이 범위에서 설정된 가격 책정 구성을 재정의할 수 있습니다(inherited="False" 설정 허용). "True"로 설정하면 재정의를 방지하고 이 범위의 모든 하위 항목에서 이 가격 책정 구성을 강제로 적용합니다. 이 필드는 구독 수준 가격 책정에만 사용할 수 있습니다.
|
ErrorAdditionalInfo
|
리소스 관리 오류 추가 정보입니다.
|
Extension
|
계획의 확장 속성
|
inherited
|
"inherited" = "True"는 현재 범위가 부모 범위에서 가격 책정 구성을 상속한다는 것을 나타냅니다. 상속된 구성을 제공하는 부모 범위의 ID는 "inheritedFrom" 필드에 표시됩니다. 반면에 "상속됨" = "False"는 현재 범위에 명시적으로 설정된 자체 가격 책정 구성이 있으며 부모 범위에서 상속되지 않음을 나타냅니다. 이 필드는 읽기 전용이며 리소스 수준 가격 책정에만 사용할 수 있습니다.
|
isEnabled
|
확장을 사용할 수 있는지 여부를 나타냅니다.
|
OperationStatus
|
확장의 사용/사용 안 함 작업의 성공/실패를 설명하는 상태입니다.
|
Pricing
|
클라우드용 Microsoft Defender는 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하는 반면 무료 계층은 기본 보안 기능을 제공합니다.
|
pricingTier
|
선택한 범위에서 Defender 계획을 사용할 수 있는지 여부를 나타냅니다. 클라우드용 Microsoft Defender는 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하는 반면 무료 계층은 기본 보안 기능을 제공합니다.
|
resourcesCoverageStatus
|
이 필드는 구독 수준에서만 사용할 수 있으며 구독에 있는 리소스의 적용 범위 상태를 반영합니다. 참고: "pricingTier" 필드는 구독의 계획 상태를 반영합니다. 그러나 계획 상태는 리소스 수준에서 정의될 수도 있으므로 구독의 계획 상태와 리소스 상태 사이에 정렬이 잘못될 수 있습니다. 이 필드는 리소스의 적용 범위를 나타내는 데 도움이 됩니다.
|
CloudError
실패한 작업에 대한 오류 세부 정보를 반환하는 모든 Azure Resource Manager API에 대한 일반적인 오류 응답입니다. 또한 OData 오류 응답 형식을 따릅니다.
Name |
형식 |
Description |
error.additionalInfo
|
ErrorAdditionalInfo[]
|
오류 추가 정보입니다.
|
error.code
|
string
|
오류 코드입니다.
|
error.details
|
CloudErrorBody[]
|
오류 세부 정보입니다.
|
error.message
|
string
|
오류 메시지입니다.
|
error.target
|
string
|
오류 대상입니다.
|
CloudErrorBody
오류 세부 정보입니다.
Name |
형식 |
Description |
additionalInfo
|
ErrorAdditionalInfo[]
|
오류 추가 정보입니다.
|
code
|
string
|
오류 코드입니다.
|
details
|
CloudErrorBody[]
|
오류 세부 정보입니다.
|
message
|
string
|
오류 메시지입니다.
|
target
|
string
|
오류 대상입니다.
|
code
작업 상태 코드입니다.
Name |
형식 |
Description |
Failed
|
string
|
확장이 생성/업데이트되지 않았습니다. 자세한 내용은 작업 상태 메시지를 참조하세요.
|
Succeeded
|
string
|
확장이 생성/업데이트되었습니다.
|
enforce
"False"로 설정하면 이 범위의 하위 항목이 이 범위에서 설정된 가격 책정 구성을 재정의할 수 있습니다(inherited="False" 설정 허용). "True"로 설정하면 재정의를 방지하고 이 범위의 모든 하위 항목에서 이 가격 책정 구성을 강제로 적용합니다. 이 필드는 구독 수준 가격 책정에만 사용할 수 있습니다.
Name |
형식 |
Description |
False
|
string
|
이 범위의 하위 항목이 이 범위에서 설정된 가격 책정 구성을 재정의할 수 있도록 허용합니다(상속된 값="False" 설정 허용).
|
True
|
string
|
재정의를 방지하고 현재 범위의 가격 책정 구성을 모든 하위 항목으로 강제 적용
|
ErrorAdditionalInfo
리소스 관리 오류 추가 정보입니다.
Name |
형식 |
Description |
info
|
object
|
추가 정보입니다.
|
type
|
string
|
추가 정보 유형입니다.
|
Extension
계획의 확장 속성
Name |
형식 |
Description |
additionalExtensionProperties
|
|
확장과 연결된 속성 값입니다.
|
isEnabled
|
isEnabled
|
확장을 사용할 수 있는지 여부를 나타냅니다.
|
name
|
string
|
확장 이름입니다. 지원되는 값은 다음과 같습니다.
AgentlessDiscoveryForKubernetes - 0 공간, Kubernetes 클러스터의 API 기반 검색, 해당 구성 및 배포를 제공합니다. 수집된 데이터는 Kubernetes 클러스터에 대한 컨텍스트화된 보안 그래프를 만들고, 위험 헌팅 기능을 제공하고, Kubernetes 환경 및 워크로드에 대한 위험 및 위협을 시각화하는 데 사용됩니다. CloudPosture 계획 및 컨테이너 계획에 사용할 수 있습니다.
onUploadMalwareScanning - 구독 내의 각 스토리지 계정에 대해 매월 검사되는 GB를 제한합니다. 지정된 스토리지 계정에서 이 제한에 도달하면 현재 월 동안 Blob을 검사하지 않습니다. StorageAccounts 계획(DefenderForStorageV2 하위 계획)에 사용할 수 있습니다.
SensitiveDataDiscovery - 중요한 데이터 검색은 자격 증명, 신용 카드 등과 같은 중요한 데이터를 사용하여 Blob Storage 컨테이너를 식별하여 보안 이벤트의 우선 순위를 지정하고 조사하는 데 도움을 줍니다. StorageAccounts 계획(DefenderForStorageV2 하위 계획) 및 CloudPosture 계획에 사용할 수 있습니다.
ContainerRegistriesVulnerabilityAssessments - 컨테이너 레지스트리에 저장된 이미지에 대한 취약성 관리를 제공합니다. CloudPosture 계획 및 컨테이너 계획에 사용할 수 있습니다.
MdeDesignatedSubscription - 직접 온보딩은 서버에 추가 소프트웨어 배포가 필요하지 않은 엔드포인트용 Defender와 Cloud용 Defender 간의 원활한 통합입니다. 온보딩된 리소스는 사용자가 구성한 지정된 Azure 구독에 표시됩니다. VirtualMachines 계획(P1 및 P2 하위 계획)에 사용할 수 있습니다.
AgentlessVmScanning - 에이전트에 의존하거나 컴퓨터 성능에 영향을 주지 않고 설치된 소프트웨어, 취약성, 맬웨어 및 비밀 검색을 머신에 검색합니다. 자세한 내용은 https://learn.microsoft.com/en-us/azure/defender-for-cloud/concept-agentless-data-collection. CloudPosture 계획, VirtualMachines 계획(P2 하위 계획) 및 컨테이너 계획에 사용할 수 있습니다.
EntraPermissionsManagement - 권한 관리는 조직이 클라우드 인프라에서 사용자 액세스 및 자격을 관리하고 제어하는 데 도움이 되는 CIEM(클라우드 인프라 권한 관리) 기능을 제공합니다. 클라우드 환경에 대한 중요한 공격 벡터입니다. 권한 관리는 모든 사용 권한 및 활성 사용을 분석하고 최소 권한 원칙을 적용하기 위해 사용 권한을 줄이기 위한 권장 사항을 제안합니다. 자세한 내용은 https://learn.microsoft.com/en-us/azure/defender-for-cloud/permissions-management. CloudPosture 계획에 사용할 수 있습니다.
FileIntegrityMonitoring - FIM(파일 무결성 모니터링)은 운영 체제 파일을 검사합니다. Windows 레지스트리, Linux 시스템 파일은 공격을 나타낼 수 있는 변경 내용을 실시간으로 표시합니다. VirtualMachines 계획(P2 하위 계획)에 사용할 수 있습니다.
ContainerSensor - 센서는 IG를 기반으로 하며 Microsoft의 주요 위협 인텔리전스를 기반으로 하는 Kubernetes 클러스터, 노드 및 워크로드에 대한 풍부한 위협 탐지 제품군을 제공하여 MITRE ATT&CK 프레임워크에 대한 매핑을 제공합니다. 컨테이너 계획에 사용할 수 있습니다.
AIPromptEvidence - 사용자와 AI 모델 간에 전달된 프롬프트를 경고 증거로 노출합니다. 이렇게 하면 관련 사용자 컨텍스트를 사용하여 경고를 분류하고 심사할 수 있습니다. 프롬프트 코드 조각에는 의심스럽고 보안 분류와 관련된 것으로 간주되는 사용자 프롬프트 또는 모델 응답의 세그먼트만 포함됩니다. 프롬프트 증거는 각 경고의 일부로 Defender 포털을 통해 사용할 수 있습니다. AI 계획에 사용할 수 있습니다.
|
operationStatus
|
OperationStatus
|
선택적. 확장의 사용/사용 안 함 작업의 성공/실패를 설명하는 상태입니다.
|
inherited
"inherited" = "True"는 현재 범위가 부모 범위에서 가격 책정 구성을 상속한다는 것을 나타냅니다. 상속된 구성을 제공하는 부모 범위의 ID는 "inheritedFrom" 필드에 표시됩니다. 반면에 "상속됨" = "False"는 현재 범위에 명시적으로 설정된 자체 가격 책정 구성이 있으며 부모 범위에서 상속되지 않음을 나타냅니다. 이 필드는 읽기 전용이며 리소스 수준 가격 책정에만 사용할 수 있습니다.
Name |
형식 |
Description |
False
|
string
|
현재 범위가 자체 가격 책정 구성을 설정하고 부모에서 상속하지 않음을 나타냅니다.
|
True
|
string
|
현재 범위가 부모로부터 가격 책정 구성을 상속하고 있음을 나타냅니다.
|
isEnabled
확장을 사용할 수 있는지 여부를 나타냅니다.
Name |
형식 |
Description |
False
|
string
|
확장이 비활성화됨을 나타냅니다.
|
True
|
string
|
확장이 사용됨을 나타냅니다.
|
OperationStatus
확장의 사용/사용 안 함 작업의 성공/실패를 설명하는 상태입니다.
Name |
형식 |
Description |
code
|
code
|
작업 상태 코드입니다.
|
message
|
string
|
작업의 성공/실패에 대한 추가 정보입니다.
|
Pricing
클라우드용 Microsoft Defender는 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하는 반면 무료 계층은 기본 보안 기능을 제공합니다.
Name |
형식 |
Description |
id
|
string
|
리소스 ID
|
name
|
string
|
리소스 이름
|
properties.deprecated
|
boolean
|
선택적. 계획이 사용되지 않는 경우 True입니다. 대체 계획이 있는 경우 replacedBy 속성에 표시됩니다.
|
properties.enablementTime
|
string
|
선택적.
pricingTier
Standard 경우 이 속성은 pricingTier Standard 마지막으로 설정된 날짜(예: 2023-03-01T12:42:42.1921106Z)를 보유합니다.
|
properties.enforce
|
enforce
|
"False"로 설정하면 이 범위의 하위 항목이 이 범위에서 설정된 가격 책정 구성을 재정의할 수 있습니다(inherited="False" 설정 허용). "True"로 설정하면 재정의를 방지하고 이 범위의 모든 하위 항목에서 이 가격 책정 구성을 강제로 적용합니다. 이 필드는 구독 수준 가격 책정에만 사용할 수 있습니다.
|
properties.extensions
|
Extension[]
|
선택적. 계획에 따라 제공되는 확장 목록입니다.
|
properties.freeTrialRemainingTime
|
string
|
ISO 8601 형식(예: P3Y6M4DT12H30M5S)의 구독 무료 평가판 기간 동안 남은 기간입니다.
|
properties.inherited
|
inherited
|
"inherited" = "True"는 현재 범위가 부모 범위에서 가격 책정 구성을 상속한다는 것을 나타냅니다. 상속된 구성을 제공하는 부모 범위의 ID는 "inheritedFrom" 필드에 표시됩니다. 반면에 "상속됨" = "False"는 현재 범위에 명시적으로 설정된 자체 가격 책정 구성이 있으며 부모 범위에서 상속되지 않음을 나타냅니다. 이 필드는 읽기 전용이며 리소스 수준 가격 책정에만 사용할 수 있습니다.
|
properties.inheritedFrom
|
string
|
상속된 범위의 ID입니다. 상속되지 않은 경우 "Null"입니다. 이 필드는 리소스 수준 가격 책정에만 사용할 수 있습니다.
|
properties.pricingTier
|
pricingTier
|
선택한 범위에서 Defender 계획을 사용할 수 있는지 여부를 나타냅니다. 클라우드용 Microsoft Defender는 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하는 반면 무료 계층은 기본 보안 기능을 제공합니다.
|
properties.replacedBy
|
string[]
|
선택적. 이 계획을 대체하는 계획 목록입니다. 이 속성은 이 계획이 사용되지 않는 경우에만 존재합니다.
|
properties.resourcesCoverageStatus
|
resourcesCoverageStatus
|
이 필드는 구독 수준에서만 사용할 수 있으며 구독에 있는 리소스의 적용 범위 상태를 반영합니다. 참고: "pricingTier" 필드는 구독의 계획 상태를 반영합니다. 그러나 계획 상태는 리소스 수준에서 정의될 수도 있으므로 구독의 계획 상태와 리소스 상태 사이에 정렬이 잘못될 수 있습니다. 이 필드는 리소스의 적용 범위를 나타내는 데 도움이 됩니다.
|
properties.subPlan
|
string
|
둘 이상의 하위 플랜을 사용할 수 있는 경우 표준 가격 책정 구성에 대해 선택된 하위 계획입니다. 각 하위 계획은 보안 기능 집합을 사용하도록 설정합니다. 지정하지 않으면 전체 계획이 적용됩니다. VirtualMachines 계획의 경우 사용 가능한 하위 계획은 'P1' & 'P2'이며, 리소스 수준의 경우 'P1' 하위 계획만 지원됩니다.
|
type
|
string
|
리소스 종류
|
pricingTier
선택한 범위에서 Defender 계획을 사용할 수 있는지 여부를 나타냅니다. 클라우드용 Microsoft Defender는 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하는 반면 무료 계층은 기본 보안 기능을 제공합니다.
Name |
형식 |
Description |
Free
|
string
|
기본 보안 기능을 사용하여 클라우드용 Microsoft Defender 체험 받기
|
Standard
|
string
|
고급 보안 기능을 사용하여 표준 Microsoft Defender for Cloud 환경 가져오기
|
resourcesCoverageStatus
이 필드는 구독 수준에서만 사용할 수 있으며 구독에 있는 리소스의 적용 범위 상태를 반영합니다. 참고: "pricingTier" 필드는 구독의 계획 상태를 반영합니다. 그러나 계획 상태는 리소스 수준에서 정의될 수도 있으므로 구독의 계획 상태와 리소스 상태 사이에 정렬이 잘못될 수 있습니다. 이 필드는 리소스의 적용 범위를 나타내는 데 도움이 됩니다.
Name |
형식 |
Description |
FullyCovered
|
string
|
이 값은 구독과 연결된 모든 리소스에 Defender 계획이 사용하도록 설정되어 있음을 나타냅니다.
|
NotCovered
|
string
|
이 값은 구독에 있는 모든 리소스에 대해 Defender 계획을 사용할 수 없음을 나타냅니다. Defender 계획에 의해 보호되는 리소스는 없습니다.
|
PartiallyCovered
|
string
|
이 값은 구독에 있는 일부 리소스가 Defender 계획을 사용하도록 설정한 반면 다른 리소스는 사용하지 않도록 설정되었음을 나타냅니다. 리소스 간에 혼합된 적용 범위 상태가 있습니다.
|