Obtenez les configurations tarifaires des plans Defender de l’étendue sélectionnée (les étendues valides sont l’ID de ressource ou un ID d’abonnement). Au niveau de la ressource, les types de ressources pris en charge sont « VirtualMachines, VMSS et ARC Machines ».
GET https://management.azure.com/{scopeId}/providers/Microsoft.Security/pricings/{pricingName}?api-version=2024-01-01
Paramètres URI
Nom |
Dans |
Obligatoire |
Type |
Description |
pricingName
|
path |
True
|
string
|
nom de la configuration de tarification
|
scopeId
|
path |
True
|
string
|
ID d’étendue de la tarification. Les étendues valides sont les suivantes : abonnement (format : « abonnements/{subscriptionId} ») ou une ressource spécifique (format : « subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}) – Les ressources prises en charge sont (VirtualMachines)
|
api-version
|
query |
True
|
string
|
Version de l’API pour l’opération
|
Réponses
Nom |
Type |
Description |
200 OK
|
Pricing
|
D’ACCORD
|
Other Status Codes
|
CloudError
|
Réponse d’erreur décrivant pourquoi l’opération a échoué.
|
Sécurité
azure_auth
Flux OAuth2 Azure Active Directory
Type:
oauth2
Flux:
implicit
URL d’autorisation:
https://login.microsoftonline.com/common/oauth2/authorize
Étendues
Nom |
Description |
user_impersonation
|
emprunter l’identité de votre compte d’utilisateur
|
Exemples
Get pricings on resource - VirtualMachines plan
Exemple de requête
GET 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
package armsecurity_test
import (
"context"
"log"
"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/GetResourcePricingByNameVirtualMachines_example.json
func ExamplePricingsClient_Get_getPricingsOnResourceVirtualMachinesPlan() {
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().Get(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1", "VirtualMachines", 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.InheritedTrue),
// InheritedFrom: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23"),
// PricingTier: to.Ptr(armsecurity.PricingTierStandard),
// SubPlan: to.Ptr("P2"),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("AgentlessVmScanning"),
// AdditionalExtensionProperties: map[string]any{
// "ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]",
// },
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// },
// {
// Name: to.Ptr("MdeDesignatedSubscription"),
// 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 Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
*
* @summary Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/GetResourcePricingByNameVirtualMachines_example.json
*/
async function getPricingsOnResourceVirtualMachinesPlan() {
const scopeId =
"subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1";
const pricingName = "VirtualMachines";
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.get(scopeId, pricingName);
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
Exemple de réponse
{
"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": "P2",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"inherited": "True",
"inheritedFrom": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"extensions": [
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]"
}
},
{
"name": "MdeDesignatedSubscription",
"isEnabled": "True"
}
]
}
}
Get pricings on subscription - CloudPosture plan
Exemple de requête
GET https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture?api-version=2024-01-01
package armsecurity_test
import (
"context"
"log"
"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/GetPricingByNameCloudPosture_example.json
func ExamplePricingsClient_Get_getPricingsOnSubscriptionCloudPosturePlan() {
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().Get(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "CloudPosture", 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"),
// AdditionalExtensionProperties: map[string]any{
// "ExclusionTags": "[]",
// },
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// },
// {
// Name: to.Ptr("AgentlessDiscoveryForKubernetes"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// },
// {
// Name: to.Ptr("SensitiveDataDiscovery"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// },
// {
// Name: to.Ptr("ContainerRegistriesVulnerabilityAssessments"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// },
// {
// Name: to.Ptr("EntraPermissionsManagement"),
// 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 Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
*
* @summary Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/GetPricingByNameCloudPosture_example.json
*/
async function getPricingsOnSubscriptionCloudPosturePlan() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "CloudPosture";
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.get(scopeId, pricingName);
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
Exemple de réponse
{
"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",
"additionalExtensionProperties": {
"ExclusionTags": "[]"
}
},
{
"name": "AgentlessDiscoveryForKubernetes",
"isEnabled": "True"
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True"
},
{
"name": "ContainerRegistriesVulnerabilityAssessments",
"isEnabled": "True"
},
{
"name": "EntraPermissionsManagement",
"isEnabled": "True"
}
]
}
}
Get pricings on subscription - Containers plan
Exemple de requête
GET https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/Containers?api-version=2024-01-01
package armsecurity_test
import (
"context"
"log"
"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/GetPricingByNameContainers_example.json
func ExamplePricingsClient_Get_getPricingsOnSubscriptionContainersPlan() {
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().Get(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "Containers", 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("Containers"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/Containers"),
// 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("ContainerRegistriesVulnerabilityAssessments"),
// 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 Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
*
* @summary Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/GetPricingByNameContainers_example.json
*/
async function getPricingsOnSubscriptionContainersPlan() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "Containers";
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.get(scopeId, pricingName);
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
Exemple de réponse
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/Containers",
"name": "Containers",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "ContainerRegistriesVulnerabilityAssessments",
"isEnabled": "True"
}
]
}
}
Get pricings on subscription - Dns plan
Exemple de requête
GET https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/Dns?api-version=2024-01-01
package armsecurity_test
import (
"context"
"log"
"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/GetPricingByNameDns_example.json
func ExamplePricingsClient_Get_getPricingsOnSubscriptionDnsPlan() {
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().Get(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "Dns", 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("Dns"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/Dns"),
// Properties: &armsecurity.PricingProperties{
// Deprecated: to.Ptr(true),
// 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),
// ReplacedBy: []*string{
// to.Ptr("VirtualMachines")},
// ResourcesCoverageStatus: to.Ptr(armsecurity.ResourcesCoverageStatusFullyCovered),
// },
// }
}
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 Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
*
* @summary Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/GetPricingByNameDns_example.json
*/
async function getPricingsOnSubscriptionDnsPlan() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "Dns";
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.get(scopeId, pricingName);
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
Exemple de réponse
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/Dns",
"name": "Dns",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"deprecated": true,
"replacedBy": [
"VirtualMachines"
],
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered"
}
}
Get pricings on subscription - StorageAccounts plan
Exemple de requête
GET https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/StorageAccounts?api-version=2024-01-01
package armsecurity_test
import (
"context"
"log"
"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/GetPricingByNameStorageAccounts_example.json
func ExamplePricingsClient_Get_getPricingsOnSubscriptionStorageAccountsPlan() {
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().Get(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "StorageAccounts", 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("StorageAccounts"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/StorageAccounts"),
// 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),
// SubPlan: to.Ptr("PerStorageAccount"),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("OnUploadMalwareScanning"),
// AdditionalExtensionProperties: map[string]any{
// "capGBPerMonthPerStorageAccount": float64(10),
// },
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// },
// {
// Name: to.Ptr("SensitiveDataDiscovery"),
// 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 Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
*
* @summary Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/GetPricingByNameStorageAccounts_example.json
*/
async function getPricingsOnSubscriptionStorageAccountsPlan() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "StorageAccounts";
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.get(scopeId, pricingName);
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
Exemple de réponse
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/StorageAccounts",
"name": "StorageAccounts",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"subPlan": "PerStorageAccount",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "OnUploadMalwareScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"capGBPerMonthPerStorageAccount": 10
}
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True"
}
]
}
}
Get pricings on subscription - VirtualMachines plan
Exemple de requête
GET https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/VirtualMachines?api-version=2024-01-01
package armsecurity_test
import (
"context"
"log"
"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/GetPricingByNameVirtualMachines_example.json
func ExamplePricingsClient_Get_getPricingsOnSubscriptionVirtualMachinesPlan() {
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().Get(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "VirtualMachines", 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.EnforceFalse),
// FreeTrialRemainingTime: to.Ptr("PT0S"),
// PricingTier: to.Ptr(armsecurity.PricingTierStandard),
// ResourcesCoverageStatus: to.Ptr(armsecurity.ResourcesCoverageStatusPartiallyCovered),
// SubPlan: to.Ptr("P2"),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("AgentlessVmScanning"),
// AdditionalExtensionProperties: map[string]any{
// "ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]",
// },
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// },
// {
// Name: to.Ptr("MdeDesignatedSubscription"),
// 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 Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
*
* @summary Get the Defender plans pricing configurations of the selected scope (valid scopes are resource id or a subscription id). At the resource level, supported resource types are 'VirtualMachines, VMSS and ARC Machines'.
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/GetPricingByNameVirtualMachines_example.json
*/
async function getPricingsOnSubscriptionVirtualMachinesPlan() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "VirtualMachines";
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.get(scopeId, pricingName);
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
Exemple de réponse
{
"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": "False",
"resourcesCoverageStatus": "PartiallyCovered",
"extensions": [
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]"
}
},
{
"name": "MdeDesignatedSubscription",
"isEnabled": "True"
}
]
}
}
Définitions
Nom |
Description |
CloudError
|
Réponse d’erreur courante pour toutes les API Azure Resource Manager afin de retourner les détails de l’erreur pour les opérations ayant échoué. (Cela suit également le format de réponse d’erreur OData.).
|
CloudErrorBody
|
Détail de l’erreur.
|
code
|
Code d’état de l’opération.
|
enforce
|
S’il est défini sur « False », il permet aux descendants de cette étendue de remplacer la configuration de tarification définie sur cette étendue (autorise le paramètre hérité="False »). Si la valeur est « True », elle empêche les remplacements et force cette configuration tarifaire sur tous les descendants de cette étendue. Ce champ est disponible uniquement pour la tarification au niveau de l’abonnement.
|
ErrorAdditionalInfo
|
Informations supplémentaires sur l’erreur de gestion des ressources.
|
Extension
|
Propriétés d’extension d’un plan
|
inherited
|
« hérité » = « True » indique que l’étendue actuelle hérite de sa configuration de tarification de son parent. L’ID de l’étendue parente qui fournit la configuration héritée s’affiche dans le champ « inheritedFrom ». En revanche, « hérité » = « False » indique que l’étendue actuelle a sa propre configuration de tarification définie explicitement et n’hérite pas de son parent. Ce champ est en lecture seule et disponible uniquement pour la tarification au niveau des ressources.
|
isEnabled
|
Indique si l’extension est activée.
|
OperationStatus
|
État décrivant la réussite/l’échec de l’opération d’activation/désactivation de l’extension.
|
Pricing
|
Microsoft Defender pour Cloud est fourni dans deux niveaux tarifaires : gratuit et standard. Le niveau standard offre des fonctionnalités de sécurité avancées, tandis que le niveau gratuit offre des fonctionnalités de sécurité de base.
|
pricingTier
|
Indique si le plan Defender est activé sur l’étendue sélectionnée. Microsoft Defender pour Cloud est fourni dans deux niveaux tarifaires : gratuit et standard. Le niveau standard offre des fonctionnalités de sécurité avancées, tandis que le niveau gratuit offre des fonctionnalités de sécurité de base.
|
resourcesCoverageStatus
|
Ce champ est disponible uniquement au niveau de l’abonnement et reflète l’état de couverture des ressources sous l’abonnement. Veuillez noter que le champ « pricingTier » reflète l’état du plan de l’abonnement. Toutefois, étant donné que l’état du plan peut également être défini au niveau de la ressource, il peut y avoir un mauvais alignement entre l’état du plan de l’abonnement et l’état de la ressource. Ce champ permet d’indiquer l’état de couverture des ressources.
|
CloudError
Réponse d’erreur courante pour toutes les API Azure Resource Manager afin de retourner les détails de l’erreur pour les opérations ayant échoué. (Cela suit également le format de réponse d’erreur OData.).
Nom |
Type |
Description |
error.additionalInfo
|
ErrorAdditionalInfo[]
|
Informations supplémentaires sur l’erreur.
|
error.code
|
string
|
Code d’erreur.
|
error.details
|
CloudErrorBody[]
|
Détails de l’erreur.
|
error.message
|
string
|
Message d’erreur.
|
error.target
|
string
|
Cible d’erreur.
|
CloudErrorBody
Détail de l’erreur.
Nom |
Type |
Description |
additionalInfo
|
ErrorAdditionalInfo[]
|
Informations supplémentaires sur l’erreur.
|
code
|
string
|
Code d’erreur.
|
details
|
CloudErrorBody[]
|
Détails de l’erreur.
|
message
|
string
|
Message d’erreur.
|
target
|
string
|
Cible d’erreur.
|
code
Code d’état de l’opération.
Nom |
Type |
Description |
Failed
|
string
|
L’extension n’a pas été créée/mise à jour avec succès. Pour plus d’informations, consultez le message d’état de l’opération.
|
Succeeded
|
string
|
L’extension a été créée/mise à jour avec succès.
|
enforce
S’il est défini sur « False », il permet aux descendants de cette étendue de remplacer la configuration de tarification définie sur cette étendue (autorise le paramètre hérité="False »). Si la valeur est « True », elle empêche les remplacements et force cette configuration tarifaire sur tous les descendants de cette étendue. Ce champ est disponible uniquement pour la tarification au niveau de l’abonnement.
Nom |
Type |
Description |
False
|
string
|
Permet aux descendants de cette étendue de remplacer la configuration tarifaire définie sur cette étendue (autorise le paramètre hérité="False »)
|
True
|
string
|
Empêche les remplacements et force la configuration tarifaire de l’étendue actuelle à tous les descendants
|
ErrorAdditionalInfo
Informations supplémentaires sur l’erreur de gestion des ressources.
Nom |
Type |
Description |
info
|
object
|
Informations supplémentaires.
|
type
|
string
|
Type d’informations supplémentaire.
|
Extension
Propriétés d’extension d’un plan
Nom |
Type |
Description |
additionalExtensionProperties
|
|
Valeurs de propriété associées à l’extension.
|
isEnabled
|
isEnabled
|
Indique si l’extension est activée.
|
name
|
string
|
Nom de l’extension. Les valeurs prises en charge sont les suivantes :
AgentlessDiscoveryForKubernetes : fournit une empreinte zéro, la découverte basée sur l’API des clusters Kubernetes, leurs configurations et leurs déploiements. Les données collectées sont utilisées pour créer un graphe de sécurité contextualisé pour les clusters Kubernetes, fournir des fonctionnalités de repérage des risques et visualiser les risques et les menaces pour les environnements et charges de travail Kubernetes. Disponible pour le plan CloudPosture et le plan Conteneurs.
OnUploadMalwareScanning : limite le Go à analyser par mois pour chaque compte de stockage au sein de l’abonnement. Une fois cette limite atteinte sur un compte de stockage donné, les objets blob ne seront pas analysés pendant le mois calendrier actuel. Disponible pour le plan StorageAccounts (sous-plans DefenderForStorageV2).
SensitiveDataDiscovery : la découverte de données sensibles identifie le conteneur de stockage d’objets blob avec des données sensibles telles que les informations d’identification, les cartes de crédit, etc. pour aider à hiérarchiser et examiner les événements de sécurité. Disponible pour le plan StorageAccounts (sous-plan DefenderForStorageV2) et CloudPosture.
ContainerRegistriesVulnerabilityAssessments : fournit une gestion des vulnérabilités pour les images stockées dans vos registres de conteneurs. Disponible pour le plan CloudPosture et le plan Conteneurs.
MdeDesignatedSubscription : l’intégration directe est une intégration transparente entre Defender pour point de terminaison et Defender pour cloud qui ne nécessite pas de déploiement de logiciels supplémentaires sur vos serveurs. Les ressources intégrées seront présentées sous un abonnement Azure désigné que vous configurez Disponible pour le plan VirtualMachines (plans P1 et P2).
AgentlessVmScanning : analyse vos machines pour détecter les logiciels installés, les vulnérabilités, les programmes malveillants et l’analyse des secrets sans compter sur les agents ou affecter les performances de l’ordinateur. En savoir plus ici https://learn.microsoft.com/en-us/azure/defender-for-cloud/concept-agentless-data-collection. Disponible pour le plan CloudPosture, le plan VirtualMachines (plan P2) et le plan Conteneurs.
EntraPermissionsManagement - La gestion des autorisations fournit des fonctionnalités CIEM (Cloud Infrastructure Entitlement Management) qui permettent aux organisations de gérer et de contrôler l’accès et les droits des utilisateurs dans leur infrastructure cloud , vecteur d’attaque important pour les environnements cloud. La gestion des autorisations analyse toutes les autorisations et l’utilisation active, et suggère des recommandations pour réduire les autorisations pour appliquer le principe des privilèges minimum. En savoir plus ici https://learn.microsoft.com/en-us/azure/defender-for-cloud/permissions-management. Disponible pour le plan CloudPosture.
FileIntegrityMonitoring - Surveillance de l’intégrité des fichiers (FIM), examine les fichiers du système d’exploitation. Registres Windows, fichiers système Linux, en temps réel, pour les modifications susceptibles d’indiquer une attaque. Disponible pour le plan VirtualMachines (sous-plan P2).
ContainerSensor - Le capteur est basé sur IG et fournit une suite de détection de menaces riche pour les clusters, nœuds et charges de travail Kubernetes, alimentés par microsoft les informations avancées sur les menaces, fournit un mappage à MITRE ATT&framework CK. Disponible pour le plan Conteneurs.
AIPromptEvidence : expose les invites passées entre l’utilisateur et le modèle IA comme preuve d’alerte. Cela permet de classifier et de trier les alertes avec le contexte utilisateur approprié. Les extraits de code d’invite incluent uniquement les segments de l’invite utilisateur ou de la réponse du modèle qui ont été considérés comme suspects et pertinents pour les classifications de sécurité. La preuve d’invite sera disponible via le portail Defender dans le cadre de chaque alerte. Disponible pour le plan IA.
|
operationStatus
|
OperationStatus
|
Optionnel. État décrivant la réussite/l’échec de l’opération d’activation/désactivation de l’extension.
|
inherited
« hérité » = « True » indique que l’étendue actuelle hérite de sa configuration de tarification de son parent. L’ID de l’étendue parente qui fournit la configuration héritée s’affiche dans le champ « inheritedFrom ». En revanche, « hérité » = « False » indique que l’étendue actuelle a sa propre configuration de tarification définie explicitement et n’hérite pas de son parent. Ce champ est en lecture seule et disponible uniquement pour la tarification au niveau des ressources.
Nom |
Type |
Description |
False
|
string
|
Indique que l’étendue actuelle définit sa propre configuration de tarification et ne l’hérite pas de son parent
|
True
|
string
|
Indique que l’étendue actuelle hérite de sa configuration de tarification de son parent
|
isEnabled
Indique si l’extension est activée.
Nom |
Type |
Description |
False
|
string
|
Indique que l’extension est désactivée
|
True
|
string
|
Indique que l’extension est activée
|
OperationStatus
État décrivant la réussite/l’échec de l’opération d’activation/désactivation de l’extension.
Nom |
Type |
Description |
code
|
code
|
Code d’état de l’opération.
|
message
|
string
|
Informations supplémentaires sur la réussite/l’échec de l’opération.
|
Pricing
Microsoft Defender pour Cloud est fourni dans deux niveaux tarifaires : gratuit et standard. Le niveau standard offre des fonctionnalités de sécurité avancées, tandis que le niveau gratuit offre des fonctionnalités de sécurité de base.
Nom |
Type |
Description |
id
|
string
|
ID de ressource
|
name
|
string
|
Nom de la ressource
|
properties.deprecated
|
boolean
|
Optionnel. True si le plan est déconseillé. S’il existe des plans de remplacement, ils apparaissent dans replacedBy propriété
|
properties.enablementTime
|
string
|
Optionnel. Si pricingTier est Standard cette propriété contient la date de la dernière fois que le pricingTier a été défini sur Standard , lorsqu’il est disponible (par exemple, 2023-03-01T12:42:42.1921106Z).
|
properties.enforce
|
enforce
|
S’il est défini sur « False », il permet aux descendants de cette étendue de remplacer la configuration de tarification définie sur cette étendue (autorise le paramètre hérité="False »). Si la valeur est « True », elle empêche les remplacements et force cette configuration tarifaire sur tous les descendants de cette étendue. Ce champ est disponible uniquement pour la tarification au niveau de l’abonnement.
|
properties.extensions
|
Extension[]
|
Optionnel. Liste des extensions proposées sous un plan.
|
properties.freeTrialRemainingTime
|
string
|
Durée restante pour la période d’évaluation gratuite des abonnements - au format ISO 8601 (par exemple, P3Y6M4DT12H30M5S).
|
properties.inherited
|
inherited
|
« hérité » = « True » indique que l’étendue actuelle hérite de sa configuration de tarification de son parent. L’ID de l’étendue parente qui fournit la configuration héritée s’affiche dans le champ « inheritedFrom ». En revanche, « hérité » = « False » indique que l’étendue actuelle a sa propre configuration de tarification définie explicitement et n’hérite pas de son parent. Ce champ est en lecture seule et disponible uniquement pour la tarification au niveau des ressources.
|
properties.inheritedFrom
|
string
|
ID de l’étendue héritée. « Null » s’il n’est pas hérité. Ce champ est disponible uniquement pour la tarification au niveau des ressources.
|
properties.pricingTier
|
pricingTier
|
Indique si le plan Defender est activé sur l’étendue sélectionnée. Microsoft Defender pour Cloud est fourni dans deux niveaux tarifaires : gratuit et standard. Le niveau standard offre des fonctionnalités de sécurité avancées, tandis que le niveau gratuit offre des fonctionnalités de sécurité de base.
|
properties.replacedBy
|
string[]
|
Optionnel. Liste des plans qui remplacent ce plan. Cette propriété existe uniquement si ce plan est déconseillé.
|
properties.resourcesCoverageStatus
|
resourcesCoverageStatus
|
Ce champ est disponible uniquement au niveau de l’abonnement et reflète l’état de couverture des ressources sous l’abonnement. Veuillez noter que le champ « pricingTier » reflète l’état du plan de l’abonnement. Toutefois, étant donné que l’état du plan peut également être défini au niveau de la ressource, il peut y avoir un mauvais alignement entre l’état du plan de l’abonnement et l’état de la ressource. Ce champ permet d’indiquer l’état de couverture des ressources.
|
properties.subPlan
|
string
|
Sous-plan sélectionné pour une configuration tarifaire Standard, lorsque plusieurs sous-plans sont disponibles. Chaque sous-plan active un ensemble de fonctionnalités de sécurité. Lorsqu’il n’est pas spécifié, le plan complet est appliqué. Pour le plan VirtualMachines, les sous-plans disponibles sont « P1 » & « P2 », où pour le niveau de ressource uniquement « P1 » sous-plan est pris en charge.
|
type
|
string
|
Type de ressource
|
pricingTier
Indique si le plan Defender est activé sur l’étendue sélectionnée. Microsoft Defender pour Cloud est fourni dans deux niveaux tarifaires : gratuit et standard. Le niveau standard offre des fonctionnalités de sécurité avancées, tandis que le niveau gratuit offre des fonctionnalités de sécurité de base.
Nom |
Type |
Description |
Free
|
string
|
Bénéficiez gratuitement de l’expérience Microsoft Defender pour cloud avec les fonctionnalités de sécurité de base
|
Standard
|
string
|
Bénéficiez de l’expérience Microsoft Defender pour Cloud standard avec des fonctionnalités de sécurité avancées
|
resourcesCoverageStatus
Ce champ est disponible uniquement au niveau de l’abonnement et reflète l’état de couverture des ressources sous l’abonnement. Veuillez noter que le champ « pricingTier » reflète l’état du plan de l’abonnement. Toutefois, étant donné que l’état du plan peut également être défini au niveau de la ressource, il peut y avoir un mauvais alignement entre l’état du plan de l’abonnement et l’état de la ressource. Ce champ permet d’indiquer l’état de couverture des ressources.
Nom |
Type |
Description |
FullyCovered
|
string
|
Cette valeur indique que toutes les ressources associées à l’abonnement ont le plan Defender activé.
|
NotCovered
|
string
|
Cette valeur indique que le plan Defender est désactivé pour toutes les ressources de l’abonnement. Aucune des ressources n’est protégée par le plan Defender.
|
PartiallyCovered
|
string
|
Cette valeur indique que certaines ressources de l’abonnement ont le plan Defender activé, tandis que d’autres l’ont désactivée. Il existe un état de couverture mixte parmi les ressources.
|