用途:用于在 GCP 项目或组织中调查疑似入侵、服务账号密钥泄露或滥用、Security Command Center(SCC)/Event Threat Detection/Chronicle 告警,以及重建某主体跨项目活动、界定权限提升后的 IAM 策略与资源变更范围。
核心前提:GCP 审计日志分四条流。Admin Activity 与 System Event 始终开启且不可关闭;Data Access 除 BigQuery 外默认关闭;Policy Denied 默认开启。因此 Data Access 日志未开启时,无法确认或排除读取密钥、下载存储桶、外泄数据集等行为,应报告“可见性缺口”而非“未发生外泄”。保留期也不同:Admin Activity/System Event 进 _Required 桶 400 天;Data Access 与 Policy Denied 进 _Default 桶,默认 30 天,除非扩展或配置日志接收器。
常用命令: gcloud organizations get-iam-policy ORG_ID --format=json | jq '.auditConfigs' gcloud projects get-iam-policy PROJECT_ID --format=json | jq '.auditConfigs' gcloud logging read 'protoPayload.authenticationInfo.principalEmail="attacker@example.com"' --project=PROJECT_ID --freshness=30d --format=json gcloud logging read 'protoPayload.methodName:"SetIamPolicy"' --freshness=30d --format=json gcloud logging read 'protoPayload.methodName="google.iam.admin.v1.CreateServiceAccountKey"' --freshness=30d --format=json 除方法名外应关注请求字段:authenticationInfo 中的主体与是否通过服务账号模拟调用;requestMetadata.callerIp 与 callerSuppliedUserAgent 判断来源。
重点:服务账号是多数 GCP 事件核心;iam.serviceAccounts.getAccessToken、signJwt、signBlob 构成模拟链,是横向移动与提权原语;CreateServiceAccountKey 属于持久化,用户管理密钥在改密和改 MFA 后仍有效;OAuth 域范围委派可跨 Google Workspace,易被纯 GCP 视角漏掉。若启用 SCC,可从其发现(异常 IAM 授权、密钥滥用、外泄模式)播种时间线,再与原始审计日志互相印证;Standard 层检出能力弱于 Premium/Enterprise,需确认已授权层级。
限制与边界:不适用于 AWS(用 investigating-aws-incidents)、Azure/M365 Entra(用 investigating-azure-incidents 或 investigating-m365-entra)、GKE 集群层(先用本技能看云平面,再用 defending-kubernetes)、攻击 GCP(用 exploiting-cloud-platforms)或判断告警是否为事件(先用 triaging-security-alerts)。