En esta página se ofrece una descripción general de los módulos personalizados de Security Health Analytics. Para obtener información sobre los módulos integrados, consulta Detectores integrados de Security Health Analytics.
Con los módulos personalizados, puedes ampliar las funciones de detección de Security Health Analytics creando detectores personalizados que analicen los Google Cloud recursos y las políticas que especifiques mediante reglas que definas para comprobar si hay vulnerabilidades, errores de configuración o infracciones de cumplimiento.
La configuración o la definición de un módulo personalizado, tanto si lo creas en la consolaGoogle Cloud como si lo codificas tú mismo, determina los recursos que comprueba el detector, las propiedades que evalúa y la información que devuelve cuando se detecta una vulnerabilidad o un error de configuración.
Puede crear módulos personalizados para cualquier recurso o activo que admita Security Command Center.
Si codificas las definiciones de módulos personalizados, debes usar expresiones YAML y del lenguaje de expresión común (CEL). Si usas la Google Cloud consola para crear tus módulos personalizados, la mayor parte del código se genera automáticamente, aunque sí tienes que codificar las expresiones CEL.
Para ver un ejemplo de definición de módulo personalizado en un archivo YAML, consulta Ejemplo de definición de módulo personalizado.
Los módulos personalizados se ejecutan junto con los detectores integrados de Security Health Analytics en análisis en tiempo real y por lotes. En el modo en tiempo real, las comprobaciones se activan cada vez que cambia la configuración de un recurso. Los análisis en modo de lote se ejecutan con todos los detectores de las organizaciones o los proyectos registrados una vez al día.
Durante un análisis, cada detector personalizado se aplica a todos los recursos coincidentes de cada organización, carpeta o proyecto en el que esté habilitado.
Los resultados de los detectores personalizados se escriben en Security Command Center.
Para obtener más información, consulta las siguientes secciones:
- Crear módulos personalizados
- Tipos de análisis de Security Health Analytics
- Tipos de recursos admitidos
- YAML
- Introducción a CEL
Comparación entre detectores integrados y módulos personalizados
Puedes detectar elementos con módulos personalizados que no puedes detectar con los detectores integrados de Security Health Analytics. Sin embargo, los detectores integrados admiten determinadas funciones de Security Command Center que los módulos personalizados no admiten.
Funciones admitidas
Los módulos personalizados de Security Health Analytics no son compatibles con las simulaciones de rutas de ataque, por lo que los resultados que producen los módulos personalizados no obtienen puntuaciones de exposición a ataques ni rutas de ataque.
Comparar la lógica de detección
Para ver un ejemplo de lo que puedes hacer con un módulo personalizado, compara lo que comprueba el detector PUBLIC_SQL_INSTANCE
integrado con lo que puedes hacer con un módulo personalizado.
El detector integrado PUBLIC_SQL_INSTANCE
comprueba si la propiedad authorizedNetworks
de las instancias de Cloud SQL está definida como 0.0.0.0/0
.
Si es así, el detector genera un resultado que indica que la instancia de Cloud SQL está abierta al público, ya que acepta conexiones de todas las direcciones IP.
Con un módulo personalizado, puedes implementar una lógica de detección más compleja para comprobar si las instancias de Cloud SQL cumplen los siguientes requisitos:
- Direcciones IP con prefijos específicos mediante comodines.
- El valor de la propiedad
state
, que puede usar para ignorar instancias si el valor esMAINTENANCE
o para activar detecciones si el valor es otro. - Valor de la propiedad
region
, que puede usar para activar resultados solo en instancias con direcciones IP públicas en regiones específicas.
Roles y permisos de gestión de identidades y accesos necesarios
Los roles de gestión de identidades y accesos determinan las acciones que puedes realizar con los módulos personalizados de Security Health Analytics.
En la siguiente tabla se incluye una lista de los permisos de módulos personalizados de Security Health Analytics que son obligatorios, así como los roles de gestión de identidades y accesos predefinidos que los incluyen.
Puedes usar la Google Cloud consola o la API de Security Command Center para aplicar estos roles a nivel de organización, carpeta o proyecto.
Los permisos que requiere | Roles |
---|---|
securitycentermanagement.securityHealthAnalyticsCustomModules.create
|
roles/securitycentermanagement.shaCustomModulesEditor |
securitycentermanagement.securityHealthAnalyticsCustomModules.list
|
roles/securitycentermanagement.shaCustomModulesViewer
|
Para obtener más información sobre los permisos y roles de gestión de identidades y accesos, y sobre cómo concederlos, consulta el artículo sobre cómo conceder un rol de gestión de identidades y accesos mediante la consola Google Cloud .
Cuotas de módulos personalizados
Los módulos personalizados de Security Health Analytics están sujetos a límites de cuota.
El límite de cuota predeterminado para la creación de módulos personalizados es de 100, pero puedes solicitar un aumento de cuota si es necesario.
Las llamadas a la API de los métodos de módulos personalizados también están sujetas a límites de cuota. En la siguiente tabla se muestran los límites de cuota predeterminados para las llamadas a la API de módulos personalizados.
Tipo de llamada a la API | Límite |
---|---|
Solicitudes de lectura de CustomModules (Get, List) | 1000 llamadas a la API por minuto y organización |
Solicitudes de escritura de CustomModules (Create, Update, Delete) | 60 llamadas a la API por minuto y organización |
Solicitudes de prueba de CustomModules | 12 llamadas a la API por minuto y organización |
Para solicitar un aumento de la cuota, envía una solicitud en la Google Cloud consola, en la página Cuotas.
Para obtener más información sobre las cuotas de Security Command Center, consulta Cuotas y límites.
Tipos de recursos admitidos
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
Siguientes pasos
- Para trabajar con módulos personalizados, consulta el artículo Usar módulos personalizados para Security Health Analytics.
- Para codificar las definiciones de módulos personalizados, consulta el artículo Codificar módulos personalizados para Security Health Analytics.
- Para probar tus módulos personalizados, consulta Probar módulos personalizados de Security Health Analytics.