Budget Guardrails

Budget Guardrails

Overview

Budget guardrails provide a mechanism for tracking current spend against a planned target, and taking appropriate actions to help control cost.

Current and forecast spend APIs are used to get information on the budget. This is currently available for AWS only.

Policy Types

Budget policies can be broadly classified into two categories:

Policy Types Description

Policy Description
AWS > Account > Budget > Enabled Determine whether budget reporting is enabled for the account or not.
AWS > Account > Budget > Target The budget target for the AWS Account in US Dollars.
AWS > Account > Budget > State Calculates the current status of the set budget. The default policy setting is generally sufficient.
AWS > Account > Permissions > Lockdown > Budget Configure lockdown policies to restrict APIs based on the budget state (when the current spend exceeds a defined threshold).
AWS > Account > Permissions > Lockdown > Budget > Restricted APIs A list of APIs that is restricted when the budget reaches the defined state.
{provider} > {service} > {resource type} > Active > Budget The policy allows you to force {resource type} to the inactive status based on the current budget state, as defined in AWS > Account > Budget > State.
{provider} > {service} > {resource type} > Approved > Budget The policy allows you to set {resource type} to Not approved based on the current budget state, as defined in AWS > Account > Budget > State.

Policy Types Definition

Account Level Policies

Budget States

State Description
Shutdown Budget is completely spent, or trending significantly over. No more money is available. All spending must cease, even if it results in degraded service.
Critical Budget is completely spent, or trending significantly over. Urgent action is needed to reduce spend.
Over Current or forecast spend exceeds the budget target.
On target Current and forecast spend are in line with the budget target. No action is required.
Under Current and forecast spend are lower than projected.
Unused Current and forecast spend is so low that it appears that the account may not be in-use.
Unknown Current and forecast spend is unknown for the account.

Note:

Account Level Preventive - Permissions

critical:
  - ec2:RunInstance
  - ec2:StartInstance
  - rds:StartDB*
  - redshift:createcluster

Resource Level Policies

The Active > Budget policy has a consistent form: {Provider} > {service} > {resource} > Active > Budget

The values for this policy reflect when it should be inactive. The basic form is:

    Skip
    Force inactive if Budget > State is Over or higher
    Force inactive if Budget > State is Critical or higher
    Force inactive if Budget > State is Shutdown

The Approved > Budget policy has a consistent form: {Provider} > {service} > {resource} > Approved > Budget

The values for this policy reflect when it should be unapproved. The basic form is:

    Skip
    Unapproved if Budget > State is Over or higher
    Unapproved if Budget > State is Critical or higher
    Unapproved if Budget > State is Shutdown

Example: AWS > Account > Budget > Enabled

First, assume that the monthly actual spent becomes $ 1001. The following policies have been configured in Guardrails:

In order, these policies will evaluate account spending is over the budget and has entered the Over state. The policy evaluation of Budget > Enabled results the control being in ALARM state.