이 페이지에서는 Security Health Analytics 커스텀 모듈에 대해 간략히 설명합니다. 기본 제공 모듈에 대한 자세한 내용은 Security Health Analytics 기본 제공 감지기를 참조하세요.
커스텀 모듈을 사용하면 취약점, 잘못된 구성, 규정 준수 위반을 검사하기 위해 정의하는 규칙을 사용해서 지정되는 Google Cloud 리소스 및 정책을 스캔하는 커스텀 감지기를 만들어 Security Health Analytics의 감지 기능을 확대할 수 있습니다.
Google Cloud 콘솔에서 만들든 직접 코딩하든 커스텀 모듈의 구성 또는 정의에 따라 감지기가 검사하는 리소스, 감지기가 평가하는 속성, 취약점 또는 잘못된 구성이 감지될 때 감지기가 반환하는 정보가 결정됩니다.
Security Command Center가 지원하는 리소스 또는 애셋에 대해 커스텀 모듈을 만들 수 있습니다.
커스텀 모듈 정의를 직접 코딩할 때는 YAML 및 Common Expression Language(CEL) 표현식을 사용합니다.Google Cloud 콘솔을 사용하여 커스텀 모듈을 만들 경우에는 대부분의 코딩이 자동으로 수행되지만 CEL 표현식을 코딩해야 합니다.
YAML 파일의 커스텀 모듈 정의 예시를 보려면 커스텀 모듈 정의 예시를 참조하세요.
커스텀 모듈은 실시간 및 배치 스캔 모두 Security Health Analytics의 기본 제공되는 감지기와 함께 실행됩니다. 실시간 모드에서는 애셋 구성이 변경될 때마다 스캔이 트리거됩니다. 배치 모드 스캔은 등록된 조직 도는 프로젝트에 대한 모든 감지기에서 하루 한 번 실행됩니다.
스캔 중에는 각 커스텀 감지기가 사용 설정된 각 조직, 폴더, 프로젝트의 모든 일치하는 애셋에 적용됩니다.
커스텀 감지기의 발견 항목은 Security Command Center에 기록됩니다.
자세한 내용은 다음을 참조하세요.
기본 제공 감지기와 커스텀 모듈 비교
기본 제공 Security Health Analytics 감지기로 감지할 수 없는 항목은 커스텀 모듈로 감지할 수 있습니다. 하지만 기본 제공되는 감지기는 커스텀 모듈이 지원하지 않는 특정 Security Command Center 기능을 지원합니다.
기능 지원
Security Health Analytics 커스텀 모듈은 공격 경로 시뮬레이션에서 지원되지 않으므로 커스텀 모듈에서 생성된 발견 항목에는 공격 노출 점수 또는 공격 경로가 포함되지 않습니다.
감지 논리 비교
커스텀 모듈로 수행할 수 있는 일부 작업에 대한 예시로, 기본 제공되는 감지기 PUBLIC_SQL_INSTANCE가 검사할 수 있는 항목과 커스텀 모듈로 검사할 수 있는 항목을 비교합니다.
기본 제공되는 감지기 PUBLIC_SQL_INSTANCE는 Cloud SQL 인스턴스의 authorizedNetworks 속성이 0.0.0.0/0로 설정되었는지 확인합니다.
이렇게 설정되었으면 모든 IP 주소의 연결을 수락하기 때문에 감지기는 Cloud SQL 인스턴스가 공개되었음을 나타내는 발견 항목을 생성합니다.
커스텀 모듈에서는 보다 복잡한 감지 논리를 구현하여 Cloud SQL 인스턴스에서 다음과 같은 항목을 검사할 수 있습니다.
- 특정 프리픽스가 포함된 IP 주소(와일드 카드 사용)
- 값이
MAINTENANCE로 설정된 경우 인스턴스를 무시하고 값이 다른 값이면 발견 항목을 트리거하는state속성의 값 - 특정 리전에서 공개 IP 주소가 있는 인스턴스에 대해서만 발견 항목을 트리거하기 위해 사용할 수 있는
region속성의 값
필수 IAM 역할 및 권한
IAM 역할은 Security Health Analytics 커스텀 모듈로 수행할 수 있는 작업을 결정합니다.
다음 표에는 필요한 Security Health Analytics 커스텀 모듈 권한과 이 권한이 포함된 사전 정의된 IAM 역할의 목록이 나와 있습니다.
Google Cloud 콘솔 또는 Security Command Center API를 사용하여 조직, 폴더, 프로젝트 수준에서 이러한 역할을 적용할 수 있습니다.
| 권한 필요 | 역할 |
|---|---|
securitycentermanagement.securityHealthAnalyticsCustomModules.create
|
roles/securitycentermanagement.shaCustomModulesEditor |
securitycentermanagement.securityHealthAnalyticsCustomModules.list
|
roles/securitycentermanagement.shaCustomModulesViewer
|
IAM 권한 및 역할과 이를 부여하는 방법에 대한 자세한 내용은 Google Cloud 콘솔을 사용하여 IAM 역할 부여하기를 참고하세요.
커스텀 모듈 할당량
Security Health Analytics 커스텀 모듈에는 할당량 한도가 적용됩니다.
커스텀 모듈 생성 시 기본 할당량 한도는 100이지만 필요한 경우 할당량 증가를 요청할 수 있습니다.
커스텀 모듈 메서드에 대한 API 호출에도 할당량 한도가 적용됩니다. 다음 표에서는 커스텀 모듈 API 호출의 기본 할당량 한도를 보여줍니다.
| API 호출 유형 | 한도 |
|---|---|
| CustomModules 읽기 요청(가져오기, 나열) | 조직별로 분당 API 호출 1,000개 |
| CustomModules 쓰기 요청(만들기, 업데이트, 삭제) | 조직별로 분당 API 호출 60개 |
| CustomModules 테스트 요청 | 조직별로 분당 API 호출 12개 |
할당량을 상향 조정하려면 Google Cloud 콘솔의 할당량 페이지에서 요청을 제출하세요.
Security Command Center 할당량에 대한 자세한 내용은 할당량 및 한도를 참조하세요.
지원되는 리소스 유형
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
다음 단계
- 커스텀 모듈로 작업하려면 Security Health Analytics용 커스텀 모듈 사용을 참조하세요.
- 커스텀 모듈 정의를 직접 코딩하려면 Security Health Analytics용 커스텀 모듈 코딩을 참조하세요.
- 커스텀 모듈을 테스트하려면 Security Health Analytics용 커스텀 모듈 테스트를 참조하세요.