Información general sobre los módulos personalizados de Security Health Analytics

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:

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 es MAINTENANCE 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
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

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