资源治理:权限、配额与费用

验证:未记录
适用版本
未记录
验证范围
尚未登记验证记录。

接手 Project 时先做只读盘点。

推荐做法#

  • dev/staging/prod 按 Project 与数据权限隔离;人员通过 Group / federation 管理。
  • 资源标记 owner、env、cost_center;定期检查公网入口、SA key 和无人使用资源。
  • 成本按 Billing export / SKU 定位,配额按服务和 Region 分别查。

常用操作#

替换为实际资源;本段不依赖 lab.env。

PROJECT_ID='REPLACE_PROJECT_ID'

gcloud asset search-all-resources --scope="projects/$PROJECT_ID"
gcloud projects get-iam-policy "$PROJECT_ID"
gcloud services list --enabled --project="$PROJECT_ID"

容易踩的坑#

Budget 是通知,不是费用硬上限。 即使设置告警,资源仍可能继续计费;账单导出与资产索引还有延迟,不能用“尚未显示”判断无费用或无资源。

  • Project policy 不包含完整继承/子资源授权;labels 也不等于 IAM tags。
配置说明与完整示例(按需展开)

补齐“能创建资源”到“能接手项目”的差距。资源清单、有效权限、成本、配额必须一起看;预算不是消费硬上限。

资源盘点#

前置:环境篇,Cloud Asset Viewer、Service Usage Viewer 与 Compute Viewer;启用 API 另需管理员。

source lab.env
gcloud services enable cloudasset.googleapis.com
gcloud asset search-all-resources --scope="projects/$PROJECT_ID" --format='table(assetType,displayName,location,name)'
gcloud asset search-all-iam-policies --scope="projects/$PROJECT_ID" --query='policy:allUsers' --format=json
gcloud compute project-info describe --project="$PROJECT_ID" --format='yaml(quotas)'
gcloud compute regions describe "$REGION" --format='yaml(quotas)'

验收:找到至少一个运行资源和一个公开授权(若做了公共静态桶),解释为何存在。Asset Inventory 支持的资源类型与更新时间有边界;“没搜到”不能直接证明不存在。资产查询

Compute 配额输出只覆盖部分配额。Console → IAM & Admin → Quotas & System Limits 按服务/地域筛选 Cloud Run、GKE、SQL 等,区分可申请提高的配额与不可调系统限制。RESOURCE_EXHAUSTED 不一定是权限不足。

成本分析#

  1. Console → Billing → Billing export → BigQuery export,启用 Standard usage 导出到专用数据集;需要 Cloud Billing account 与数据集两侧权限。
  2. 选择支持的 location;首次数据到达有延迟,历史回填范围也有限。
  3. 在 BigQuery 把下面表路径与项目 ID 替换为实际值,先 dry run 再查询:
SELECT
  service.description AS service,
  currency,
  ROUND(SUM(cost), 2) AS cost_before_credits,
  ROUND(SUM(cost + IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)), 2) AS net_cost
FROM `BILLING_PROJECT.BILLING_DATASET.gcp_billing_export_v1_ACCOUNT_SUFFIX`
WHERE usage_start_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
  AND project.id = 'YOUR_LAB_PROJECT'
GROUP BY service, currency
ORDER BY net_cost DESC;

按 currency 分组,避免不同货币相加;抵扣项通常为负数。用服务与 SKU 找到来源,再回查资源。不是所有费用都有单独的资源 ID,不能强行做到逐资源精确归因。标准账单导出

企业权限与环境边界#

检查 合格结果
dev/staging/prod 项目、数据和部署权限分离
人的权限 Google Group / 联合员工身份,离职可统一撤权
Organization Policy 清楚哪些是从 Folder / Organization 继承的限制,实验不解除公司策略
SA key 优先无密钥身份;可解释每把遗留 key 的用途和轮换计划
标签 owner、env、cost_center 可追踪;labels 与 IAM Resource Manager tags 不等价
紧急访问 有时限、审批与审计;不是所有人常驻 Owner

清理:保留必要财务记录。若导出只为本实验,先关闭该导出再按保留要求删除专用数据集;不要删共享账单数据集。资源清单查询本身无需清理。

搜索文档

输入关键词,搜索所有文档。

↑ ↓ 选择 · Enter 打开 · Esc 关闭