Google Cloud API
Questo documento fornisce indicazioni per aiutarti a configurare e integrare l'APIGoogle Cloud con Google Security Operations SOAR.
Versione integrazione: 4.0
Integra l'API Google Cloud con Google SecOps SOAR
L'integrazione richiede i seguenti parametri:
| Parametri | Descrizione |
|---|---|
Test URL |
Facoltativo Un URL di test per convalidare l'autenticazione all' Google Cloud API. Questo parametro utilizza una richiesta GET. |
Service Account Json File Content |
Facoltativo Il contenuto del file JSON della chiave dell'account di servizio. Puoi configurare questo parametro, il parametro Per configurare questo parametro, fornisci l'intero contenuto del file JSON della chiave dell'account di servizio che hai scaricato durante la creazione di un account di servizio. Per saperne di più sull'utilizzo dei service account come metodo di autenticazione, consulta Panoramica dei service account e Simulazione dell'identità del service account. In questa integrazione, l'autenticazione con il file JSON della chiave dell'account di servizio ha la priorità sull'email dell'identità del workload. |
Organization ID |
Facoltativo L'ID organizzazione da utilizzare nell'integrazione. Per recuperare il valore da questo parametro durante l'esecuzione dell'azione,
imposta il seguente segnaposto: |
Project ID |
Facoltativo L'ID progetto da utilizzare nell'integrazione. Per recuperare il valore da questo parametro durante l'esecuzione dell'azione,
imposta il seguente segnaposto:
|
Quota Project ID |
Facoltativo L'ID progetto che utilizzi per le API e la fatturazione. Google Cloud Google Cloud Questo parametro richiede che tu conceda
il ruolo L'integrazione associa questo valore del parametro a tutte le richieste API. Se non imposti un valore per questo parametro, l'integrazione recupera l'ID progetto dal tuo service account Google Cloud . |
Workload Identity Email |
Facoltativo L'indirizzo email client del tuo service account. Puoi configurare questo parametro o il parametro In questa integrazione, l'autenticazione con il file JSON della chiave dell'account di servizio ha la priorità sull'email dell'identità del workload. Per rappresentare service account con Workload Identity,
concedi il ruolo |
OAuth Scopes |
Facoltativo Un elenco separato da virgole degli ambiti OAuth necessari per eseguire le richieste API Google Cloud . |
Verify SSL |
Obbligatorio Se selezionata, l'integrazione verifica che il certificato SSL per la connessione al servizio Google Cloud sia valido. Questa opzione è selezionata per impostazione predefinita. |
Per istruzioni sulla configurazione di un'integrazione in Google SecOps, consulta Configurare le integrazioni.
Se necessario, potrai apportare modifiche in un secondo momento. Dopo aver configurato un'istanza di integrazione, puoi utilizzarla nei playbook. Per saperne di più sulla configurazione e sul supporto di più istanze, consulta Supporto di più istanze.
Azioni
Per ulteriori informazioni sulle azioni, vedi Rispondere alle azioni in attesa dalla tua scrivania e Eseguire un'azione manuale.
Esegui richiesta HTTP
Utilizza l'azione Esegui richiesta HTTP per creare ed eseguire una richiesta API HTTP personalizzata su un URL di destinazione.
Questa azione non viene eseguita sulle entità Google SecOps.
Comportamento dell'azione
Questa azione supporta comportamenti complessi, tra cui il polling asincrono, la costruzione dinamica del payload e la gestione dei file.
Polling asincrono
Quando viene fornito Expected Response Values, l'azione opera in modalità asincrona. In questa modalità, l'azione esegue il polling ripetutamente
dell'endpoint di destinazione per monitorare lo stato di una risposta (ad esempio, in attesa del completamento di un'attività a lunga esecuzione).
L'azione valuta il corpo della risposta in base alle condizioni JSON fornite nel parametro e continua l'esecuzione finché le condizioni non vengono soddisfatte o l'azione non raggiunge il timeout.
Logica delle condizioni
L'azione supporta la seguente logica per il monitoraggio degli stati di risposta:
Corrispondenza di un singolo campo: l'azione attende che un campo specifico raggiunga un singolo valore.
{ "state": "finished" }Più valori (logica OR): l'azione interrompe l'esecuzione se un campo corrisponde a un valore in un elenco fornito. È utile per interrompere sia gli stati "successo" che "errore" per evitare il polling non necessario.
{ "state": ["finished", "error"] }Più campi (logica AND): l'azione attende che tutti i campi specificati corrispondano contemporaneamente ai rispettivi valori.
{ "state": "finished", "percentage": "100" }Logica combinata: puoi combinare più condizioni all'interno dell'oggetto JSON.
{ "state": ["finished", "error"], "percentage": "10" }
Comportamento dell'analisi JSON
Quando valuta le condizioni, l'azione segue queste regole:
Ricerca globale: l'azione cerca le chiavi specificate nell'intero oggetto di risposta JSON. Fornisci il nome della chiave esattamente come appare nel JSON senza anteporre nomi di oggetti principali o utilizzare prefissi (ad esempio, utilizza
"state", non"data_state"o"data-state").Più chiavi identiche: se la risposta contiene più chiavi con lo stesso nome a diversi livelli della gerarchia JSON, l'output previsto viene raggiunto solo quando tutti i nomi delle chiavi corrispondenti soddisfano il valore previsto identico.
Ad esempio, per cercare lo stato
finishednella risposta JSON e ignorare gli altri stati, imposta tutte le chiavistateinExpected Response Valuessufinished:{ "data": { "state": "finished" }, "state": "finished" }
Costruzione del payload del corpo
L'azione crea il corpo della richiesta in base all'intestazione Content-Type
fornita in Headers.
Questo è l'input Body Payload utilizzato per
i seguenti esempi di costruzione:
{
"Id": "123123",
"sorting": "asc"
}
application/x-www-form-urlencoded: l'azione genera il payload comeId=123123&sorting=asc.application/json: l'azione genera il seguente payload JSON:{ "Id": "123123", "sorting": "asc" }XML: se il prodotto di terze parti richiede XML, fornisci un input in formato XML direttamente inBody Payload:<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="[http://schemas.xmlsoap.org/soap/envelope/](http://schemas.xmlsoap.org/soap/envelope/)"> <soap:Body> <NumberToWords xmlns="[http://www.dataaccess.com/webservicesserver/](http://www.dataaccess.com/webservicesserver/)"> <ubiNum>500</ubiNum> </NumberToWords> </soap:Body> </soap:Envelope>
Gestione dei file
L'azione supporta i seguenti flussi di lavoro per la gestione dei file:
Download dei file:
Per restituire i dati del file come parte del risultato JSON in formato base64, seleziona
Base64 Output.Per salvare un file direttamente nella bacheca della richiesta come archivio ZIP, seleziona
Save To Case Wall.
Caricamento di file: per caricare un file, convertilo in una stringa codificata Base64 e includilo come parte del valore
Body Payload.L'esempio seguente mostra un file immagine convertito in una stringa con codifica base64:
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: per i file sensibili (ad esempio malware), seleziona
Password Protect Zip. In questo modo, l'archivio ZIP salvato creato utilizzandoSave To Case Wallviene criptato automaticamente con la passwordinfected.
Configurazione del blocco del playbook
La seguente configurazione mostra come utilizzare l'azione Esegui richiesta HTTP all'interno di un blocco del playbook. Utilizza questo esempio per capire come applicare i segnaposto e i prefissi di input.
Quando utilizzi gli input a blocchi come segnaposto, devi includere il prefisso Input.
(ad esempio, [Input.comment]).
Metodo:
PUTPercorso URL:
https://{API_URL}/[Input.table_name]/[Input.sys_id]Intestazioni:
{ "Content-type": "application/json; charset=utf-8", "Accept": "application/json", "User-Agent": "GoogleSecops" }Body Payload:
{ "work_notes": "[Input.comment]" }
Input azione
L'azione Esegui richiesta HTTP richiede i seguenti parametri:
| Parametro | Descrizione |
|---|---|
Method |
Facoltativo Un metodo da utilizzare nella richiesta. Il valore predefinito è
|
URL Path |
Facoltativo Un URL da eseguire. Il valore predefinito è
|
URL Params |
Facoltativo I parametri URL. L'azione utilizza qualsiasi valore fornito insieme ai valori che hai fornito direttamente nel parametro Percorso URL. Questo parametro richiede come input il formato dell'oggetto JSON. Il valore predefinito è: {
"URL Field Name": "URL_FIELD_VALUE"
} |
Headers |
Facoltativo Intestazioni da utilizzare nella richiesta HTTP. Questo parametro richiede come input il formato dell'oggetto JSON. Il valore predefinito è: {
"Content-Type": "application/json; charset=utf-8",
"Accept": "application/json",
"User-Agent" : "GoogleSecOps"
} |
Cookie |
Facoltativo I parametri da utilizzare nell'intestazione Questo parametro sovrascrive i cookie forniti nel parametro Headers. Questo parametro richiede come input il formato dell'oggetto JSON. Il valore predefinito è: {
"Cookie_1": "COOKIE_1_VALUE"
} |
|
Facoltativo
Un corpo per la richiesta HTTP. L'azione crea payload diversi
a seconda del valore dell'intestazione Questo parametro richiede il formato oggetto JSON come input, tranne quando un
prodotto di terze parti richiede XML o i contenuti Il valore predefinito è: {
"Body Field Name": "BODY_FIELD_VALUE"
} |
Expected Response Values |
Facoltativo. L'oggetto JSON contenente le coppie campo-valore che definiscono lo stato richiesto del corpo della risposta. |
Save To Case Wall |
Facoltativo Se selezionata, l'azione salva il file e lo allega
alla bacheca del caso. Il file viene archiviato con l'estensione
Non selezionato per impostazione predefinita. |
Password Protect Zip |
Facoltativo Se selezionata, l'azione aggiunge una password al
file Utilizza questo parametro quando lavori con file sospetti. Questa opzione è selezionata per impostazione predefinita. |
Follow Redirects |
Facoltativo Se selezionata, l'azione segue i reindirizzamenti. Questa opzione è selezionata per impostazione predefinita. |
Fail on 4xx/5xx |
Facoltativo Se selezionata, l'azione non va a buon fine se il codice di stato della risposta è un errore 4xx o 5xx. Questa opzione è selezionata per impostazione predefinita. |
Base64 Output |
Facoltativo Se selezionata, l'azione converte la risposta nel formato base64. Utilizza questo parametro durante il download dei file. Il risultato JSON non può superare i 15 MB. Non selezionato per impostazione predefinita. |
Fields To Return |
Obbligatorio I campi da restituire. I valori possibili sono i seguenti:
|
Request Timeout |
Obbligatorio Periodo di attesa per l'invio dei dati da parte del server prima che l'azione non vada a buon fine. Il valore predefinito è 120 secondi. |
Output dell'azione
L'azione Esegui richiesta HTTP fornisce i seguenti output:
| Tipo di output dell'azione | Disponibilità |
|---|---|
| Allegato della bacheca casi | Non disponibile |
| Link alla bacheca casi | Non disponibile |
| Tabella della bacheca casi | Non disponibile |
| Tabella di arricchimento | Non disponibile |
| Risultato JSON | Disponibile |
| Messaggi di output | Disponibile |
| Risultato dello script | Disponibile |
Risultato JSON
L'esempio seguente descrive l'output del risultato JSON ricevuto quando si utilizza l'azione Esegui richiesta HTTP:
{
"response_data": {
"data": {
"relationships": {
"comment": [
{
"name": "item",
"description": "Object to which the comment belongs to."
},
{
"name": "author",
"description": "User who wrote the comment."
}
]
}
}
},
"redirects": [],
"response_code": 200,
"cookies": {},
"response_headers": {
"Content-Type": "application/json",
"X-Cloud-Trace-Context": "VALUE",
"Date": "Fri, 03 Nov 2023 16:14:13 GMT",
"Server": "Google Frontend",
"Content-Length": "36084"
},
"apparent_encoding": "ascii"
}
Messaggi di output
L'azione Esegui richiesta HTTP fornisce i seguenti messaggi di output:
| Messaggio di output | Descrizione del messaggio |
|---|---|
|
L'azione è riuscita. |
Failed to execute API request. Error:
ERROR_REASON |
L'azione non è riuscita. Controlla la connessione al server, i parametri di input o le credenziali. |
Risultato dello script
La seguente tabella descrive i valori dell'output del risultato dello script quando si utilizza l'azione Esegui richiesta HTTP:
| Nome del risultato dello script | Valore |
|---|---|
is_success |
True o False |
Ping
Utilizza l'azione Ping per testare la connettività a Google Cloud.
Questa azione non viene eseguita sulle entità Google SecOps.
Input azione
Nessuno.
Output dell'azione
L'azione Ping fornisce i seguenti output:
| Tipo di output dell'azione | Disponibilità |
|---|---|
| Allegato della bacheca casi | Non disponibile |
| Link alla bacheca casi | Non disponibile |
| Tabella della bacheca casi | Non disponibile |
| Tabella di arricchimento | Non disponibile |
| Risultato JSON | Disponibile |
| Messaggi di output | Disponibile |
| Risultato dello script | Disponibile |
Risultato JSON
Il seguente esempio descrive l'output del risultato JSON ricevuto quando si utilizza l'azione Ping:
{
"endpoint": "TEST_URL"
}
Messaggi di output
L'azione Ping fornisce i seguenti messaggi di output:
| Messaggio di output | Descrizione del messaggio |
|---|---|
Successfully tested connectivity. |
L'azione è riuscita. |
Failed to test connectivity. |
L'azione non è riuscita. Controlla la connessione al server, i parametri di input o le credenziali. |
Risultato dello script
La seguente tabella descrive i valori per l'output del risultato dello script quando utilizzi l'azione Ping:
| Nome del risultato dello script | Valore |
|---|---|
is_success |
True o False |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.