Cette page présente les modules personnalisés de Security Health Analytics. Pour en savoir plus sur les modules intégrés, consultez la section Détecteurs intégrés de Security Health Analytics.
Avec les modules personnalisés, vous pouvez étendre les fonctionnalités de détection de Security Health Analytics en créant des détecteurs personnalisés qui analysent les ressources et les règles Google Cloud que vous spécifiez à l'aide de règles que vous définissez pour rechercher des failles, des erreurs de configuration ou des cas de non-conformité.
La configuration ou la définition d'un module personnalisé, que vous le créiez dans la console Google 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 mauvaise configuration est détectée.
Vous pouvez créer des modules personnalisés pour toute ressource ou composant pris en charge par Security Command Center.
Si vous codez vous-même des définitions de modules personnalisées, vous utilisez des expressions YAML et CEL (Common Expression Language). Si vous utilisez la console Google Cloud 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 la section 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 en temps réel et dans les analyses 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 par lots s'exécutent avec tous les détecteurs pour les organisations ou 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
Comparer 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 intégrés de Security Health Analytics ne peuvent pas détecter. Toutefois, les détecteurs intégrés sont compatibles avec certaines fonctionnalités de Security Command Center que les modules personnalisés ne le sont pas.
Compatibilité des caractéristiques
Les simulations de chemin d'attaque ne sont pas compatibles avec les modules personnalisés de Security Health Analytics. Par conséquent, les résultats générés par les modules personnalisés ne reçoivent pas de scores d'exposition aux attaques ni de chemins d'attaque.
Comparer les logiques de détection
Pour illustrer ce que vous pouvez faire 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 émet 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 surMAINTENANCE
ou 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 disposant d'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 des modules personnalisés Security Health Analytics et les rôles IAM prédéfinis qui les incluent. Ces autorisations sont valables jusqu'au 22 janvier 2024 au moins. Passée cette date, les autorisations listées dans le deuxième tableau suivant seront requises.
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.
Autorisations requises avant le 22 janvier 2024 | Rôles |
---|---|
securitycenter.securityhealthanalyticscustommodules.create |
roles/securitycenter.settingsEditor |
securitycenter.securityhealthanalyticscustommodules.get |
roles/securitycenter.settingsViewer |
securitycenter.securityhealthanalyticscustommodules.test |
roles/securitycenter.securityHealthAnalyticsCustomModulesTester |
Le tableau suivant contient la liste des autorisations de module personnalisé Security Health Analytics qui seront requises à partir du 22 janvier 2024, 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.
Autorisations requises à compter du 22 janvier 2024 | 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 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 indique les limites de quota par défaut pour les appels d'API de module personnalisé.
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 console Google Cloud sur la page Quotas.
Pour en savoir plus sur les quotas de Security Command Center, consultez la section Quotas et limites.
Types de ressources acceptés
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
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 Table
bigquery.googleapis.com/Table
Bucket
-
storage.googleapis.com/Bucket
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 Cluster
-
dataproc.googleapis.com/Cluster
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
Disk
-
compute.googleapis.com/Disk
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
Namespace
-
k8s.io/Namespace
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
Project
-
cloudresourcemanager.googleapis.com/Project
Pubsub Snapshot
-
pubsub.googleapis.com/Snapshot
Pubsub Subscription
-
pubsub.googleapis.com/Subscription
Pubsub Topic
-
pubsub.googleapis.com/Topic
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 Database
-
spanner.googleapis.com/Database
Spanner Instance
-
spanner.googleapis.com/Instance
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/HyperparameterTuningJob
-
aiplatform.googleapis.com/Model
-
aiplatform.googleapis.com/SpecialistPool
-
aiplatform.googleapis.com/TrainingPipeline
VPC Connector
-
vpcaccess.googleapis.com/Connector
VPN Gateway
-
compute.googleapis.com/VpnGateway
VPN Tunnel
-
compute.googleapis.com/VpnTunnel
Étape suivante
- Pour utiliser des modules personnalisés, consultez la section Utiliser des modules personnalisés pour Security Health Analytics.
- Pour coder vous-même des définitions de modules personnalisés, consultez la section Coder des modules personnalisés pour Security Health Analytics.
- Pour tester vos modules personnalisés, consultez la section Tester les modules personnalisés pour Security Health Analytics.