Nesta página, você terá uma visão geral dos módulos personalizados do Security Health Analytics. Para informações sobre módulos integrados, consulte Detectores integrados da Análise de integridade da segurança.
Com os módulos personalizados, é possível ampliar os recursos de detecção do Security Health Analytics criando detectores personalizados que verificam os recursos e as políticas do Google Cloud especificados usando regras que você define para verificar vulnerabilidades, configurações incorretas ou violações de conformidade.
A configuração ou definição de um módulo personalizado, seja criado no console do Google Cloud ou codificado por você, determina os recursos que o detector verifica, as propriedades que ele avalia e as informações que ele retorna quando uma vulnerabilidade ou configuração incorreta é detectada.
É possível criar módulos personalizados para qualquer recurso que seja compatível com o Security Command Center.
Se você codificar definições de módulo personalizadas, poderá usar expressões YAML e Common Expression Language (CEL). Se você usar o consoleGoogle Cloud para criar seus módulos personalizados, a maior parte da programação será feita para você, embora seja necessário codificar as expressões CEL.
Para ver um exemplo de definição de módulo personalizado em um arquivo YAML, consulte Exemplo de definição de módulo personalizado.
Os módulos personalizados são executados com os detectores integrados do Security Health Analytics em verificações em tempo real e em lote. No modo em tempo real, as verificações são acionadas sempre que a configuração de um recurso é alterada. As verificações em lote são executadas com todos os detectores para organizações ou projetos registrados uma vez por dia.
Durante uma verificação, cada detector personalizado é aplicado a todos os recursos correspondentes em cada organização, pasta ou projeto em que está ativado.
As descobertas dos detectores personalizados são gravadas no Security Command Center.
Para ver mais informações, consulte os seguintes tópicos:
- Como criar módulos personalizados
- Tipos de verificações da Análise de integridade da segurança
- Tipos de recursos compatíveis
- YAML
- Introdução a CEL
Comparação de detectores integrados e módulos personalizados
Você pode detectar itens com módulos personalizados que não podem ser detectados com os detectores integrados da Análise de integridade da segurança. No entanto, os detectores integrados são compatíveis com determinados recursos do Security Command Center que não são compatíveis com os módulos personalizados.
Suporte a recursos
Os módulos personalizados da Análise de integridade da segurança não são compatíveis com simulações de caminho de ataque. Portanto, as descobertas produzidas por módulos personalizados não recebem pontuações de exposição a ataques ou caminhos de ataque.
Como comparar a lógica de detecção
Como exemplo de algumas das coisas que você pode fazer com um
módulo personalizado, compare o que o detector integrado PUBLIC_SQL_INSTANCE
verifica com o que você pode fazer com um módulo personalizado.
O detector integrado PUBLIC_SQL_INSTANCE verifica se a propriedade authorizedNetworks das instâncias do Cloud SQL está definida como 0.0.0.0/0.
Se for, o detector vai gerar uma descoberta que declara que a instância do Cloud SQL está aberta ao público, porque aceita conexões de todos os endereços IP.
Com um módulo personalizado, é possível implementar uma lógica de detecção mais complexa para verificar instâncias do Cloud SQL para coisas como:
- Endereços IP com prefixos específicos, usando caracteres curinga.
- O valor da propriedade
state, que pode ser usado para ignorar instâncias se o valor for definido comoMAINTENANCEou acionar descobertas se o valor for outro. - O valor da propriedade
region, que pode ser usado para acionar descobertas apenas para instâncias com endereços IP públicos em regiões específicas.
Permissões e papéis do IAM necessários
Os papéis do IAM determinam as ações que podem ser realizadas com os módulos personalizados do Security Health Analytics.
A tabela a seguir contém uma lista de permissões personalizadas do módulo Security Health Analytics que são necessárias, bem como os papéis predefinidos do IAM que as incluem.
É possível usar o console Google Cloud ou a API Security Command Center para aplicar esses papéis no nível da organização, da pasta ou do projeto.
| Permissões necessárias | Papéis |
|---|---|
securitycentermanagement.securityHealthAnalyticsCustomModules.create
|
roles/securitycentermanagement.shaCustomModulesEditor |
securitycentermanagement.securityHealthAnalyticsCustomModules.list
|
roles/securitycentermanagement.shaCustomModulesViewer
|
Para mais informações sobre permissões e papéis do IAM e como concedê-los, consulte Conceder um papel do IAM usando o console Google Cloud .
Cotas do módulo personalizado
Os módulos personalizados do Security Health Analytics estão sujeitos a limites de cota.
O limite de cota padrão para a criação de módulos personalizados é de 100, mas você pode solicitar um aumento de cota, se necessário.
As chamadas de API para métodos de módulo personalizados também estão sujeitas a limites de cota. A tabela a seguir mostra os limites de cota padrão para chamadas de API do módulo personalizado.
| Tipo de chamada de API | Limite |
|---|---|
| Solicitações de leitura de CustomModules (encontrar, listar) | 1.000 chamadas de API por minuto e organização. |
| Solicitações de gravação de CustomModules (criar, atualizar e excluir) | 60 chamadas de API por minuto e organização. |
| Solicitações de teste de CustomModules | 12 chamadas de API por minuto e organização. |
Para aumentar a cota, envie uma solicitação no console do Google Cloud na página Cotas.
Para mais informações sobre as cotas do Security Command Center, consulte Cotas e limites.
Tipos de recursos compatíveis
Access Context Manager-
accesscontextmanager.googleapis.com/AccessLevel -
accesscontextmanager.googleapis.com/AccessPolicy -
accesscontextmanager.googleapis.com/ServicePerimeter Address-
compute.googleapis.com/Address Alert Policymonitoring.googleapis.com/AlertPolicyAlloyDB 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 Modelbigquery.googleapis.com/ModelBigQuery Tablebigquery.googleapis.com/TableBucket-
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 Profiledatastream.googleapis.com/ConnectionProfileDatastream Private Connectiondatastream.googleapis.com/PrivateConnectionDatastream Streamdatastream.googleapis.com/StreamDialogflow 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 Nodepoolcontainer.googleapis.com/NodePoolOrganization-
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
A seguir
- Para trabalhar com módulos personalizados, consulte Como usar módulos personalizados para o Security Health Analytics.
- Para codificar definições de módulo personalizadas, consulte Códigos de módulos personalizados para o Security Health Analytics.
- Para testar os módulos personalizados, consulte Testar módulos personalizados para o Security Health Analytics.