In questa pagina viene spiegato come testare i moduli personalizzati di Security Health Analytics nella consoleGoogle Cloud caricando un file YAML contenente i dati di test.
Prima di iniziare
Prima di poter testare i moduli personalizzati, devi soddisfare i seguenti prerequisiti:
- Tutti i prerequisiti generali che si applicano all'utilizzo dei moduli personalizzati di Security Health Analytics. Per l'elenco completo dei prerequisiti, consulta Utilizzo di moduli personalizzati per Security Health Analytics.
- Al tuo account utente devono essere concessi uno o più ruoli Identity and Access Management (IAM) che ti consentano non solo di lavorare con Security Command Center e i moduli personalizzati, ma che includano anche l'autorizzazione
securitycentermanagement.securityhealthanalyticscustommodules.test. Per saperne di più sulle autorizzazioni e sui ruoli necessari per lavorare con i moduli personalizzati, consulta Autorizzazioni IAM richieste. - Le chiamate API per testare i moduli personalizzati sono soggette a una quota. Per saperne di più, consulta Quote dei moduli personalizzati.
Crea risorse di test in un file YAML
Per testare un modulo personalizzato, definisci definizioni di risorse fittizie, definizioni di policy fittizie o entrambe in un file YAML.
Le definizioni non corrispondono a istanze di risorse o policy reali, ma devono essere conformi agli schemi dei tipi di risorse o policy specificati nei moduli personalizzati.
Nelle definizioni dei test, le uniche proprietà che devi specificare sono quelle valutate dai moduli personalizzati. Non è necessario includere le proprietà delle risorse a cui il modulo personalizzato non fa riferimento.
Per testare le espressioni CEL nel modulo personalizzato, specifica i valori delle proprietà nel file di test che fanno sì che le espressioni CEL vengano risolte in true.
Formato dei dati di test
Inizia il file con testData: sulla prima riga, seguito da una o più definizioni - asset.
testData:
- asset:
resource: ARBITRARY_ASSET_NAME_1
assetType: RESOURCE_TYPE_1
resourceData:
PROPERTIES_TO_TEST_1: PROPERTY_VALUE_1
SUB_PROPERTY: SUB_PROPERTY_VALUE
PROPERTIES_TO_TEST_2: PROPERTY_VALUE_2
- asset:
resource: ARBITRARY_ASSET_NAME_2
assetType: RESOURCE_TYPE_2
iamPolicyData:
PROPERTIES_TO_TEST_3: PROPERTY_VALUE_3
PROPERTIES_TO_TEST_4: PROPERTY_VALUE_4
Sostituisci quanto segue:
ARBITRARY_ASSET_NAME_N: un valore arbitrario che viene visualizzato nei risultati del test quando questo ha esito positivo.RESOURCE_TYPE_N: il tipo di asset o risorsa controllato dal modulo personalizzato, specificato come nome di dominio dell'endpoint di servizio dell'API e nome della risorsa, ad esempiocloudkms.googleapis.com/CryptoKey.PROPERTIES_TO_TEST_N: le proprietà utilizzate nella logica di rilevamento del modulo personalizzato per attivare un risultato.PROPERTY_VALUE_N: un valore della proprietà che attiva un risultato.SUB_PROPERTY: una proprietà secondaria o una proprietà di un'altra risorsa a cui la risorsa di destinazione fa riferimento nella sua definizione.
Esempi di definizioni di test
Questa sezione contiene un esempio di definizione di una risorsa di test e di una policy di test. Sebbene i due esempi siano mostrati come definiti in file separati, le definizioni asset per le risorse e le policy possono essere combinate in un unico file testData.
Esempio di definizione di risorsa
Il seguente esempio di definizione di una risorsa di test verifica un modulo personalizzato che controlla se la proprietà rotationPeriod delle risorse CryptoKey supera 2592000 secondi (30 giorni). Le altre proprietà della definizione non vengono utilizzate nel modulo personalizzato, ma sono comunque conformi allo schema della risorsa. Per la definizione completa del modulo personalizzato testato da questo esempio, consulta Definizione del modulo personalizzato di esempio.
testData:
- asset:
resource: THE CRYPTOKEY TEST WAS SUCCESSFUL!
assetType: cloudkms.googleapis.com/CryptoKey
resourceData:
nextRotationTime: '2020-02-05T12:00:55.192645Z'
primary:
state: 'ENABLED'
purpose: 'ENCRYPT_DECRYPT'
rotationPeriod: '2592001s'
Esempio di definizione della policy
Di seguito è riportato un esempio di definizione di test per una policy IAM:
testData:
- asset:
resource: //cloudresourcemanager.googleapis.com/projects/fake-project
assetType: cloudresourcemanager.googleapis.com/Project
iamPolicyData:
bindings:
- role: "roles/viewer"
members:
- "serviceAccount:fake-service-account@compute-system."
- "user:fake-email-account"
Testa un modulo personalizzato
Puoi testare i moduli personalizzati nuovi o esistenti nella consoleGoogle Cloud .
Per testare un modulo personalizzato, segui questi passaggi:
Vai alla pagina Moduli di Security Health Analytics nelle impostazioni di Security Command Center.
Apri o crea un modulo personalizzato per i test:
- Per creare un nuovo modulo personalizzato, fai clic su Crea modulo e segui le istruzioni riportate in Crea moduli personalizzati.
- Per aprire un modulo personalizzato esistente, fai clic sull'icona di modifica (edit) in Azioni sul lato destro della riga del modulo che vuoi testare.
Seleziona la scheda Modulo di test.
In Carica il file YAML, fai clic su Sfoglia per caricare un file contenente dati di esempio degli asset. Il test viene eseguito non appena viene caricato il file YAML.
Nella sezione Anteprima dei risultati del test, controlla i risultati.
- Se nel file YAML sono presenti errori di sintassi o di altro tipo, viene visualizzato un messaggio di errore mobile nella parte inferiore della pagina del browser.
Se il test ha esito positivo, restituisce le seguenti informazioni:
- Il nome visualizzato del modulo personalizzato.
- Il nome arbitrario specificato nella proprietà
resourcenel file di dati di test. - L'organizzazione, la cartella o il progetto in cui è stato o verrà creato il modulo personalizzato.
I risultati dei test non vengono archiviati o scritti in Security Command Center.
Passaggi successivi
- Per utilizzare i moduli personalizzati, consulta Utilizzo dei moduli personalizzati per Security Health Analytics.
- Per utilizzare i risultati nella console Google Cloud , consulta Utilizza i risultati.