Integrare Cloud Asset Inventory con Google SecOps
Questo documento spiega come integrare Cloud Asset Inventory con Google Security Operations (Google SecOps).
Versione integrazione: 12.0
Nella piattaforma Google SecOps, l'integrazione per Cloud Asset Inventory si chiama Google Cloud Asset Inventory.
Prima di iniziare
Per utilizzare l'integrazione, devi disporre di un ruolo IAM (Identity and Access Management) e di un service accountGoogle Cloud .
Creare e configurare un ruolo IAM personalizzato
Per creare un ruolo IAM personalizzato e configurare un'autorizzazione specifica per questo ruolo, completa i seguenti passaggi:
Nella console Google Cloud , vai alla pagina Ruoli di IAM.
Fai clic su Crea ruolo per creare un ruolo personalizzato con le autorizzazioni richieste per l'integrazione.
Per un nuovo ruolo personalizzato, fornisci Titolo, Descrizione e un ID univoco.
Imposta Fase di lancio del ruolo su Disponibilità generale.
Aggiungi la seguente autorizzazione al ruolo creato:
cloudasset.assets.searchAllResources
Crea e configura un account di servizio
Per integrare Cloud Asset Inventory con Google SecOps, puoi utilizzare un account di servizio esistente o crearne uno nuovo. Per indicazioni sulla creazione di un account di servizio, vedi Creare service account.
L'integrazione di Cloud Asset Inventory richiede di concedere al service account il ruolo personalizzato creato nella sezione precedente e il ruolo Cloud Asset Viewer
.
Se non utilizzi un'email dell'identità del workload per configurare l'integrazione, crea una chiave dell'account di servizio in JSON dopo aver creato un account di servizio. Quando configuri i parametri di integrazione, devi fornire l'intero contenuto del file di chiave JSON scaricato.
Per motivi di sicurezza, ti consigliamo di utilizzare indirizzi email di identità del workload anziché chiavi JSON account di servizio. Per saperne di più sulle identità dei workload, consulta Identità per i workload.
Concedere un ruolo personalizzato a un'entità esistente
Dopo aver concesso il nuovo ruolo personalizzato a un soggetto selezionato, quest'ultimo può modificare le autorizzazioni per qualsiasi utente della tua organizzazione.
Per concedere il ruolo personalizzato a un'entità esistente, completa i seguenti passaggi:
Nella console Google Cloud , vai alla pagina IAM.
Nel campo Filtro, incolla il valore Email di Workload Identity che utilizzi per l'integrazione di Cloud Asset Inventory e cerca l'entità esistente.
Fai clic su
Modifica soggetto. Si apre la finestra di dialogo Modifica l'accesso a "PROJECT".Nella sezione Assegna ruoli, fai clic su
Aggiungi un altro ruolo.Seleziona i ruoli predefiniti per Cloud Asset Inventory.
Fai clic su Salva.
Parametri di integrazione
L'integrazione di Cloud Asset Inventory richiede i seguenti parametri:
Parametro | Descrizione |
---|---|
API Root |
Obbligatorio
La radice dell'API dell'istanza Cloud Asset Inventory. Il valore predefinito è |
Organization ID |
Optional
L'ID organizzazione da utilizzare nell'integrazione di Cloud Asset Inventory. |
Project ID |
Optional L'ID progetto da utilizzare per l'integrazione di Cloud Asset Inventory. Se non imposti un valore per questo parametro, l'integrazione
recupera l'ID progetto dai contenuti del file JSON forniti nel
parametro |
User's Service Account |
Obbligatorio
Il contenuto del file JSON della chiave dell'account di servizio. Puoi configurare questo parametro o 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. |
Quota Project ID |
Optional L'ID progetto Google Cloud che utilizzi per
le API e la fatturazione. Google Cloud Questo parametro richiede che tu conceda
il ruolo Se non imposti alcun valore per questo parametro, l'integrazione recupera l'ID progetto dal tuo service account Google Cloud . |
Workload Identity Email |
Optional L'indirizzo email client del tuo account di servizio. Puoi configurare questo parametro o il parametro Per simulare l'identità dei service account con la federazione delle identità per i carichi di lavoro,
concedi il ruolo |
Verify SSL |
Obbligatorio
Se selezionata, l'integrazione verifica che il certificato SSL per la connessione al server Cloud Asset Inventory sia valido. Questa opzione è selezionata per impostazione predefinita. |
Per istruzioni dettagliate sulla configurazione di un'integrazione in Google SecOps, vedi 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 maggiori informazioni sulle azioni, vedi Rispondere alle azioni in attesa dalla tua scrivania ed Eseguire un'azione manuale.
Arricchisci risorsa
Utilizza l'azione Arricchisci risorsa per arricchire le informazioni su una risorsa Google Cloud utilizzando Cloud Asset Inventory.
L'azione non viene eseguita sulle entità Google SecOps.
Input azione
Per configurare l'azione Arricchisci risorsa, utilizza i seguenti parametri:
Parametro | Descrizione |
---|---|
Resource Names |
Obbligatorio
Un elenco separato da virgole contenente i nomi delle risorse per cui recuperare i dettagli. Per configurare questo parametro, inserisci il nome completo
della risorsa di metadati nel seguente formato:
|
Fields To Return |
Optional
Un elenco separato da virgole di campi da restituire. Il valore predefinito è
Di seguito sono riportati alcuni esempi di valori:
L'azione restituisce sempre il campo Esiste anche un'opzione per configurare i filtri avanzati. Ad esempio, per
restituire una chiave specifica da |
Output dell'azione
L'azione Arricchisci risorsa fornisce i seguenti output:
Tipo di output dell'azione | Disponibilità |
---|---|
Allegato della bacheca casi | Non disponibile |
Link alla bacheca richieste | 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 mostra l'output del risultato JSON ricevuto quando si utilizza l'azione Arricchisci risorsa:
[
{
"Entity": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT/keys/KEY_ID",
"EntityResult": {
"additionalAttributes": {
"email": "email@example.iam.gserviceaccount.com",
"uniqueId": 123456789
},
"name": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT/keys/KEY_ID",
"assetType": "iam.googleapis.com/ServiceAccountKey",
"project": "projects/PROJECT",
"displayName": "projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com/keys/KEY_ID",
"createTime": "2022-05-26T17:35:07Z",
"versionedResources": [
{
"version": "v1",
"resource": {
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED",
"name": "projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com/keys/KEY_ID",
"validAfterTime": "2022-05-26T17:35:07Z",
"validBeforeTime": "9999-12-31T23:59:59Z"
}
}
],
"organization": "organizations/ORGANIZATION",
"parentFullResourceName": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com",
"parentAssetType": "iam.googleapis.com/ServiceAccount"
}
}
]
Messaggi di output
L'azione Arricchisci risorsa può restituire i seguenti messaggi di output:
Messaggio di output | Descrizione del messaggio |
---|---|
|
L'azione è riuscita. |
Error executing action "Enrich resources". Reason:
ERROR_REASON |
L'azione non è riuscita. Controlla la connessione al server, i parametri di input o le credenziali. |
Risultato dello script
La seguente tabella elenca il valore dell'output del risultato dello script quando utilizzi l'azione Arricchisci risorsa:
Nome del risultato dello script | Valore |
---|---|
is_success |
True o False |
Recupero snapshot risorsa
Utilizza l'azione Ottieni snapshot risorsa per ottenere informazioni sulla risorsa utilizzando Cloud Asset Inventory.
Questa azione non viene eseguita sulle entità Google SecOps.
Input azione
Per configurare l'azione Ottieni snapshot risorsa, utilizza i seguenti parametri:
Parametro | Descrizione |
---|---|
Resource Names |
Obbligatorio Un elenco separato da virgole di risorse per cui recuperare i dettagli. Per configurare questo parametro, inserisci il nome completo
della risorsa di metadati nel seguente formato:
|
Fields To Return |
Optional Un elenco separato da virgole di campi da restituire. Inserisci ogni campo nel seguente formato: assets.FIELD
Esempi di valori sono: L'azione restituisce sempre il campo Il valore predefinito è |
Output dell'azione
L'azione Get Resource Snapshot fornisce i seguenti output:
Tipo di output dell'azione | Disponibilità |
---|---|
Allegato della bacheca casi | Non disponibile |
Link alla bacheca richieste | 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
Gli esempi riportati di seguito mostrano gli output dei risultati JSON ricevuti quando si utilizza l'azione Ottieni snapshot risorsa:
Risultato JSON per Google Cloud
[ { "Entity": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/example-instance", "EntityResult": { "window": { "startTime": "2023-08-14T19:43:41.805828Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/example-instance", "assetType": "compute.googleapis.com/Instance", "resource": { "version": "v1", "discoveryDocumentUri": "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest", "discoveryName": "Instance", "parent": "//cloudresourcemanager.googleapis.com/projects/example-project-id", "data": { "description": "", "serviceAccounts": [ { "email": "user@example.com", "scopes": [ "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/logging.write", "https://www.googleapis.com/auth/monitoring.write", "https://www.googleapis.com/auth/servicecontrol", "https://www.googleapis.com/auth/service.management.readonly", "https://www.googleapis.com/auth/trace.append" ] } ], "lastStartTimestamp": "2022-05-26T01:44:52.756-07:00", "deletionProtection": false, "name": "example-name", "keyRevocationActionType": "NONE_ON_KEY_REVOCATION", "canIpForward": false, "shieldedInstanceIntegrityPolicy": { "updateAutoLearnPolicy": true }, "zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "resourceStatus": {}, "scheduling": { "onHostMaintenance": "MIGRATE", "preemptible": false, "provisioningModel": "STANDARD", "automaticRestart": true }, "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/machineTypes/e2-micro", "confidentialInstanceConfig": { "enableConfidentialCompute": false }, "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance", "id": "example-id", "fingerprint": "example-fingerprint", "startRestricted": false, "networkInterfaces": [ { "network": "https://www.googleapis.com/compute/v1/projects/example-project/global/networks/example-network", "stackType": "IPV4_ONLY", "name": "example", "subnetwork": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/subnetworks/example-network-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External NAT", "natIP": "192.0.2.1", "networkTier": "PREMIUM" } ], "fingerprint": "example-fingerprint", "networkIP": "203.0.113.2" } ], "allocationAffinity": { "consumeAllocationType": "ANY_ALLOCATION" }, "labelFingerprint": "example-label", "shieldedInstanceConfig": { "enableSecureBoot": false, "enableVtpm": true, "enableIntegrityMonitoring": true }, "cpuPlatform": "Intel Broadwell", "creationTimestamp": "2022-05-26T01:44:40.323-07:00", "status": "RUNNING", "disks": [ { "guestOsFeatures": [ { "type": "VIRTIO_SCSI_MULTIQUEUE" }, { "type": "SEV_CAPABLE" }, { "type": "UEFI_COMPATIBLE" }, { "type": "GVNIC" } ], "interface": "SCSI", "shieldedInstanceInitialState": { "dbxs": [ { "content": "2gcDBhMRFQAAAAAAAAAAABENAAAAAvEOndK", "fileType": "BIN" } ], "dbx": [ { "fileType": "BIN", "content": "2gcDBhMRFQAAAAAAAAAAABENAAAAAvEOndK" } ] }, "diskSizeGb": "10", "deviceName": "example-device-name", "type": "PERSISTENT", "source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/example-instance", "boot": true, "licenses": [ "https://www.googleapis.com/compute/v1/projects/example-project/global/licenses" ], "index": 0, "autoDelete": true, "mode": "READ_WRITE" } ], "tags": { "items": [ "http-server" ], "fingerprint": "example-fingerprint" }, "displayDevice": { "enableDisplay": false }, "reservationAffinity": { "consumeReservationType": "ANY_ALLOCATION" } }, "location": "us-central1-a" }, "ancestors": [ "projects/example-project-id", "organizations/example-org-id" ], "updateTime": "2023-08-14T19:43:41.805828Z" } } }, { "Entity": "//iam.googleapis.com/projects/example-project/serviceAccounts/example-account-id", "EntityResult": { "window": { "startTime": "2023-12-22T13:37:50Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//iam.googleapis.com/projects/example-project/serviceAccounts/example-account-id", "assetType": "iam.googleapis.com/ServiceAccount", "resource": { "version": "v1", "discoveryDocumentUri": "https://iam.googleapis.com/$discovery/rest", "discoveryName": "ServiceAccount", "parent": "//cloudresourcemanager.googleapis.com/projects/example-project-id", "data": { "name": "projects/example-project/serviceAccounts/cloud-asset-inventory-auto@example-project.iam.gserviceaccount.com", "projectId": "example-project", "email": "cloud-asset-inventory-auto@example-project.iam.gserviceaccount.com", "uniqueId": "example-account-id", "displayName": "Cloud Asset Inventory Automation", "oauth2ClientId": "example-account-id" } }, "ancestors": [ "projects/example-project-id", "organizations/example-org-id" ], "updateTime": "2023-12-22T13:37:50Z" } } } ]
Risultato JSON per AWS
[ { "Entity": "//cloudasset.googleapis.com/organizations/example-org-id/otherCloudConnections/aws/arn:aws:s3:::aps-max-test-bucket", "EntityResult": { "assets": [ { "window": { "startTime": "2024-01-24T17:51:03.412233028Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//cloudasset.googleapis.com/organizations/example-org-id/otherCloudConnections/aws/arn:aws:s3:::aps-max-test-bucket", "assetType": "cloudasset.googleapis.com/AWS::S3::Bucket", "resource": { "version": "v1", "discoveryDocumentUri": "n/a", "discoveryName": "n/a", "data": { "dataSourceProvider": "AMAZON_WEB_SERVICES", "supplementaryConfigurations": { "PublicAccessBlockConfiguration": { "BlockPublicPolicy": true, "RestrictPublicBuckets": true, "BlockPublicAcls": true, "IgnorePublicAcls": true }, "TagSet": [ { "Key": "my-key2", "Value": "my-value2" }, { "Key": "my-key1", "Value": "my-value1" } ], "ServerSideEncryptionConfiguration": { "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" }, "BucketKeyEnabled": true } ] }, "AccessControlPolicy": { "Grants": [ { "Grantee": { "DisplayName": "example", "ID": "example-id", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" } ], "Owner": { "DisplayName": "example", "ID": "example-id" } } }, "configuration": { "Name": "aps-max-test-bucket", "CreationDate": "2023-12-04T15:29:50+00:00" }, "tags": { "my-key2": "my-value2", "my-key1": "my-value1" }, "originalResourceName": "arn:aws:s3:::aps-max-test-bucket", "awsAccount": "arn:aws:organizations::example-id:account/example-account/example-account-id" }, "location": "global" }, "ancestors": [ "organizations/example-org-id" ], "updateTime": "2024-01-24T17:51:03.412233028Z" } } ] } } ]
Messaggi di output
L'azione Ottieni snapshot risorsa può restituire i seguenti messaggi di output:
Messaggio di output | Descrizione del messaggio |
---|---|
Successfully returned information about the following resources
using Google Cloud Asset Inventory:
ASSET_IDENTIFIER
|
L'azione è riuscita. |
Error executing action "Get Resource Snapshot". Reason:
ERROR_REASON |
L'azione non è riuscita. Controlla la connessione al server, i parametri di input o le credenziali. |
Risultato dello script
La tabella seguente elenca il valore dell'output del risultato dello script quando utilizzi l'azione Ottieni snapshot risorsa:
Nome del risultato dello script | Valore |
---|---|
is_success |
True o False |
Elenco dei ruoli del service account
Utilizza l'azione Elenca ruoli service account per elencare i ruoli correlati al service account Google Cloud utilizzando Cloud Asset Inventory.
Questa azione non viene eseguita sulle entità Google SecOps.
Input azione
Per configurare l'azione Elenca ruoli service account, utilizza i seguenti parametri:
Parametro | Descrizione |
---|---|
Service Accounts |
Obbligatorio Un elenco separato da virgole di service account per cui recuperare i dettagli. |
Check Roles |
Optional Un elenco separato da virgole di ruoli da controllare in relazione
alaccount di serviziot, ad esempio |
Check Permissions |
Optional Un elenco separato da virgole di autorizzazioni da controllare in
relazione alaccount di serviziot, ad esempio |
Expand Permissions |
Optional Se selezionata, l'azione restituisce informazioni su tutte le autorizzazioni uniche relative alla risorsa. Non selezionato per impostazione predefinita. |
Max Roles To Return |
Obbligatorio Il numero di ruoli correlati all'account di servizio da restituire. Il valore predefinito è 100. |
Max Permissions To Return |
Obbligatorio Il numero di autorizzazioni relative al service account da restituire. |
Output dell'azione
L'azione Elenca ruoli service account fornisce i seguenti output:
Tipo di output dell'azione | Disponibilità |
---|---|
Allegato della bacheca casi | Non disponibile |
Link alla bacheca richieste | 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 mostra l'output del risultato JSON ricevuto quando si utilizza l'azione Elenca ruoli service account:
{
"roles": ["role1", "role2"],
"unique_permissions": ["permission1", "permission2"]
}
Messaggi di output
L'azione Elenca ruoli service account può restituire i seguenti messaggi di output:
Messaggio di output | Descrizione del messaggio |
---|---|
|
L'azione è riuscita. |
Error executing action "List Service Account Roles". Reason:
ERROR_REASON |
L'azione non è riuscita. Controlla la connessione al server, i parametri di input o le credenziali. |
Dindin
Utilizza l'azione Ping per testare la connettività a Cloud Asset Inventory.
L'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 richieste | Non disponibile |
Tabella della bacheca casi | Non disponibile |
Tabella di arricchimento | Non disponibile |
Risultato JSON | Non disponibile |
Messaggi di output | Disponibile |
Risultato dello script | Disponibile |
Messaggi di output
L'azione Ping può restituire i seguenti messaggi di output:
Messaggio di output | Descrizione del messaggio |
---|---|
Successfully connected to the Google Cloud Asset Inventory
server with the provided connection parameters! |
L'azione è riuscita. |
Failed to connect to the Google Cloud Asset Inventory server!
|
L'azione non è riuscita. |
Risultato dello script
La seguente tabella elenca il valore dell'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.