Cette page présente les modules personnalisés de Security Health Analytics. Pour en savoir plus sur les modules intégrés, consultez Détecteurs intégrés de Security Health Analytics.
Les modules personnalisés vous permettent d'étendre les capacités de détection de Security Health Analytics en créant des détecteurs personnalisés qui analysent les ressources et les règles que vous spécifiez à l'aide de règles que vous définissez pour rechercher les failles, les erreurs de configuration ou les cas de non-conformité. Google Cloud
La configuration ou la définition d'un module personnalisé, que vous le créiez dans la consoleGoogle Cloud ou que vous le codiez vous-même, détermine les ressources que le détecteur vérifie, les propriétés qu'il évalue et les informations qu'il renvoie lorsqu'une faille ou une erreur de configuration est détectée.
Vous pouvez créer des modules personnalisés pour n'importe quelle ressource ou n'importe quel asset compatible avec Security Command Center.
Si vous codez vous-même des définitions de modules personnalisés, vous utilisez des expressions YAML et CEL (Common Expression Language). Si vous utilisez la consoleGoogle Cloud pour créer vos modules personnalisés, la majeure partie du code est générée pour vous, mais vous devez coder les expressions CEL.
Pour obtenir un exemple de définition de module personnalisé dans un fichier YAML, consultez Exemple de définition de module personnalisé.
Les modules personnalisés s'exécutent parallèlement aux détecteurs intégrés de Security Health Analytics, à la fois dans les analyses en temps réel et par lot. En mode en temps réel, les analyses sont déclenchées chaque fois que la configuration d'un élément change. Les analyses en mode batch s'exécutent avec tous les détecteurs pour les organisations ou les projets enregistrés, une fois par jour.
Lors d'une analyse, chaque détecteur personnalisé est appliqué à tous les éléments correspondants de chaque organisation, dossier ou projet pour lesquels il est activé.
Les résultats des détecteurs personnalisés sont écrits dans Security Command Center.
Pour en savoir plus, consultez les ressources suivantes :
- Créer des modules personnalisés
- Types d'analyses Security Health Analytics
- Types de ressources acceptés
- YAML
- Présentation de CEL
Comparaison entre les détecteurs intégrés et les modules personnalisés
Les modules personnalisés vous permettent de détecter des éléments que les détecteurs Security Health Analytics intégrés ne peuvent pas détecter. Toutefois, les détecteurs intégrés sont compatibles avec certaines fonctionnalités de Security Command Center, contrairement aux modules personnalisés.
Compatibilité avec les fonctionnalités
Les modules personnalisés Security Health Analytics ne sont pas compatibles avec les simulations de chemin d'attaque. Par conséquent, les résultats générés par les modules personnalisés ne sont pas associés à des scores d'exposition aux attaques ni à des chemins d'attaque.
Comparer la logique de détection
Pour illustrer certaines des actions que vous pouvez effectuer avec un module personnalisé, comparez ce que le détecteur intégré PUBLIC_SQL_INSTANCE vérifie avec ce que vous pouvez faire avec un module personnalisé.
Le détecteur intégré PUBLIC_SQL_INSTANCE vérifie si la propriété authorizedNetworks des instances Cloud SQL est définie sur 0.0.0.0/0.
Si c'est le cas, le détecteur génère un résultat indiquant que l'instance Cloud SQL est ouverte au public, car elle accepte les connexions de toutes les adresses IP.
Avec un module personnalisé, vous pouvez implémenter une logique de détection plus complexe pour vérifier les instances Cloud SQL, par exemple :
- Adresses IP avec des préfixes spécifiques, à l'aide de caractères génériques.
- Valeur de la propriété state, que vous pouvez utiliser pour ignorer les instances si la valeur est définie surMAINTENANCEou pour déclencher des résultats si la valeur est différente.
- Valeur de la propriété region, que vous pouvez utiliser pour déclencher des résultats uniquement pour les instances avec des adresses IP publiques dans des régions spécifiques.
Rôles et autorisations IAM requis
Les rôles IAM déterminent les actions que vous pouvez effectuer avec les modules personnalisés Security Health Analytics.
Le tableau suivant contient la liste des autorisations de module personnalisé Security Health Analytics requises, ainsi que les rôles IAM prédéfinis qui les incluent.
Vous pouvez utiliser la console Google Cloud ou l'API Security Command Center pour appliquer ces rôles au niveau de l'organisation, du dossier ou du projet.
| les autorisations requises pour l'extension ; | Rôles | 
|---|---|
| securitycentermanagement.securityHealthAnalyticsCustomModules.create | roles/securitycentermanagement.shaCustomModulesEditor | 
| securitycentermanagement.securityHealthAnalyticsCustomModules.list | roles/securitycentermanagement.shaCustomModulesViewer
       | 
Pour en savoir plus sur les autorisations et les rôles IAM, et sur la façon de les attribuer, consultez Attribuer un rôle IAM à l'aide de la console Google Cloud .
Quotas de modules personnalisés
Les modules personnalisés Security Health Analytics sont soumis à des limites de quota.
La limite de quota par défaut pour la création de modules personnalisés est de 100, mais vous pouvez demander une augmentation de quota si nécessaire.
Les appels d'API aux méthodes de modules personnalisés sont également soumis à des limites de quota. Le tableau suivant indique les limites de quota par défaut pour les appels d'API de modules personnalisés.
| Type d'appel d'API | Limite | 
|---|---|
| Requêtes de lecture CustomModules (Get, List) | 1 000 appels d'API par minute et par organisation | 
| Requêtes d'écriture CustomModules (créer, mettre à jour, supprimer) | 60 appels d'API par minute et par organisation | 
| Demandes de test CustomModules | 12 appels d'API par minute et par organisation | 
Pour augmenter les quotas, envoyez une demande dans la console Google Cloud sur la page Quotas.
Pour en savoir plus sur les quotas de Security Command Center, consultez Quotas et limites.
Types de ressources acceptés
- Access Context Manager
- 
  accesscontextmanager.googleapis.com/AccessLevel
- 
  accesscontextmanager.googleapis.com/AccessPolicy
- 
  accesscontextmanager.googleapis.com/ServicePerimeter
- Address
- 
  compute.googleapis.com/Address
- Alert Policy
- monitoring.googleapis.com/AlertPolicy
- AlloyDB 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 Model
- bigquery.googleapis.com/Model
- BigQuery Table
- bigquery.googleapis.com/Table
- Bucket
- 
  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 Profile
- datastream.googleapis.com/ConnectionProfile
- Datastream Private Connection
- datastream.googleapis.com/PrivateConnection
- Datastream Stream
- datastream.googleapis.com/Stream
- Dialogflow 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
- Nodepool
- container.googleapis.com/NodePool
- Organization
- 
  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
Étapes suivantes
- Pour en savoir plus sur l'utilisation des modules personnalisés, consultez Utiliser des modules personnalisés pour Security Health Analytics.
- Pour coder vous-même des définitions de modules personnalisés, consultez Coder des modules personnalisés pour Security Health Analytics.
- Pour tester vos modules personnalisés, consultez Tester les modules personnalisés pour Security Health Analytics.