Skip to main content

Get Started

Last updated on

tip

Asset Governance requires writing YAML-based policies using Cloud Custodian syntax. If you are new to YAML or Cloud Custodian, we recommend reviewing the Cloud Custodian documentation before getting started.


  • Configure CACM Connector

    • Navigate to Setup > Cloud Providers > Add a Connector
    • Select your cloud provider (AWS, Azure, or GCP)
    • During connector setup, ensure you select "Cloud Governance" under "Choose Requirements".
  • Verify Required Permissions

    • Ensure your connector has all required permissions for each cloud provider:
      • For AWS: Verify IAM roles include necessary read permissions for resource discovery
      • For Azure: Confirm service principal has appropriate Reader roles
      • For GCP: Check service account permissions for resource monitoring

After connector configuration, CACM takes up to 24 hours to collect data and identify resources.


Key Concepts

Cloud Asset Governance operates through four essential concepts working together: Rules, Rule Sets, Enforcements, Evaluations.

info

Governance Rules are different from Perspective and Cost Category Rules.

Rules are set of instructions you write in form of code to manage your cloud resources automatically. A Rule is essentially a file with a set of logic that you can run on your cloud infrastructure.

Example: Suppose you want all your EBS volumes to use the newer, cheaper gp3 type instead of gp2.

  • Without rules: you'd have to manually check every volume and upgrade it.
  • With a rule: the system finds all gp2 volumes and migrates them to gp3 for you.

What makes up a Rule: Ideally, rules contain policies which include resource, filters, and actions. A rule is written in YAML format. Rules can include multiple policies.

  • A policy is the overall instruction and consists of filters and actions that are applied to a specific type of cloud resource.

  • A resource is the type of cloud resource or service on which the rule will be run with the actions and filters, such as Azure VMs, AKS, Cosmos DB, etc.

  • A filter, as the name suggests, is a criteria used to narrow down the results based on the attributes. These attributes can include anything such as tags, metadata, or any other resource property provided by you. When the filter is applied, only those resources that match the criteria specified in the filter are given as a result.

  • Actions are operations performed on the filtered resources. Actions include things like terminating an azure vm, deleting an azure storage-container, or sending an email notification.

So essentially, a Rule is a file that includes logic defined by a policy that performs certain actions on the resource based on the filters provided by the user.

info

We now have Terraform support for managing Governance Rules. Please see here for more details.


Cost Correlation

Cost Correlation in Harness CACM connects governance with their actual cost impact, allowing you to quantify the financial implications.

What's supported

CloudCost CorrelationFirst Class Region Filter SupportRecommendationsMulti-PolicyAutostopping (EC2/VM/Instance)Perspective Preferences
AWSaws.ec2, aws.ebs, aws.rds, aws.ebs-snapshot, aws.elastic-ip, aws.elb, cache-cluster, s3, redshift, redshift-snapshot, aws.log-group, aws.rds-snapshot, aws.nat-gateway, aws.sqs, aws.firehose, aws.dynamodb-tableYes ✅Yes ✅Yes ✅Yes ✅Yes ✅
GCPgcp.instance, gcp.disk, gcp.snapshot, gcp.sql-instance, gcp.image, gcp.loadbalancer-address, gcp.loadbalancer-forwarding-rule, gcp.bucket, gcp.gke-cluster, gcp.bq-dataset, gcp.function, gcp.redis, gcp.cloud-run-service, gcp.dataflow-jobNo ❌Yes ✅Yes ✅No ❌Yes ✅
AzureEvery Resource in Billing ReportYes ✅Yes ✅Yes ✅No ❌Yes ✅
What "Not Supported" Means

When a feature shows ❌ (not supported), Harness can still compute costs for filtered resources in that category. However, savings cannot be predicted without a supported terminal action (stop, delete, release, etc.). See the Savings Computation section below for details on which actions enable savings computation.

Cost Impact/Cost Co-relation

