拓冰建站拓冰建站
首页 / 资讯中心 / 正文

基于 skills 仓库的 Google Cloud Workload Manager 评估实战:客户端库、REST API 与最佳实践规则全解

基于 skills 仓库的 Google Cloud Workload Manager 评估实战客户端库、REST API 与最佳实践规则全解【免费下载链接】skillsAgent Skills for Google products and technologies项目地址: https://gitcode.com/GitHub_Trending/skills29/skillsGoogle Cloud Workload Manager 用于将企业级工作负载对照 Google Cloud 最佳实践进行持续校验。本文基于 skills 仓库中的 workload-manager-basics 技能定义 及其 8 份参考文档展开覆盖评估工作流的完整闭环列出规则、创建与运行 Evaluation、检查发现项、导出结果到 BigQuery并给出 Python/Go 客户端库与 REST API 两套可复制的实操路径同时讲清该服务在 CLI、MCP 与 Terraform 上的能力边界帮助你建立一套最小权限、可审计、可自动化的工作负载合规检查体系。一、服务定位与总体工作流Workload Manager 将企业工作负载与 Google Cloud 最佳实践及建议进行对照校验。其公开的客户端库围绕 evaluations评估组织先定义资源范围选择内置或自定义规则运行一次评估最后检查结果与被扫描的资源。该服务覆盖三类工作负载的内置规则目录SAPSAP 最佳实践SQL_SERVERSQL Server 最佳实践OTHER通用的 Google Cloud 最佳实践以及组织自定义最佳实践规则。总体工作流如下源自 SKILL.md 中的流程定义从源码结构看整个技能由一个入口文档 SKILL.md 和 8 份参考文档组成职责划分清晰核心概念core-concepts.md、通用最佳实践general-best-practices.md、客户端库client-library-usage.md、REST 用法rest-usage.md、CLI 与 MCP 能力现状public-cli-status.md、public-mcp-status.md、Terraform 前置配置setup-prerequisites.md以及 IAM 与安全iam-security.md。二、API 使用边界先明确不能做什么在动手之前SKILL.md 用 Core API Constraints 一节划定了四条硬性约束这是自动化该服务前必须理解的前提只走公开接口必须使用官方公开的google-cloud-workloadmanager客户端库或公开 REST APIworkloadmanager.googleapis.com/v1。禁止内部接口不要尝试内部 RPC 协议、私有服务后端或未文档化的发现机制——它们不对外支持且会失败。没有服务专属 CLI不存在公开的gcloud workload-manager命令组。gcloud只能用于认证、IAM 角色分配和获取原始 REST 令牌。沙箱环境要有降级策略当 gcloud 认证或 API 调用在受限环境中失败如 Context Aware Access 拦截令牌、API 未启用、mock 资源返回 404/403时应立即降级为展示示例代码与静态发现项而不是陷入重试循环。这一点同样被参考文档反复强调public-cli-status.md 明确指出公共文档目前没有描述专门的gcloud workload-manager命令组不应编写暗示可通过服务专属gcloud命令管理 evaluations、executions、rules、deployments 或 actuations 的示例public-mcp-status.md 则说明目前没有已文档化的公开 Workload Manager MCP server生产工作流应使用公开客户端库或 REST API。gcloud在 Workload Manager 场景中的正确用法是周边基础设施# 启用 API gcloud services enable workloadmanager.googleapis.com --quiet # 设置默认项目并导出环境变量 gcloud config set project PROJECT_ID export PROJECT_ID$(gcloud config get-value project) export LOCATIONLOCATION # 本地客户端库认证ADC gcloud auth application-default login # REST 认证令牌 export TOKEN$(gcloud auth print-access-token) # 授予 Workload Manager 角色 gcloud projects add-iam-policy-binding PROJECT_ID \ --memberuser:USER_EMAIL \ --roleroles/workloadmanager.evaluationAdmin \ --quiet需要注意启用 API 本身不直接收费但评估会产生日志、扫描资源元数据若把结果导出到 BigQuery 则会产生相应的常规服务费用。三、前置条件与最小权限原则使用客户端库前的完整前置条件源自 SKILL.md启用 Workload Manager APIgcloud services enable workloadmanager.googleapis.com --quiet使用 Application Default CredentialsADC完成本地认证gcloud auth application-default login确保 Workload Manager 服务代理service agent在项目中拥有必需角色——API/客户端库使用的强制前提遵循最小权限只读访问从roles/workloadmanager.viewer起步仅在需要创建、更新、运行或删除评估时使用roles/workloadmanager.evaluationAdmin或roles/workloadmanager.admin。setup-prerequisites.md 还给出了用 Terraform 管理周边前置项而非 Workload Manager 资源本身的示例并明确警告除非当前 provider 参考文档明确记录了相应资源否则不要编写暗示 Terraform 可以管理 Workload Manager evaluations、executions、rules、deployments、actuations 或 insights 的示例。评估运行属于带有长操作状态的运维动作更适合放在受控的客户端库或 REST API 自动化中而不是 Terraform plan。# 启用 API自定义规则评估额外需要 Service Usage 与 Cloud Monitoring API resource google_project_service workload_manager { project var.project_id service workloadmanager.googleapis.com disable_on_destroy false } resource google_project_service service_usage { project var.project_id service serviceusage.googleapis.com disable_on_destroy false } resource google_project_service monitoring { project var.project_id service monitoring.googleapis.com disable_on_destroy false } # 授予评估管理角色给自动化服务账号 resource google_project_iam_member workload_manager_evaluation_admin { project var.project_id role roles/workloadmanager.evaluationAdmin member serviceAccount:${google_service_account.automation.email} } # BigQuery 结果导出数据集必须使用区域性数据集 resource google_bigquery_dataset workload_manager_results { project var.project_id dataset_id workload_manager_results location var.location } # CMEK 前置密钥 resource google_kms_key_ring workload_manager { project var.project_id name workload-manager location var.location } resource google_kms_crypto_key evaluations { name evaluations key_ring google_kms_key_ring.workload_manager.id rotation_period 7776000s }其中 BigQuery 导出数据集通过Evaluation.big_query_destination.destination_dataset引用CMEK 密钥通过Evaluation.kms_key引用格式projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY。自定义规则评估必须启用 Service Usage 与 Cloud Monitoring API。四、核心资源模型Evaluation、Rule、Execution 与结果根据 core-concepts.mdWorkload Manager 的公开 v1 客户端库暴露了围绕评估生命周期的五类核心资源资源含义与关键字段Evaluation定义要校验什么的配置资源过滤器、工作负载评估类型、规则名列表、标签、可选固定 cron 调度、可选自定义规则 bucket、可选 BigQuery 目标、可选 CMEK 密钥Rule最佳实践检查项显示名、严重级别、分类、修复说明文本、标签、资产类型Execution一次评估运行状态、时间、引擎、运行类型、规则结果、通知、外部数据源、汇总计数ExecutionResult单次运行的发现或修复结果规则、严重级别、违规消息、文档 URL、受影响资源、详情、建议命令ScannedResource被某次运行扫描过的资源可按规则过滤4.1 评估范围ResourceFilter用ResourceFilter约束影响半径scopesprojects/{project_id}、folders/{folder_id}或organizations/{organization_id}resource_id_patterns资源 ID 的正则风格匹配模式inclusion_labels被纳入资源必须具备的标签gce_instance_filter.service_accounts将 Compute Engine 实例限制在选定服务账号。实践建议是选择能回答问题的最小项目或标签过滤范围folder 或 organization 级范围需要更广泛的权限且会产生更多结果、更多日志与更多 BigQuery 导出数据。4.2 固定调度scheduleEvaluation.schedule接受客户端库文档中的固定 cron 字符串cron 表达式调度频率0 */1 * * *每小时0 */6 * * *每 6 小时0 */12 * * *每 12 小时0 0 */1 * *每天0 0 */7 * *每周0 0 */14 * *每 14 天0 0 1 */1 *每月如果需要临时跑一次应使用run_evaluation而不是添加调度。4.3 公开面的边界Python 客户端库包google-cloud-workloadmanager与生成的 Go 客户端覆盖了评估工作流evaluations、executions、execution results、rules、scanned resources。REST 参考文档可能还暴露 deployments、actuations、discovered profiles、insights 等资源——当客户端库缺少所需资源时直接走 REST API并保持请求形状与 REST 参考一致。五、Python 客户端库实操从列规则到读发现项Python 客户端库为 GA 版本支持 Python 3.9。环境准备python3 -m venv .venv source .venv/bin/activate python3 -m pip install --upgrade google-cloud-workloadmanager gcloud auth application-default login5.1 列出规则OTHER / SQL_SERVERSKILL.md 给出的第一个可运行自动化路径就是列出规则。使用OTHER获取通用最佳实践规则from google.cloud import workloadmanager_v1 project_id PROJECT_ID location LOCATION parent fprojects/{project_id}/locations/{location} client workloadmanager_v1.WorkloadManagerClient() response client.list_rules( requestworkloadmanager_v1.ListRulesRequest( parentparent, evaluation_typeworkloadmanager_v1.Evaluation.EvaluationType.OTHER, ) ) for rule in response.rules: tags , .join(rule.tags) print(rule.name, rule.asset_type, rule.severity, tags)核心概念文档强调创建评估前先用list_rules按评估类型列出规则让所选规则名与工作负载类型和当前公开规则目录保持一致而不是硬编码完整目录。切换evaluation_type为SQL_SERVER即可获取 SQL Server 目录传入custom_rules_bucket参数则列出上传到 Cloud Storage 的自定义 Rego 规则。5.2 创建通用最佳实践评估组织级推荐以下示例创建组织范围的基线OTHER评估默认每日扫描来自 client-library-usage.mdfrom google.cloud import workloadmanager_v1 project_id PROJECT_ID org_id ORG_ID location LOCATION evaluation_id general-posture-prod parent fprojects/{project_id}/locations/{location} client workloadmanager_v1.WorkloadManagerClient() # 先收集所有通用态势检查规则 rule_response client.list_rules( requestworkloadmanager_v1.ListRulesRequest( parentparent, evaluation_typeworkloadmanager_v1.Evaluation.EvaluationType.OTHER, ) ) rule_names [rule.name for rule in rule_response.rules] evaluation workloadmanager_v1.Evaluation( descriptionGeneral Google Cloud posture baseline, evaluation_typeworkloadmanager_v1.Evaluation.EvaluationType.OTHER, resource_filterworkloadmanager_v1.ResourceFilter( scopes[forganizations/{org_id}], ), schedule0 0 * * *, rule_namesrule_names, labels{owner: platform, baseline: general}, ) operation client.create_evaluation( requestworkloadmanager_v1.CreateEvaluationRequest( parentparent, evaluation_idevaluation_id, evaluationevaluation, ) ) created operation.result(timeout600) print(created.name)当没有组织级访问权限时把scopes改为[fprojects/{project_id}]、evaluation_id改为如general-posture-project即可退化为项目级范围。SQL Server 评估的创建方式相同只需将evaluation_type换成EvaluationType.SQL_SERVER、标签调整为{owner: platform, workload: sql-server}。5.3 创建自定义规则评估custom_rules_bucket只用于已上传到 Cloud Storage 的自定义 Rego 规则。先列出该 bucket 中的规则再用选定的自定义规则名创建OTHER评估from google.cloud import workloadmanager_v1 project_id PROJECT_ID location LOCATION evaluation_id custom-org-policies-prod custom_rules_bucket CUSTOM_RULES_BUCKET parent fprojects/{project_id}/locations/{location} client workloadmanager_v1.WorkloadManagerClient() rule_response client.list_rules( requestworkloadmanager_v1.ListRulesRequest( parentparent, custom_rules_bucketcustom_rules_bucket, evaluation_typeworkloadmanager_v1.Evaluation.EvaluationType.OTHER, ) ) rule_names [rule.name for rule in rule_response.rules] evaluation workloadmanager_v1.Evaluation( descriptionOrganization policy-as-code checks, evaluation_typeworkloadmanager_v1.Evaluation.EvaluationType.OTHER, custom_rules_bucketcustom_rules_bucket, resource_filterworkloadmanager_v1.ResourceFilter( scopes[fprojects/{project_id}], ), rule_namesrule_names, labels{owner: platform, baseline: custom-rules}, ) operation client.create_evaluation( requestworkloadmanager_v1.CreateEvaluationRequest( parentparent, evaluation_idevaluation_id, evaluationevaluation, ) ) created operation.result(timeout600) print(created.name)5.4 运行评估、读取发现项与更新调度手动触发一次运行注意execution_id与幂等的request_idimport uuid from google.cloud import workloadmanager_v1 project_id PROJECT_ID location LOCATION evaluation_id sql-server-prod execution_id manual-run-001 evaluation_name ( fprojects/{project_id}/locations/{location}/evaluations/{evaluation_id} ) client workloadmanager_v1.WorkloadManagerClient() operation client.run_evaluation( requestworkloadmanager_v1.RunEvaluationRequest( nameevaluation_name, execution_idexecution_id, executionworkloadmanager_v1.Execution( labels{trigger: manual}, ), request_idstr(uuid.uuid4()), ) ) execution operation.result(timeout1200) print(execution.name, execution.state)读取发现项默认列出全部发现过滤字符串值需注意嵌套引号如filterseverityHIGHfrom google.cloud import workloadmanager_v1 execution_name ( projects/PROJECT_ID/locations/LOCATION/evaluations/EVALUATION_ID/ executions/EXECUTION_ID ) client workloadmanager_v1.WorkloadManagerClient() for result in client.list_execution_results( requestworkloadmanager_v1.ListExecutionResultsRequest( parentexecution_name, ) ): print(result.rule, result.severity, result.resource.name) print(result.violation_message) print(result.documentation_url)更新评估调度时使用get后配合FieldMask精确更新避免误改其他字段from google.cloud import workloadmanager_v1 from google.protobuf import field_mask_pb2 evaluation_name ( projects/PROJECT_ID/locations/LOCATION/evaluations/EVALUATION_ID ) client workloadmanager_v1.WorkloadManagerClient() evaluation client.get_evaluation(nameevaluation_name) evaluation.schedule 0 0 */1 * * operation client.update_evaluation( requestworkloadmanager_v1.UpdateEvaluationRequest( evaluationevaluation, update_maskfield_mask_pb2.FieldMask(paths[schedule]), ) ) updated operation.result(timeout600) print(updated.schedule)5.5 Go 客户端列出评估go get cloud.google.com/go/workloadmanager/apiv1package main import ( context fmt log workloadmanager cloud.google.com/go/workloadmanager/apiv1 workloadmanagerpb cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb google.golang.org/api/iterator ) func main() { ctx : context.Background() client, err : workloadmanager.NewClient(ctx) if err ! nil { log.Fatal(err) } defer client.Close() req : workloadmanagerpb.ListEvaluationsRequest{ Parent: projects/PROJECT_ID/locations/LOCATION, } it : client.ListEvaluations(ctx, req) for { evaluation, err : it.Next() if err iterator.Done { break } if err ! nil { log.Fatal(err) } fmt.Println(evaluation.GetName()) } }参考文档给出的实用守则Practical Guardrails值得内化为自动化规范使用评估生命周期之外的资源前先查当前客户端库参考把长操作当异步处理始终调用operation.result并带超时或显式轮询同一调用中要么用 request 对象要么用扁平化关键字参数不要混用使用BigQueryDestination时把导出结果放到专用 BigQuery 数据集。六、REST API 实操语言无关的自动化路径当客户端库未覆盖所需资源、调试原始请求、或构建语言无关自动化时使用 REST源自 rest-usage.md。6.1 环境准备export PROJECT_IDPROJECT_ID export LOCATIONLOCATION export TOKEN$(gcloud auth print-access-token) export BASE_URLhttps://workloadmanager.googleapis.com/v16.2 列出规则# 全部规则 curl -sS \ -H Authorization: Bearer ${TOKEN} \ ${BASE_URL}/projects/${PROJECT_ID}/locations/${LOCATION}/rules # 按评估类型过滤 curl -sS \ -H Authorization: Bearer ${TOKEN} \ ${BASE_URL}/projects/${PROJECT_ID}/locations/${LOCATION}/rules?evaluationTypeSQL_SERVER # OTHER内置通用最佳实践规则 curl -sS \ -H Authorization: Bearer ${TOKEN} \ ${BASE_URL}/projects/${PROJECT_ID}/locations/${LOCATION}/rules?evaluationTypeOTHER # 自定义 Rego 规则传入自定义规则 bucket export CUSTOM_RULES_BUCKETCUSTOM_RULES_BUCKET curl -sS \ -H Authorization: Bearer ${TOKEN} \ ${BASE_URL}/projects/${PROJECT_ID}/locations/${LOCATION}/rules?evaluationTypeOTHERcustomRulesBucket${CUSTOM_RULES_BUCKET}6.3 创建评估POST evaluations组织级 SQL Server 评估推荐带evaluationId与幂等requestId查询参数export EVALUATION_IDsql-server-prod export REQUEST_ID$(uuidgen | tr [:upper:] [:lower:]) export ORG_IDORG_ID curl -sS -X POST \ -H Authorization: Bearer ${TOKEN} \ -H Content-Type: application/json \ ${BASE_URL}/projects/${PROJECT_ID}/locations/${LOCATION}/evaluations?evaluationId${EVALUATION_ID}requestId${REQUEST_ID} \ -d - JSON { description: SQL Server production validation, evaluationType: SQL_SERVER, resourceFilter: { scopes: [organizations/ORG_ID] }, schedule: 0 0 * * *, ruleNames: [ projects/PROJECT_ID/locations/LOCATION/rules/RULE_ID ], labels: { owner: platform, workload: sql-server } } JSON通用最佳实践评估只需把evaluationType改为OTHER、EVALUATION_ID改为如general-posture-prod、标签改为baseline: general项目级回退方案把scopes改为[projects/PROJECT_ID]。运行前替换PROJECT_ID、LOCATION、ORG_ID与RULE_ID。6.4 操作轮询、运行评估与结果查询创建/更新返回长操作轮询操作对象直到响应中出现done: true若出现 error先修复该错误再用新的 request ID 重试export OPERATION_NAMEprojects/${PROJECT_ID}/locations/${LOCATION}/operations/OPERATION_ID curl -sS \ -H Authorization: Bearer ${TOKEN} \ ${BASE_URL}/${OPERATION_NAME}手动运行评估注意executions:run端点export EVALUATION_IDsql-server-prod export EXECUTION_IDmanual-run-001 export REQUEST_ID$(uuidgen | tr [:upper:] [:lower:]) curl -sS -X POST \ -H Authorization: Bearer ${TOKEN} \ -H Content-Type: application/json \ ${BASE_URL}/projects/${PROJECT_ID}/locations/${LOCATION}/evaluations/${EVALUATION_ID}/executions:run \ -d - JSON { executionId: ${EXECUTION_ID}, execution: { labels: { trigger: manual } }, requestId: ${REQUEST_ID} } JSON后续查询链路与客户端库资源模型一一对应# 列出运行记录 curl -sS \ -H Authorization: Bearer ${TOKEN} \ ${BASE_URL}/projects/${PROJECT_ID}/locations/${LOCATION}/evaluations/${EVALUATION_ID}/executions # 列出发现项 export EXECUTION_IDEXECUTION_ID curl -sS \ -H Authorization: Bearer ${TOKEN} \ ${BASE_URL}/projects/${PROJECT_ID}/locations/${LOCATION}/evaluations/${EVALUATION_ID}/executions/${EXECUTION_ID}/results # 列出被扫描资源 curl -sS \ -H Authorization: Bearer ${TOKEN} \ ${BASE_URL}/projects/${PROJECT_ID}/locations/${LOCATION}/evaluations/${EVALUATION_ID}/executions/${EXECUTION_ID}/scannedResources删除评估时仅在需要连同子资源一起删除时才使用forcetrueexport REQUEST_ID$(uuidgen | tr [:upper:] [:lower:]) curl -sS -X DELETE \ -H Authorization: Bearer ${TOKEN} \ ${BASE_URL}/projects/${PROJECT_ID}/locations/${LOCATION}/evaluations/${EVALUATION_ID}?requestId${REQUEST_ID}forcetrue若客户端库尚未暴露某个 Workload Manager 资源可直接参考 REST 文档使用 deployments、actuations、discovered profiles、insights、operations 等端点由于生成的客户端库与 REST 资源落地时间可能不同自动化要保持防御性。七、通用最佳实践与自定义 Rego 规则当需要 Google Cloud 通用最佳实践态势检查、云安全态势管理CSPM、FinOps 态势或可靠性态势时在客户端库自动化中统一走OTHER评估路径并在目标 location 中列规则验证源自 general-best-practices.md7.1 内置目录与三大态势主题Google Cloud 最佳实践参考文档是公开通用目录的事实来源覆盖跨产品规则并为不合规资源分配严重级别目录横跨 API keys、AlloyDB、BigQuery、Cloud Billing、Cloud DNS、Cloud KMS、Cloud Pub/Sub、Cloud SQL、Cloud Storage、Compute Engine、Filestore、GKE、IAM、Memorystore for Redis Cluster、OS Config、Resource Manager、Secret Manager、Spanner、Vertex AI 等。该目录是动态的——应先通过 API 列出目标项目与 location 的规则再按规则名、资产类型、严重级别和标签选择。严重级别用于确定修复优先级CRITICAL可能影响可用性、数据完整性或受支持配置立即处理HIGH排入下一个维护窗口修复MEDIUM列入近期运营加固队列LOW作为态势信号、清理项或治理报告。通用目录横跨三大运营主题安全公网暴露、API key 限制、默认服务账号、外部 IP、CMEK、证书状态、IAM 卫生、可靠性备份、PITR、自动存储增长、维护策略、不受支持的设置、FinOps标签、生命周期设置、存储过期、超规模资源、历史趋势。建议从小基线规则集起步在理解首批运行输出后再按标签或资产类别扩展。7.2 自定义组织规则内置目录没有编码内部强制策略时使用 Rego 自定义规则。常见用例强制CostCenter/Owner/Environment标签、禁止未批准区域、封禁 Compute Engine 默认服务账号、要求私网 VM 或禁止外部 IP、执行组织专属标签/网络/备份约定。自定义规则元数据应包含DETAILS策略简述、SEVERITY自定义级别、ASSET_TYPE受支持的 Cloud Asset Inventory 资产类型、TAGS规则过滤标签。自定义规则评估的注意事项Rego 文件上传到 Cloud Storage bucket作为custom_rules_bucket传入创建/运行自定义规则评估的项目需启用 Service Usage API 与 Cloud Monitoring API创建评估前先列出 bucket 中的规则评估范围收敛到能回答问题的最小项目、folder、组织、标签集或资源 ID 模式大目录可拆分到多个评估公开文档列出每个评估最多 300 条自定义规则自定义规则的 BigQuery 结果导出必须使用区域性数据集不支持多区域数据集。7.3 运营节奏手动跑一次通用最佳实践扫描建立基线态势先分诊 CRITICAL 与 HIGH 发现按资产类型与 owner 分组在规则范围与告警量经过验证后再添加每日或每周调度需要历史趋势分析或仪表板时导出到区域性 BigQuery 数据集为内置目录没有的内部控制添加自定义 Rego 规则。启用高频调度或组织级广域导出前先估算评估量与 BigQuery 存储/查询成本。八、IAM 角色矩阵与安全实践iam-security.md 给出了完整的角色矩阵与数据面注意事项角色用途roles/workloadmanager.viewer读取 Workload Manager 资源roles/workloadmanager.evaluationViewer读取评估资源与结果roles/workloadmanager.evaluationAdmin创建、更新、运行、删除评估与运行roles/workloadmanager.adminWorkload Manager 完整管理roles/workloadmanager.deploymentViewer读取 REST API 暴露的部署资源roles/workloadmanager.deploymentAdmin管理 REST API 暴露的部署资源roles/workloadmanager.insightWriter写/删除 REST API 暴露的 insightsroles/workloadmanager.workloadViewer查看工作负载资源与元数据roles/workloadmanager.worker服务托管操作的 worker 执行角色roles/workloadmanager.serviceAgent服务代理角色不得授予人类或一般自动化身份角色选择规则列出规则/评估/运行/结果/被扫描资源用viewer或evaluationViewer创建、更新、运行评估用evaluationAdmin跨 Workload Manager 资源的完整管理才用adminfolder/组织级范围只在项目级范围无法回答时才在该层级授权。服务身份有两类必须区分Google 托管服务代理评估/校验运行评估时服务代理service-PROJECT_NUMBERgcp-sa-workloadmanager.iam.gserviceaccount.com扫描评估范围内的 GCP 资源需要在评估范围的项目/folder/组织层级授予roles/viewer或roles/browser以读取 Compute Engine、Cloud SQL、GKE 等资源的配置元数据部署服务账号自动化/部署若使用 Workload Manager 自动化部署如部署 SAP agent必须在项目中创建专用的客户托管部署服务账号并具备在 Compute Engine VM 上写元数据、部署 agent 的权限。数据面处理要点结果可能包含资源名、服务账号、标签、观测到的设置、违规消息、修复命令与文档 URLBigQuery 导出数据集应设置受限的数据集级 IAM日志与客户端库调试输出可能包含请求元数据不要将其持久化到宽权限位置周期性评估应使用专用自动化服务账号而非用户凭据。删除与幂等实践create/update/run/delete 请求尽量带request_idforcetrue仅用于确需同时删除子运行删除前先列出 executions确认哪些结果需要保留或导出。MCP 侧文档还补充了安全规则变更操作必须要求明确的项目、location、评估 ID 与资源范围删除前要求确认创建/更新评估前先呈现 BigQuery 导出目标与 CMEK 密钥名。九、小结把 Workload Manager 纳入自动化体系的三个要点第一路径唯一Workload Manager 的公开自动化只有两条路径——google-cloud-workloadmanager客户端库Python GA / Go与workloadmanager.googleapis.com/v1REST APIgcloud只承担认证、API 启用、IAM 与令牌没有服务专属命令组也没有已文档化的公开 MCP server。第二范围最小化先用list_rules对齐规则目录用ResourceFilterscopes 标签/服务账号过滤收敛扫描半径组织级授权只作为项目级不可行时的升级路径角色从viewer起步按需升到evaluationAdmin。第三异步与幂等所有 create/update/run 都返回长操作必须轮询或带operation.result超时写入请求带request_id自定义规则注意 300 条上限与区域性 BigQuery 数据集约束。按照 SKILL.md 的参考目录组织好的这 8 份文档可以直接作为 Agent 或工程师在 Workload Manager 上的可执行知识基线。【免费下载链接】skillsAgent Skills for Google products and technologies项目地址: https://gitcode.com/GitHub_Trending/skills29/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门