Workload Manager Basics
Workload Manager validates enterprise workloads against Google Cloud best
practices and recommendations. The public client libraries are centered on
evaluations: define a resource scope, choose built-in or custom rules, run an
evaluation, then inspect results and scanned resources.
Use This Flow
flowchart LR
Rules["List rules"] --> Eval["Create or update evaluation"]
Resources["Project, folder, or org scope"] --> Eval
Eval --> Run["Run evaluation"]
Run --> Results["Inspect evaluation results"]
Results --> Remediate["Remediate findings"]
Results --> Export["Optional BigQuery export"]
Core API Constraints
To ensure compatibility, security, and successful integration:
- Public Surface Only: You MUST strictly interact with Workload Manager
using the official public
google-cloud-workloadmanager client library or
the public REST API (workloadmanager.googleapis.com/v1).
- No Internal or Undocumented APIs: Do NOT attempt to use internal RPC
protocols, private service backends, or undocumented discovery mechanisms.
They are not supported for public integrations and will fail.
- No Service-Specific CLI: There is no public
gcloud workload-manager
CLI command group. Use gcloud only for authentication, IAM role
assignment, and fetching raw REST tokens.
- Sandbox Execution Robustness (Auth/Mock Fallbacks): When gcloud
authentication or Workload Manager API calls fail in sandboxed or restricted
environments (e.g., due to Context Aware Access token blocks, missing API
enablement, or
mock resources returning 404/403), immediately fall back to presenting
example code and static findings from your references instead of entering
retry loops. Present the correct client library code structure or REST API
payload example, clearly explain the auth or resource limitation, and list
typical rules or mock findings statically to satisfy the request.
Prerequisites
Enable the Workload Manager API:
gcloud services enable workloadmanager.googleapis.com --quiet
Authenticate locally using Application Default Credentials (ADC) before
using client libraries:
gcloud auth application-default login
Ensure the Workload Manager service agent has the required roles granted in
your project (mandatory for API/client library usage, see
IAM & Security).
Grant the least-privileged role needed for the task. Start with
roles/workloadmanager.viewer for read-only access to evaluation resources
and use roles/workloadmanager.evaluationAdmin or
roles/workloadmanager.admin only when creating, updating, running, or
deleting evaluations.
Quick Client Library Example
Use the Python client library for the first working automation path:
python3 -m pip install --upgrade google-cloud-workloadmanager
from google.cloud import workloadmanager_v1
project_id = "PROJECT_ID"
location = "LOCATION"
parent = f"projects/{project_id}/locations/{location}"
client = workloadmanager_v1.WorkloadManagerClient()
rules = client.list_rules(
request=workloadmanager_v1.ListRulesRequest(
parent=parent,
evaluation_type=workloadmanager_v1.Evaluation.EvaluationType.OTHER,
)
)
for rule in rules.rules:
print(rule.name, rule.display_name, rule.severity)
Reference Directory
Core Concepts: Evaluations, rules, results,
scanned resources, supported workload types, and API shape.
General Best Practices: Google Cloud
general best-practice posture checks, OTHER evaluation guidance, custom
Rego rules, and scale/automation patterns.
Client Libraries: Python and Go client
library examples for listing rules, creating evaluations, running
evaluations, and reading findings.
REST Usage: Direct REST examples for the public
Workload Manager API and operations polling.
Public CLI Status: No documented
service-specific gcloud workload-manager command group; use gcloud only
for auth, IAM, API enablement, and REST tokens.
Public MCP Status: No documented public
Workload Manager MCP server; use client libraries or REST API instead.
Setup Prerequisites: Terraform examples
only for adjacent prerequisites such as API enablement, IAM, BigQuery export
datasets, and KMS keys. This is not Workload Manager resource management.
IAM & Security: Workload Manager roles,
least-privilege guidance, service agents, data handling, and CMEK notes.
If product behavior or API fields are not covered here, check the current
Workload Manager product documentation and client library reference before
implementing.
Authoritative References
Additional Context
Source: google/skills → skills/cloud/workload-manager-basics/SKILL.md
1---2name: workload-manager-basics3description: >- Use this skill to manage Google Cloud Workload Manager evaluations, rules, scanned resources, and validation results by using public client libraries and the REST API. Use when you need to inspect workload best-practice rules, create and run evaluations for Google Cloud general best practices, SAP, SQL Server, or custom organizational rules, review violations, export results to BigQuery, or automate Workload Manager through client libraries because no service-specific public CLI or MCP server is available. Don't use for general Google Compute Engine instance management, VPC configuration, or standard IAM auditing.4---567# Workload Manager Basics89Workload Manager validates enterprise workloads against Google Cloud best10practices and recommendations. The public client libraries are centered on11evaluations: define a resource scope, choose built-in or custom rules, run an12evaluation, then inspect results and scanned resources.1314## Use This Flow1516```mermaid17flowchart LR18 Rules["List rules"] --> Eval["Create or update evaluation"]19 Resources["Project, folder, or org scope"] --> Eval20 Eval --> Run["Run evaluation"]21 Run --> Results["Inspect evaluation results"]22 Results --> Remediate["Remediate findings"]23 Results --> Export["Optional BigQuery export"]24```2526## Core API Constraints2728To ensure compatibility, security, and successful integration:2930* **Public Surface Only:** You MUST strictly interact with Workload Manager31 using the official public `google-cloud-workloadmanager` client library or32 the public REST API (`workloadmanager.googleapis.com/v1`).33* **No Internal or Undocumented APIs:** Do NOT attempt to use internal RPC34 protocols, private service backends, or undocumented discovery mechanisms.35 They are not supported for public integrations and will fail.36* **No Service-Specific CLI:** There is no public `gcloud workload-manager`37 CLI command group. Use `gcloud` only for authentication, IAM role38 assignment, and fetching raw REST tokens.39* **Sandbox Execution Robustness (Auth/Mock Fallbacks):** When gcloud40 authentication or Workload Manager API calls fail in sandboxed or restricted41 environments (e.g., due to Context Aware Access token blocks, missing API42 enablement, or43 mock resources returning 404/403), immediately fall back to presenting44 example code and static findings from your references instead of entering45 retry loops. Present the correct client library code structure or REST API46 payload example, clearly explain the auth or resource limitation, and list47 typical rules or mock findings statically to satisfy the request.4849## Prerequisites50511. Enable the Workload Manager API:5253 ```bash54 gcloud services enable workloadmanager.googleapis.com --quiet55 ```56572. Authenticate locally using Application Default Credentials (ADC) before58 using client libraries:5960 ```bash61 gcloud auth application-default login62 ```63643. Ensure the Workload Manager service agent has the required roles granted in65 your project (mandatory for API/client library usage, see66 [IAM & Security](references/iam-security.md)).67684. Grant the least-privileged role needed for the task. Start with69 `roles/workloadmanager.viewer` for read-only access to evaluation resources70 and use `roles/workloadmanager.evaluationAdmin` or71 `roles/workloadmanager.admin` only when creating, updating, running, or72 deleting evaluations.7374## Quick Client Library Example7576Use the Python client library for the first working automation path:7778```bash79python3 -m pip install --upgrade google-cloud-workloadmanager80```8182```python83from google.cloud import workloadmanager_v18485project_id = "PROJECT_ID"86location = "LOCATION"87parent = f"projects/{project_id}/locations/{location}"8889client = workloadmanager_v1.WorkloadManagerClient()9091rules = client.list_rules(92 request=workloadmanager_v1.ListRulesRequest(93 parent=parent,94 evaluation_type=workloadmanager_v1.Evaluation.EvaluationType.OTHER,95 )96)9798for rule in rules.rules:99 print(rule.name, rule.display_name, rule.severity)100```101102## Reference Directory103104- [Core Concepts](references/core-concepts.md): Evaluations, rules, results,105 scanned resources, supported workload types, and API shape.106107- [General Best Practices](references/general-best-practices.md): Google Cloud108 general best-practice posture checks, `OTHER` evaluation guidance, custom109 Rego rules, and scale/automation patterns.110111- [Client Libraries](references/client-library-usage.md): Python and Go client112 library examples for listing rules, creating evaluations, running113 evaluations, and reading findings.114115- [REST Usage](references/rest-usage.md): Direct REST examples for the public116 Workload Manager API and operations polling.117118- [Public CLI Status](references/public-cli-status.md): No documented119 service-specific `gcloud workload-manager` command group; use `gcloud` only120 for auth, IAM, API enablement, and REST tokens.121122- [Public MCP Status](references/public-mcp-status.md): No documented public123 Workload Manager MCP server; use client libraries or REST API instead.124125- [Setup Prerequisites](references/setup-prerequisites.md): Terraform examples126 only for adjacent prerequisites such as API enablement, IAM, BigQuery export127 datasets, and KMS keys. This is not Workload Manager resource management.128129- [IAM & Security](references/iam-security.md): Workload Manager roles,130 least-privilege guidance, service agents, data handling, and CMEK notes.131132If product behavior or API fields are not covered here, check the current133Workload Manager product documentation and client library reference before134implementing.135136## Authoritative References137138- [Workload Manager overview](https://docs.cloud.google.com/workload-manager/docs/overview)139- [Google Cloud best practices](https://docs.cloud.google.com/workload-manager/docs/reference/best-practices-general)140- [Workload Manager REST API](https://docs.cloud.google.com/workload-manager/docs/reference/rest)141- [About custom rules](https://docs.cloud.google.com/workload-manager/docs/evaluate/custom-rules/about-custom-rules)142- [Write custom rules using Rego](https://docs.cloud.google.com/workload-manager/docs/evaluate/custom-rules/rego-custom-rules)143- [Python package](https://pypi.org/project/google-cloud-workloadmanager/)144- [Workload Manager IAM roles](https://docs.cloud.google.com/iam/docs/roles-permissions/workloadmanager)145- For additional information, use the Developer Knowledge MCP server `search_documents` tool.146147## Additional Context148149- [Mastering cloud posture management with Workload Manager](https://discuss.google.dev/t/mastering-cloud-posture-management-security-reliability-and-finops-with-workload-manager/318258)150151---152153**Source:** [`google/skills`](https://github.com/google/skills) → `skills/cloud/workload-manager-basics/SKILL.md`