Cette page présente les modules personnalisés de Security Health Analytics.
Les modules personnalisés vous permettent d'é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 stratégies 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 cochiez vous-même, détermine les ressources vérifiées par le détecteur, les propriétés évaluées par le détecteur et les informations renvoyées par le détecteur lorsqu'une faille ou une configuration est détectée.
Vous pouvez créer des modules personnalisés pour toute ressource ou tout élément 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 console Google Cloud pour créer vos modules personnalisés, la majeure partie du codage est effectuée pour vous, même si 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 avec les détecteurs intégrés de Security Health Analytics lors d'analyses en temps réel et par lot. En mode temps réel, les analyses sont déclenchées dès que la configuration d'un élément est modifiée. Les analyses en mode lot s'exécutent une fois par jour avec tous les détecteurs des organisations ou des projets enregistrés.
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 compatibles
- YAML
- Présentation du CEL
Comparer les détecteurs intégrés et les modules personnalisés
Vous pouvez détecter des éléments à l'aide de modules personnalisés que vous ne pouvez pas détecter avec les détecteurs Security Health Analytics intégrés. Toutefois, les détecteurs intégrés sont compatibles avec certaines fonctionnalités de Security Command Center que les modules personnalisés ne peuvent pas détecter.
Prise en charge de fonctionnalités
Les modules personnalisés Security Health Analytics ne sont pas compatibles avec les simulations de chemins d'attaque. Par conséquent, les résultats générés par ces modules n'obtiennent pas de scores d'exposition aux attaques ni de chemins d'attaque.
Comparer la logique de détection
Pour obtenir un exemple de 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 provenant de toutes les adresses IP.
Avec un module personnalisé, vous pouvez implémenter une logique de détection plus complexe pour vérifier les éléments suivants des instances Cloud SQL:
- 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 surMAINTENANCE
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 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 Security Health Analytics.
Le tableau suivant contient une liste des autorisations du module personnalisé Security Health Analytics et des rôles IAM prédéfinis qui les incluent. Ces autorisations sont valides au moins jusqu'au 22 janvier 2024. Après cette date, les autorisations répertorié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, d'un dossier ou d'un 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 des modules personnalisés Security Health Analytics qui seront requises à compter 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, d'un dossier ou d'un 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 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 vers des méthodes de module personnalisé 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 (création, mise à jour, suppression) | 60 appels d'API par minute et par organisation |
Requêtes de test CustomModules | 12 appels d'API par minute et par organisation |
Pour demander une augmentation de quota, accédez à la page Quotas de la console Google Cloud.
Pour en savoir plus sur les quotas de Security Command Center, consultez la page 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
Image
-
compute.googleapis.com/Image
Instance
-
compute.googleapis.com/Instance
Instance Group
-
compute.googleapis.com/InstanceGroup
Instance Group Manager
-
compute.googleapis.com/InstanceGroupManagers
Interconnect Attachment
-
compute.googleapis.com/InterconnectAttachment
Keyring
-
cloudkms.googleapis.com/KeyRing
KMS Import Job
-
cloudkms.googleapis.com/ImportJob
Kubernetes Service
-
k8s.io/Service
Log Bucket
-
logging.googleapis.com/LogBucket
Log Metric
-
logging.googleapis.com/LogMetric
Log Sink
-
logging.googleapis.com/LogSink
Managed Zone
-
dns.googleapis.com/ManagedZone
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
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
Router
-
compute.googleapis.com/Router
Role
-
rbac.authorization.k8s.io/Role
Role Binding
-
rbac.authorization.k8s.io/RoleBinding
Secret Manager
-
secretmanager.googleapis.com/Secret
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
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/DataLabelingJob
-
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
Étapes suivantes
- Pour utiliser des modules personnalisés, consultez la page 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 l'analyse de l'état de la sécurité.
- Pour tester vos modules personnalisés, consultez la section Tester des modules personnalisés pour l'analyse de l'état de la sécurité.