Questa pagina fornisce una panoramica dei moduli personalizzati di Security Health Analytics. Per informazioni sui moduli integrati, consulta Rilevatori integrati di Security Health Analytics.
Con i moduli personalizzati, puoi estendere le funzionalità di rilevamento di Security Health Analytics creando rilevatori personalizzati che eseguono la scansione delle risorse e delle policy che specifichi utilizzando regole che definisci per verificare la presenza di vulnerabilità, configurazioni errate o violazioni della conformità. Google Cloud
La configurazione o la definizione di un modulo personalizzato, che tu lo crei nella consoleGoogle Cloud o lo codifichi autonomamente, determina le risorse che il rilevatore controlla, le proprietà che valuta e le informazioni che restituisce quando viene rilevata una vulnerabilità o una configurazione errata.
Puoi creare moduli personalizzati per qualsiasi risorsa o asset supportato da Security Command Center.
Se codifichi personalmente le definizioni dei moduli personalizzati, utilizzi YAML e le espressioni Common Expression Language (CEL). Se utilizzi la console Google Cloud per creare i tuoi moduli personalizzati, la maggior parte della codifica viene eseguita automaticamente, anche se devi codificare le espressioni CEL.
Per un esempio di definizione di modulo personalizzato in un file YAML, vedi Esempio di definizione di modulo personalizzato.
I moduli personalizzati vengono eseguiti insieme ai rilevatori integrati di Security Health Analytics nelle scansioni in tempo reale e batch. In modalità in tempo reale, le scansioni vengono attivate ogni volta che la configurazione di un asset cambia. Le scansioni in modalità batch vengono eseguite una volta al giorno con tutti i rilevatori per le organizzazioni o i progetti registrati.
Durante una scansione, ogni rilevatore personalizzato viene applicato a tutte le risorse corrispondenti in ogni organizzazione, cartella o progetto per cui è abilitato.
I risultati dei rilevatori personalizzati vengono scritti in Security Command Center.
Per ulteriori informazioni, consulta le seguenti risorse:
- Creare moduli personalizzati
- Tipi di scansione di Security Health Analytics
- Tipi di risorse supportati
- YAML
- Introduzione a CEL
Confronto tra rilevatori integrati e moduli personalizzati
Con i moduli personalizzati puoi rilevare elementi che non puoi rilevare con i rilevatori di Security Health Analytics integrati. Tuttavia, i rilevatori integrati supportano determinate funzionalità di Security Command Center che i moduli personalizzati non supportano.
Funzionalità supportate
I moduli personalizzati di Security Health Analytics non sono supportati dalle simulazioni del percorso di attacco, pertanto i risultati prodotti dai moduli personalizzati non ottengono punteggi di esposizione agli attacchi o percorsi di attacco.
Confronto della logica di rilevamento
Per farti un'idea di cosa puoi fare con un modulo personalizzato, confronta i controlli eseguiti dal rilevatore integrato PUBLIC_SQL_INSTANCE con quelli che puoi eseguire con un modulo personalizzato.
Il rilevatore integrato PUBLIC_SQL_INSTANCE verifica se la proprietà
authorizedNetworks delle istanze Cloud SQL è impostata su 0.0.0.0/0.
In questo caso, il rilevatore genera un risultato che indica che l'istanza Cloud SQL è aperta al pubblico, perché accetta connessioni da tutti gli indirizzi IP.
Con un modulo personalizzato, puoi implementare una logica di rilevamento più complessa per controllare le istanze Cloud SQL per elementi quali:
- Indirizzi IP con prefissi specifici, utilizzando caratteri jolly.
- Il valore della proprietà
state, che puoi utilizzare per ignorare le istanze se il valore è impostato suMAINTENANCEo per attivare i risultati se il valore è diverso. - Il valore della proprietà
region, che puoi utilizzare per attivare risultati solo per le istanze con indirizzi IP pubblici in regioni specifiche.
Ruoli e autorizzazioni IAM richiesti
I ruoli IAM determinano le azioni che puoi eseguire con i moduli personalizzati di Security Health Analytics.
La tabella seguente contiene un elenco delle autorizzazioni dei moduli personalizzati di Security Health Analytics richieste, nonché i ruoli IAM predefiniti che le includono.
Puoi utilizzare la console Google Cloud o l'API Security Command Center per applicare questi ruoli a livello di organizzazione, cartella o progetto.
| Autorizzazioni obbligatorie | Ruoli |
|---|---|
securitycentermanagement.securityHealthAnalyticsCustomModules.create
|
roles/securitycentermanagement.shaCustomModulesEditor |
securitycentermanagement.securityHealthAnalyticsCustomModules.list
|
roles/securitycentermanagement.shaCustomModulesViewer
|
Per saperne di più su ruoli e autorizzazioni IAM e su come concederli, consulta Concedi un ruolo IAM utilizzando la console Google Cloud .
Quote dei moduli personalizzati
I moduli personalizzati di Security Health Analytics sono soggetti a limiti di quota.
Il limite di quota predefinito per la creazione di moduli personalizzati è 100, ma puoi richiedere un aumento della quota, se necessario.
Anche le chiamate API ai metodi dei moduli personalizzati sono soggette a limiti di quota. La tabella seguente mostra i limiti di quota predefiniti per le chiamate API dei moduli personalizzati.
| Tipo di chiamata API | Limite |
|---|---|
| CustomModules Read Requests (Get, List) | 1000 chiamate API al minuto per organizzazione |
| CustomModules Write Requests (Create, Update, Delete) | 60 chiamate API al minuto per organizzazione |
| CustomModules Test Requests | 12 chiamate API al minuto per organizzazione |
Per gli aumenti di quota, invia una richiesta nella console Google Cloud nella pagina Quote.
Per ulteriori informazioni sulle quote di Security Command Center, consulta Quote e limiti.
Tipi di risorse supportati
Access Context Manager-
accesscontextmanager.googleapis.com/AccessLevel -
accesscontextmanager.googleapis.com/AccessPolicy -
accesscontextmanager.googleapis.com/ServicePerimeter Address-
compute.googleapis.com/Address Alert Policymonitoring.googleapis.com/AlertPolicyAlloyDB for PostgreSQL-
alloydb.googleapis.com/Backup -
alloydb.googleapis.com/Cluster -
alloydb.googleapis.com/Instance Api Keys-
apikeys.googleapis.com/Key Artifact Registry Repository-
artifactregistry.googleapis.com/Repository Autoscaler-
compute.googleapis.com/Autoscaler Backend Bucket-
compute.googleapis.com/BackendBucket Backend Service-
compute.googleapis.com/BackendService BigQuery Data Transfer Service-
bigquerydatatransfer.googleapis.com/TransferConfig BigQuery Modelbigquery.googleapis.com/ModelBigQuery Tablebigquery.googleapis.com/TableBucket-
storage.googleapis.com/Bucket Cloud Billing Project Billing Info-
cloudbilling.googleapis.com/ProjectBillingInfo Cloud Data Fusion-
datafusion.googleapis.com/Instance Cloud Function-
cloudfunctions.googleapis.com/CloudFunction Cloud Run-
run.googleapis.com/DomainMapping -
run.googleapis.com/Execution -
run.googleapis.com/Job -
run.googleapis.com/Revision -
run.googleapis.com/Service Cluster-
container.googleapis.com/Cluster Cluster Role-
rbac.authorization.k8s.io/ClusterRole Cluster Role Binding-
rbac.authorization.k8s.io/ClusterRoleBinding Commitment-
compute.googleapis.com/Commitment Composer Environment-
composer.googleapis.com/Environment Compute Project-
compute.googleapis.com/Project -
compute.googleapis.com/SecurityPolicy CryptoKey-
cloudkms.googleapis.com/CryptoKey CryptoKey Version-
cloudkms.googleapis.com/CryptoKeyVersion Dataflow Job-
dataflow.googleapis.com/Job Dataproc Autoscaling Policy-
dataproc.googleapis.com/AutoscalingPolicy Dataproc Batch-
dataproc.googleapis.com/Batch Dataproc Cluster-
dataproc.googleapis.com/Cluster Dataproc Job-
dataproc.googleapis.com/Job Dataset-
bigquery.googleapis.com/Dataset Datastream Connection Profiledatastream.googleapis.com/ConnectionProfileDatastream Private Connectiondatastream.googleapis.com/PrivateConnectionDatastream Streamdatastream.googleapis.com/StreamDialogflow CX-
dialogflow.googleapis.com/Agent Disk-
compute.googleapis.com/Disk DLP Deidentify Template-
dlp.googleapis.com/DeidentifyTemplate DLP Inspect Template-
dlp.googleapis.com/InspectTemplate DLP Job-
dlp.googleapis.com/DlpJob DLP Job Trigger-
dlp.googleapis.com/JobTrigger DLP Stored Info Type-
dlp.googleapis.com/StoredInfoType DNS Policy-
dns.googleapis.com/Policy File Instance-
file.googleapis.com/Instance Firewall-
compute.googleapis.com/Firewall Firewall Policy-
compute.googleapis.com/FirewallPolicy Folder-
cloudresourcemanager.googleapis.com/Folder Forwarding Rule-
compute.googleapis.com/ForwardingRule Global Forwarding Rule-
compute.googleapis.com/GlobalForwardingRule Health Check-
compute.googleapis.com/HealthCheck Hub-
gkehub.googleapis.com/Feature -
gkehub.googleapis.com/Membership IAM Role-
iam.googleapis.com/Role Image-
compute.googleapis.com/Image Instance-
compute.googleapis.com/Instance Instance Group-
compute.googleapis.com/InstanceGroup Instance Group Manager-
compute.googleapis.com/InstanceGroupManagers Instance Template-
compute.googleapis.com/InstanceTemplate Interconnect Attachment-
compute.googleapis.com/InterconnectAttachment Keyring-
cloudkms.googleapis.com/KeyRing KMS Import Job-
cloudkms.googleapis.com/ImportJob Kubernetes CronJob-
k8s.io/CronJob Kubernetes DaemonSet-
k8s.io/DaemonSet Kubernetes Deployment-
k8s.io/Deployment Kubernetes Ingress-
k8s.io/Ingress Kubernetes NetworkPolicy-
k8s.io/NetworkPolicy Kubernetes ReplicaSet-
k8s.io/ReplicaSet Kubernetes Service-
k8s.io/Service Kubernetes StatefulSet-
k8s.io/StatefulSet Log Bucket-
logging.googleapis.com/LogBucket Log Metric-
logging.googleapis.com/LogMetric Log Sink-
logging.googleapis.com/LogSink Managed Zone-
dns.googleapis.com/ManagedZone Machine Image-
compute.googleapis.com/MachineImage Monitoring Notification Channel-
monitoring.googleapis.com/NotificationChannel Namespace-
k8s.io/Namespace NetApp Snapshot-
netapp.googleapis.com/Snapshot NetApp Volume-
netapp.googleapis.com/Volume Network-
compute.googleapis.com/Network Network Endpoint Group-
compute.googleapis.com/NetworkEndpointGroup Node-
k8s.io/Node Node Group-
compute.googleapis.com/NodeGroup Node Template-
compute.googleapis.com/NodeTemplate Nodepoolcontainer.googleapis.com/NodePoolOrganization-
cloudresourcemanager.googleapis.com/Organization Organization Policy Service v2-
orgpolicy.googleapis.com/CustomConstraint -
orgpolicy.googleapis.com/Policy Packet Mirroring-
compute.googleapis.com/PacketMirroring Pod-
k8s.io/Pod Private CA Certificate-
privateca.googleapis.com/Certificate Private CA Certificate Revocation List-
privateca.googleapis.com/CertificateRevocationList Project-
cloudresourcemanager.googleapis.com/Project Pubsub Snapshot-
pubsub.googleapis.com/Snapshot Pubsub Subscription-
pubsub.googleapis.com/Subscription Pubsub Topic-
pubsub.googleapis.com/Topic Redis Cluster-
redis.googleapis.com/Cluster Redis Instance-
redis.googleapis.com/Instance Region Backend Service-
compute.googleapis.com/RegionBackendService Region Disk-
compute.googleapis.com/RegionDisk Reservation-
compute.googleapis.com/Reservation Resource Policy-
compute.googleapis.com/ResourcePolicy Route-
compute.googleapis.com/Route Router-
compute.googleapis.com/Router Role-
rbac.authorization.k8s.io/Role Role Binding-
rbac.authorization.k8s.io/RoleBinding Secret Manager-
secretmanager.googleapis.com/Secret Secret Version-
secretmanager.googleapis.com/SecretVersion Service Account Key-
iam.googleapis.com/ServiceAccountKey ServiceUsage Service-
serviceusage.googleapis.com/Service Snapshot-
compute.googleapis.com/Snapshot Spanner Backup-
spanner.googleapis.com/Backup Spanner Database-
spanner.googleapis.com/Database Spanner Instance-
spanner.googleapis.com/Instance SQL Backup Run-
sqladmin.googleapis.com/BackupRun SQL Instance-
sqladmin.googleapis.com/Instance SSL Certificate-
compute.googleapis.com/SslCertificate SSL Policy-
compute.googleapis.com/SslPolicy Subnetwork-
compute.googleapis.com/Subnetwork Tag Binding-
cloudresourcemanager.googleapis.com/TagBinding Target HTTP Proxy-
compute.googleapis.com/TargetHttpProxy Target HTTPS Proxy-
compute.googleapis.com/TargetHttpsProxy Target Instance-
compute.googleapis.com/TargetInstance Target Pool-
compute.googleapis.com/TargetPool Target SSL Proxy-
compute.googleapis.com/TargetSslProxy Target VPN Gateway-
compute.googleapis.com/TargetVpnGateway URL Map-
compute.googleapis.com/UrlMap Vertex AI-
aiplatform.googleapis.com/BatchPredictionJob -
aiplatform.googleapis.com/CustomJob -
aiplatform.googleapis.com/Dataset -
aiplatform.googleapis.com/Endpoint -
aiplatform.googleapis.com/Featurestore -
aiplatform.googleapis.com/HyperparameterTuningJob -
aiplatform.googleapis.com/Index -
aiplatform.googleapis.com/MetadataStore -
aiplatform.googleapis.com/Model -
aiplatform.googleapis.com/SpecialistPool -
aiplatform.googleapis.com/Tensorboard -
aiplatform.googleapis.com/TrainingPipeline -
aiplatform.googleapis.com/NotebookRuntimeTemplate Vertex AI Workbench-
notebooks.googleapis.com/Instance VMware Engine-
vmwareengine.googleapis.com/Cluster -
vmwareengine.googleapis.com/ExternalAccessRule -
vmwareengine.googleapis.com/ExternalAddress -
vmwareengine.googleapis.com/VmwareEngineNetwork -
vmwareengine.googleapis.com/NetworkPeering -
vmwareengine.googleapis.com/NetworkPolicy -
vmwareengine.googleapis.com/PrivateCloud -
vmwareengine.googleapis.com/PrivateConnection VPC Connector-
vpcaccess.googleapis.com/Connector VPN Gateway-
compute.googleapis.com/VpnGateway VPN Tunnel-
compute.googleapis.com/VpnTunnel Workstations-
workstations.googleapis.com/Workstation -
workstations.googleapis.com/WorkstationConfig
Passaggi successivi
- Per lavorare con i moduli personalizzati, consulta Utilizzo dei moduli personalizzati per Security Health Analytics.
- Per codificare autonomamente le definizioni dei moduli personalizzati, consulta Codificare moduli personalizzati per Security Health Analytics.
- Per testare i moduli personalizzati, consulta Testare i moduli personalizzati per Security Health Analytics.