En esta página, se proporciona una descripción general de los módulos personalizados de las estadísticas del estado de la seguridad. Para obtener información sobre los módulos integrados, consulta Detectores integrados de Security Health Analytics.
Con los módulos personalizados, puedes extender las capacidades de detección de Security Health Analytics. Para ello, crea detectores personalizados que analicen los recursos y las políticas de Google Cloud que especifiques con las reglas que definas para detectar vulnerabilidades, parámetros de configuración incorrectos o incumplimientos de cumplimiento.
La configuración o definición de un módulo personalizado, ya sea que lo crees en la consola de Google Cloud o lo codifiques por tu cuenta, determina los recursos que el detector verifica, las propiedades que evalúa y la información que muestra cuando se detecta una vulnerabilidad o una configuración incorrecta.
Puedes crear módulos personalizados para cualquier recurso que admita Security Command Center.
Si codificas definiciones de módulos personalizados, usas YAML y expresiones de Common Expression Language (CEL). Si usas la consola de Google Cloud para crear tus módulos personalizados, la mayor parte de la codificación se realiza por ti, aunque debes codificar las expresiones de 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 de tiempo real, las verificaciones se activan cada vez que cambia la configuración de un recurso. Los análisis en modo por lotes se ejecutan con todos los detectores para las organizaciones o los proyectos inscritos una vez al día.
Durante un análisis, cada detector personalizado se aplica a todos los recursos que coinciden en cada organización, carpeta o proyecto para el que está habilitado.
Los resultados de los detectores personalizados se escriben en Security Command Center.
Para obtener más información, consulta lo siguiente:
- Cómo crear módulos personalizados
- Tipos de análisis de Security Health Analytics
- Tipos de recursos admitidos
- YAML
- Introducción a CEL
Comparación de 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 ciertas funciones de Security Command Center que los módulos personalizados no admiten.
Compatibilidad de características
Las simulaciones de ruta de ataque no admiten los módulos personalizados de Security Health Analytics, por lo que los resultados que producen los módulos personalizados no obtienen puntajes de exposición a ataques ni rutas de ataque.
Comparación de la lógica de detección
Como ejemplo de algunas de las acciones que puedes realizar con un módulo personalizado, compara lo que el detector integrado PUBLIC_SQL_INSTANCE
verifica con lo que puedes hacer con un módulo personalizado.
El detector integrado PUBLIC_SQL_INSTANCE
verifica si la propiedad authorizedNetworks
de las instancias de Cloud SQL está configurada en 0.0.0.0/0
. Si es así, el detector emite un hallazgo 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 verificar instancias de Cloud SQL en busca de lo siguiente:
- Direcciones IP con prefijos específicos mediante comodines
- Es el valor de la propiedad
state
, que puedes usar para ignorar instancias si el valor está establecido enMAINTENANCE
o activar hallazgos si el valor es otro. - Es el valor de la propiedad
region
, que puedes usar para activar hallazgos solo para instancias con direcciones IP públicas en regiones específicas.
Roles y permisos de IAM obligatorios
Los roles de IAM determinan las acciones que puedes realizar con los módulos personalizados de las estadísticas del estado de la seguridad.
La siguiente tabla contiene una lista de los permisos del módulo personalizado de Security Health Analytics y los roles de IAM predefinidos que los incluyen. Estos permisos son válidos hasta, al menos, el 22 de enero de 2024. Después de esa fecha, se requerirán los permisos que se indican en la segunda tabla siguiente.
Puedes usar la consola de Google Cloud o la API de Security Command Center para aplicar estos roles a nivel de la organización, la carpeta o el proyecto.
Permisos necesarios antes del 22 de enero de 2024 | Funciones |
---|---|
securitycenter.securityhealthanalyticscustommodules.create |
roles/securitycenter.settingsEditor |
securitycenter.securityhealthanalyticscustommodules.get |
roles/securitycenter.settingsViewer |
securitycenter.securityhealthanalyticscustommodules.test |
roles/securitycenter.securityHealthAnalyticsCustomModulesTester |
La siguiente tabla contiene una lista de los permisos de los módulos personalizados de Security Health Analytics que se requerirán a partir del 22 de enero de 2024, así como los roles de IAM predefinidos que los incluyen.
Puedes usar la consola de Google Cloud o la API de Security Command Center para aplicar estos roles a nivel de la organización, la carpeta o el proyecto.
Permisos necesarios a partir del 22 de enero de 2024 | Funciones |
---|---|
securitycentermanagement.securityHealthAnalyticsCustomModules.create
|
roles/securitycentermanagement.shaCustomModulesEditor |
securitycentermanagement.securityHealthAnalyticsCustomModules.list
|
roles/securitycentermanagement.shaCustomModulesViewer
|
Para obtener más información sobre los permisos y roles de IAM, y cómo otorgarlos, consulta Cómo otorgar un rol de IAM con la consola de Google Cloud.
Cuotas de módulos personalizados
Los módulos personalizados de las Estadísticas del estado de la seguridad 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 la cuota si es necesario.
Las llamadas a la API a 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) | 1,000 llamadas a la API por minuto y por organización |
Solicitudes de escritura de CustomModules (creación, actualización y eliminación) | 60 llamadas a la API por minuto y por organización |
Solicitudes de prueba de CustomModules | 12 llamadas a la API por minuto y por organización |
Para obtener aumentos de cuota, envía una solicitud en la consola de Google Cloud 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
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
¿Qué sigue?
- Para trabajar con módulos personalizados, consulta Cómo usar módulos personalizados para las estadísticas del estado de la seguridad.
- Para codificar definiciones de módulos personalizados por tu cuenta, consulta Cómo codificar módulos personalizados para las estadísticas del estado de la seguridad.
- Para probar tus módulos personalizados, consulta Cómo probar módulos personalizados para las estadísticas del estado de la seguridad.