When you click on Refresh button on the screen, CACM refreshes or updates the cost of all resources in the evaluation. It is exposed to resolve cases where the cost for any resource is not yet part of CUR, Billing Report, or Billing Data (due to newly deployed resources, etc.). You can hit the refresh cost button only once every 30 minutes for any evaluation.

note
  • Cost co-relation for GCP would work only if detailed billing export is setup.
  • Changes made to "Perspective Preferences" in Account Settings of Cloud & AI Cost Management will be now applied to Asset Governance. In case of AWS, previously, costs were taken as "Unblended". Now, users can select it to be Blended, Net-Amortised, Amortised, Effective or Unblended. Kindly note, it might take up to 30 minutes for costs to be refreshed after changes are applied.
  • Azure Preferences set in Account Settings will now also be honored.
Savings Computation

Harness computes savings for governance rules when a terminal action (stop, delete, release, etc.) is applied to resources. The savings depend on:

  • The cost of the filtered resource
  • The savings percentage set on the governance rule
  • A supported terminal action being applied

For resources where terminal actions are not supported, Harness can still compute costs for filtered resources, but cannot predict savings.

View Savings Supported Actions by Resource Type
Resource NameSavings Supported Actions
aws.app-elbdelete
aws.cache-clusterdelete
aws.dynamodbdelete
aws.ebsdelete, modify
aws.ebs-snapshotdelete, modify
aws.ec2stop, terminate
aws.eiprelease
aws.elasticsearchdelete
aws.elbdelete
aws.emrterminate
aws.emr-serverless-appdelete
aws.enidelete
aws.firehosedelete
aws.glue-crawlerdelete
aws.glue-jobdelete
aws.insight-ruledelete
aws.lambdadelete
aws.log-groupdelete
aws.nat-gatewaydelete
aws.opensearch-serverlessdelete
aws.rdsstop, modify, resize, modify-db, delete
aws.rds-clusterdelete, stop
aws.rds-cluster-snapshotdelete
aws.rds-snapshotdelete
aws.redshiftpause, delete
aws.redshift-snapshotdelete
aws.s3delete, set-intelligent-tiering, configure-lifecycle
aws.sqsdelete
aws.vpc-endpointnot supported
aws.workspacesterminate
azurestop, delete, poweroff, resize
gcp.bq-datasetnot supported
gcp.bucketnot supported
gcp.cloud-run-servicenot supported
gcp.dataflow-jobnot supported
gcp.diskdelete
gcp.functiondelete
gcp.gke-clusterdelete
gcp.imagedelete
gcp.instancestop, delete, suspend
gcp.loadbalancer-addressdelete
gcp.loadbalancer-forwarding-rulenot supported
gcp.redisnot supported
gcp.snapshotdelete
gcp.sql-instancedelete, stop

Filters in Evaluations List Page

You can create filters to view selected rules:

  1. Select the filter icon.

  2. Enter a name.

  3. Select who can edit and view the filter.

  4. Select one or more of the following criteria to filter the results:

    • Rules
    • Rule Sets
    • Enforcements
    • Minimum Cost Impact ($)
    • Cloud Provider
    • Azure Filters
      • Azure Subscription
      • Target Regions
  5. Select Apply.

note

Number of evaluations for which we can compute cost impact is 1,50,000/ Day.

Bulk Export Evaluations

Use Bulk Export to download up to 100 evaluation results (AWS, GCP, or Azure) in a single ZIP file. Export is available when all selected evaluations are in a terminal state (Succeeded or Failed).

How to export

  1. Click Export.
  2. Choose the artefacts to include:
    • metadata.json: summary of each evaluation
    • resources.json: resources identified
    • custodian-run.log: execution log
    • actioned-resources.json: resources acted on
  3. Click Generate Report.

The ZIP file is organised by evaluation ID (or by policy sub-folders for multi-policy runs) so you can quickly locate results. You can also export from the Test Terminal when evaluating multiple targets.