Condividi tramite


Destinazioni e funzionalità in Azure Chaos Studio

Prima di poter inserire un errore in una risorsa di Azure, la risorsa deve avere le destinazioni e le funzionalità corrispondenti abilitate. Le destinazioni e le funzionalità controllano quali risorse sono abilitate per l'inserimento degli errori e quali errori possono essere eseguiti su tali risorse.

Usando destinazioni e funzionalità insieme ad altre misure di sicurezza, è possibile evitare attacchi accidentali o dannosi con Azure Chaos Studio. Ad esempio, con destinazioni e funzionalità, è possibile consentire l'esecuzione dell'errore di pressione della CPU nelle macchine virtuali di produzione, impedendo al contempo l'esecuzione dell'errore del processo di terminazione.

Targets

Una destinazione chaos consente a Chaos Studio di interagire con una risorsa per un determinato tipo di destinazione. Un tipo di destinazione rappresenta il metodo di inserimento di errori su una risorsa. I tipi di risorse che supportano solo gli errori diretti dal servizio hanno un tipo di destinazione. Un esempio è il Microsoft-CosmosDB tipo per Azure Cosmos DB.

I tipi di risorse che supportano errori basati su servizi diretti e agenti hanno due tipi di destinazione. Un tipo di destinazione è per gli errori diretti dal servizio , ad esempio Microsoft-VirtualMachine. L'altro tipo di destinazione è per gli errori basati su agente (sempre Microsoft-Agent).

Una destinazione è una risorsa di estensione creata come figlio della risorsa di cui viene eseguito l'onboarding in Chaos Studio. Alcuni esempi sono una macchina virtuale o un gruppo di sicurezza di rete. Una destinazione definisce il tipo di destinazione abilitato nella risorsa. Ad esempio, se si esegue l'onboarding di un'istanza di Azure Cosmos DB con questo ID risorsa:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB

La risorsa di Azure Cosmos DB ha una risorsa figlio formattata come nell'esempio seguente:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB/providers/Microsoft.Chaos/targets/Microsoft-CosmosDB

Solo le risorse con una destinazione creata al di fuori di esse sono destinate all'inserimento di errori con Chaos Studio.

Funzionalità

Una funzionalità consente a Chaos Studio di eseguire un errore specifico su una risorsa, ad esempio arrestare una macchina virtuale. Le funzionalità sono univoche per ogni tipo di destinazione. Rappresentano l'errore che abilitano, ad esempio . CPUPressure-1.0 Per comprendere tutti gli errori disponibili e i relativi nomi di funzionalità e tipi di destinazione, vedere la libreria di errori di Chaos Studio.

Una funzionalità è una risorsa di estensione creata come figlio di una destinazione. Ad esempio, se si abilita l'errore di arresto in una macchina virtuale con un ID di destinazione diretto al servizio:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine

La risorsa di destinazione ha una risorsa figlio formattata come nell'esempio seguente:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0

Un esperimento può inserire errori solo nelle destinazioni di cui è stato eseguito l'onboarding con le funzionalità corrispondenti abilitate.

Elencare i nomi e i parametri delle funzionalità

Per riferimento, nella libreria di errori è disponibile un elenco di nomi di funzionalità, URL di errore e parametri. È possibile usare la risposta HTTP per creare una funzionalità o eseguire get su una funzionalità esistente per ottenere queste informazioni su richiesta. Ad esempio, per eseguire un'operazione GET in una funzionalità di arresto della macchina virtuale:

az rest --method get --url "https://management.azure.com/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0?api-version=2023-11-01"

Restituisce il codice JSON seguente:

{
  "id": "/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0",
  "name": "shutdown-1.0",
  "properties": {
    "description": null,
    "name": "shutdown-1.0",
    "parametersSchema": "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json",
    "publisher": "Microsoft",
    "targetType": "VirtualMachine",
    "type": "shutdown",
    "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0",
    "version": "1.0"
  },
  "resourceGroup": "myRG",
  "systemData": {
    "createdAt": "2021-09-15T23:00:00.826575+00:00",
    "lastModifiedAt": "2021-09-15T23:00:00.826575+00:00"
  },
  "type": "Microsoft.Chaos/targets/capabilities"
}

La properties.urn proprietà viene usata per definire l'errore che si vuole eseguire in un esperimento chaos. Per comprendere lo schema per i parametri di questo errore, è possibile ottenere lo schema a cui properties.parametersSchemafa riferimento :

az rest --method get --url "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json"

Restituisce il codice JSON seguente:

{
  "$schema": "https://json-schema.org/draft-07/schema",
  "properties": {
    "abruptShutdown": {
      "type": "boolean"
    },
    "restartWhenComplete": {
      "type": "boolean"
    }
  },
  "type": "object"
}

Passaggi successivi

Dopo aver compreso quali obiettivi e funzionalità sono disponibili, è possibile: