Présentation des modules personnalisés pour Security Health Analytics

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 Google Cloud 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 violations de conformité.

La configuration ou la définition d'un module personnalisé, que vous le créiez dans la Google Cloud console 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 élément compatible avec Security Command Center.

Si vous codez vous-même les définitions de modules personnalisés, vous utilisez des expressions YAML et CEL (Common Expression Language). Si vous utilisez la Google Cloud console pour créer vos modules personnalisés, la majeure partie du codage est effectué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 dans les analyses en temps réel et par lots. 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 de traitement par lots 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 lequel 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 :

Comparaison des détecteurs intégrés et des modules personnalisés

Les modules personnalisés offrent des capacités de détection plus larges que les détecteurs intégrés de Security Health Analytics. Toutefois, les modules personnalisés ne sont pas compatibles avec certaines fonctionnalités de Security Command Center fournies par les détecteurs intégrés.

Compatibilité avec les fonctionnalités

Les modules personnalisés de Security Health Analytics ne sont pas compatibles avec les simulations de vecteurs d'attaque. Les résultats générés par les modules personnalisés n'incluent pas les scores d'exposition aux vecteurs d'attaque ni les vecteurs d'attaque.

Comparaison de 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 :

  • Les adresses IP avec des préfixes spécifiques, à l'aide de caractères génériques.
  • La valeur de la propriété state, que vous pouvez utiliser pour ignorer les instances si la valeur est définie sur MAINTENANCE ou pour déclencher des résultats si la valeur est différente.
  • La 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 de Security Health Analytics.

Le tableau suivant contient la liste des autorisations requises pour les modules personnalisés de Security Health Analytics, ainsi que les rôles IAM prédéfinis qui les incluent.

Vous pouvez utiliser la Google Cloud console ou l'API Security Command Center pour appliquer ces rôles au niveau de l'organisation, du dossier ou du projet.

Autorisations requises Rôles
securitycentermanagement.securityHealthAnalyticsCustomModules.create
securitycentermanagement.securityHealthAnalyticsCustomModules.update
securitycentermanagement.securityHealthAnalyticsCustomModules.delete
securitycentermanagement.securityHealthAnalyticsCustomModules.list
securitycentermanagement.securityHealthAnalyticsCustomModules.get
securitycentermanagement.effectiveSecurityHealthAnalyticsCustomModules.list
securitycentermanagement.effectiveSecurityHealthAnalyticsCustomModules.get
securitycentermanagement.securityHealthAnalyticsCustomModules.simulate
securitycentermanagement.securityHealthAnalyticsCustomModules.test
roles/securitycentermanagement.shaCustomModulesEditor
roles/securitycenter.settingsEditor
roles/securitycenter.admin
securitycentermanagement.securityHealthAnalyticsCustomModules.list
securitycentermanagement.securityHealthAnalyticsCustomModules.get
securitycentermanagement.effectiveSecurityHealthAnalyticsCustomModules.list
securitycentermanagement.effectiveSecurityHealthAnalyticsCustomModules.get
securitycentermanagement.securityHealthAnalyticsCustomModules.simulate
securitycentermanagement.securityHealthAnalyticsCustomModules.test
roles/securitycentermanagement.shaCustomModulesViewer
roles/securitycenter.settingsViewer
roles/securitycenter.adminViewer
roles/securitycenter.admin

Pour en savoir plus sur les autorisations et les rôles IAM, et sur la manière de les accorder, consultez Attribuer un rôle IAM à l'aide de la Google Cloud console.

Quotas de modules personnalisés

Les modules personnalisés de 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 présente 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 (Create, Update, Delete) 60 appels d'API par minute et par organisation
Requêtes de test CustomModules 12 appels d'API par minute et par organisation

Pour augmenter les quotas, envoyez une demande dans la Google Cloud console sur la page **Quotas**.

Pour en savoir plus sur les quotas de Security Command Center, consultez Quotas et limites.

Types de ressources acceptés

Cette section récapitule les Google Cloud types de ressources compatibles avec les modules personnalisés.

Nom du service Nom de la ressource
Access Context Manager accesscontextmanager.googleapis.com/AccessLevel
accesscontextmanager.googleapis.com/AccessPolicy
accesscontextmanager.googleapis.com/ServicePerimeter
Gemini Enterprise Agent Platform 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/NotebookRuntimeTemplate
aiplatform.googleapis.com/SpecialistPool
aiplatform.googleapis.com/Tensorboard
aiplatform.googleapis.com/TrainingPipeline
AlloyDB alloydb.googleapis.com/Backup
alloydb.googleapis.com/Cluster
alloydb.googleapis.com/Instance
Clés API apikeys.googleapis.com/Key
Dépôt Artifact Registry artifactregistry.googleapis.com/Repository
BigQuery bigquery.googleapis.com/Dataset
bigquery.googleapis.com/Model
bigquery.googleapis.com/Table
bigquerydatatransfer.googleapis.com/TransferConfig
Informations de facturation du projet Cloud Billing cloudbilling.googleapis.com/ProjectBillingInfo
Cloud Run Functions cloudfunctions.googleapis.com/CloudFunction
Cloud KMS cloudkms.googleapis.com/CryptoKey
cloudkms.googleapis.com/CryptoKeyVersion
cloudkms.googleapis.com/ImportJob
cloudkms.googleapis.com/KeyRing
Resource Manager cloudresourcemanager.googleapis.com/Folder
cloudresourcemanager.googleapis.com/Organization
cloudresourcemanager.googleapis.com/Project
cloudresourcemanager.googleapis.com/TagBinding
Environnement Managed Service pour Apache Airflow composer.googleapis.com/Environment
Compute Engine compute.googleapis.com/Address
compute.googleapis.com/Autoscaler
compute.googleapis.com/BackendBucket
compute.googleapis.com/BackendService
compute.googleapis.com/Commitment
compute.googleapis.com/Disk
compute.googleapis.com/Firewall
compute.googleapis.com/FirewallPolicy
compute.googleapis.com/ForwardingRule
compute.googleapis.com/GlobalForwardingRule
compute.googleapis.com/HealthCheck
compute.googleapis.com/Image
compute.googleapis.com/Instance
compute.googleapis.com/InstanceGroup
compute.googleapis.com/InstanceGroupManagers
compute.googleapis.com/InstanceTemplate
compute.googleapis.com/InterconnectAttachment
compute.googleapis.com/MachineImage
compute.googleapis.com/Network
compute.googleapis.com/NetworkEndpointGroup
compute.googleapis.com/NodeGroup
compute.googleapis.com/NodeTemplate
compute.googleapis.com/PacketMirroring
compute.googleapis.com/Project
compute.googleapis.com/RegionBackendService
compute.googleapis.com/RegionDisk
compute.googleapis.com/Reservation
compute.googleapis.com/ResourcePolicy
compute.googleapis.com/Route
compute.googleapis.com/Router
compute.googleapis.com/SecurityPolicy
compute.googleapis.com/Snapshot
compute.googleapis.com/SslCertificate
compute.googleapis.com/SslPolicy
compute.googleapis.com/Subnetwork
compute.googleapis.com/TargetHttpProxy
compute.googleapis.com/TargetHttpsProxy
compute.googleapis.com/TargetInstance
compute.googleapis.com/TargetPool
compute.googleapis.com/TargetSslProxy
compute.googleapis.com/TargetVpnGateway
compute.googleapis.com/UrlMap
compute.googleapis.com/VpnGateway
compute.googleapis.com/VpnTunnel
Google Kubernetes Engine container.googleapis.com/Cluster
container.googleapis.com/NodePool
Dataflow dataflow.googleapis.com/Job
Cloud Data Fusion datafusion.googleapis.com/Instance
Managed Service pour Apache Spark dataproc.googleapis.com/AutoscalingPolicy
dataproc.googleapis.com/Batch
dataproc.googleapis.com/Cluster
dataproc.googleapis.com/Job
Datastream datastream.googleapis.com/ConnectionProfile
datastream.googleapis.com/PrivateConnection
datastream.googleapis.com/Stream
Dialogflow CX dialogflow.googleapis.com/Agent
Protection des données sensibles dlp.googleapis.com/DeidentifyTemplate
dlp.googleapis.com/DlpJob
dlp.googleapis.com/InspectTemplate
dlp.googleapis.com/JobTrigger
dlp.googleapis.com/StoredInfoType
Cloud DNS dns.googleapis.com/ManagedZone
dns.googleapis.com/Policy
Filestore file.googleapis.com/Instance
Hub (également appelé parcs) gkehub.googleapis.com/Feature
gkehub.googleapis.com/Membership
IAM iam.googleapis.com/Role
iam.googleapis.com/ServiceAccountKey
Kubernetes k8s.io/Namespace
k8s.io/Node
k8s.io/Pod
k8s.io/Service
apps.k8s.io/DaemonSet
apps.k8s.io/Deployment
apps.k8s.io/ReplicaSet
apps.k8s.io/StatefulSet
batch.k8s.io/CronJob
networking.k8s.io/Ingress
networking.k8s.io/NetworkPolicy
rbac.authorization.k8s.io/ClusterRole
rbac.authorization.k8s.io/ClusterRoleBinding
rbac.authorization.k8s.io/Role
rbac.authorization.k8s.io/RoleBinding
Cloud Logging logging.googleapis.com/LogBucket
logging.googleapis.com/LogMetric
logging.googleapis.com/LogSink
Cloud Monitoring monitoring.googleapis.com/AlertPolicy
monitoring.googleapis.com/NotificationChannel
NetApp Volumes
netapp.googleapis.com/Snapshot
netapp.googleapis.com/Volume
Gemini Enterprise Agent Platform Workbench notebooks.googleapis.com/Instance
Service de règles d'administration v2 orgpolicy.googleapis.com/CustomConstraint
orgpolicy.googleapis.com/Policy
Certificate Authority Service privateca.googleapis.com/Certificate
privateca.googleapis.com/CertificateRevocationList
Pub/Sub pubsub.googleapis.com/Snapshot
pubsub.googleapis.com/Subscription
pubsub.googleapis.com/Topic
Memorystore pour Redis redis.googleapis.com/Cluster
redis.googleapis.com/Instance
Cloud Run run.googleapis.com/DomainMapping
run.googleapis.com/Execution
run.googleapis.com/Job
run.googleapis.com/Revision
run.googleapis.com/Service
Secret Manager secretmanager.googleapis.com/Secret
secretmanager.googleapis.com/SecretVersion
Service Usage serviceusage.googleapis.com/Service
Spanner spanner.googleapis.com/Backup
spanner.googleapis.com/Database
spanner.googleapis.com/Instance
Cloud SQL pour MySQL sqladmin.googleapis.com/BackupRun
sqladmin.googleapis.com/Instance
Cloud Storage storage.googleapis.com/Bucket
Google Cloud VMware Engine vmwareengine.googleapis.com/Cluster
vmwareengine.googleapis.com/ExternalAccessRule
vmwareengine.googleapis.com/ExternalAddress
vmwareengine.googleapis.com/NetworkPeering
vmwareengine.googleapis.com/NetworkPolicy
vmwareengine.googleapis.com/PrivateCloud
vmwareengine.googleapis.com/PrivateConnection
vmwareengine.googleapis.com/VmwareEngineNetwork
Connecteur VPC vpcaccess.googleapis.com/Connector
Cloud Workstations workstations.googleapis.com/Workstation
workstations.googleapis.com/WorkstationConfig

Étape suivante