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 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
É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.