AWS FinOps Budget Alerts on Slack

This comprehensive guide shows you how to set up AWS cost budget alerts delivered to Slack. You’ll receive real-time notifications when your AWS spending exceeds defined thresholds, helping you monitor cloud costs more effectively.

Architecture Overview

Complete Flow

AWS Budgets (monitors spending)
Amazon SNS Topic (receives alerts)
┌──┴──┐
↓ ↓
AWS Chatbot → Slack Channel (team notifications)

How It Works

  1. AWS Budgets tracks your spending against defined limits
  2. Amazon SNS receives alerts when thresholds are crossed
  3. AWS Chatbot processes and sends formatted messages to Slack

Prerequisites

Required for Both Integrations

AWS Account with permissions for:

  • AWS Budgets
  • Amazon SNS
  • IAM (Identity and Access Management)

For Slack Integration

Slack Workspace where you have permission to:

  • Add apps/integrations
  • Create or access channels
  • Configure webhooks

Step 1.1: Create Your AWS Budget

First, let’s set up the budget that will trigger our alerts.

Via AWS Console

  1. Navigate to AWS Budgets
    • Go to AWS Console
    • Search for “Billing and cost Management”
    • Select Budget under the Budget and planning tab by the left bane
    • Click “Monthly Create budget” under templates
  2. Choose Budget Type
    • Select “Cost budget” (most common)
    • Click “Next”
  3. Set Budget Details
    • Budget name: Monthly-Production-Budget (choose a descriptive name)
    • Period: Monthly
    • Budget effective dates: Recurring budget
    • Start month: Current month
    • Budgeting method: Fixed
    • Budgeted amount: Enter your monthly budget (e.g., 100 for $3,000)
  4. Configure Budget Scope (optional)
    • Filter by specific services, tags, or regions
    • Or leave as “All AWS services” to monitor total spending
  5. Click “Next” – Don’t configure alerts yet; we’ll do this after setting up Chatbot

Via AWS CLI (Alternative)

aws budgets create-budget \
--account-id YOUR_ACCOUNT_ID \
--budget file://budget.json

Create budget.json:

{
"BudgetName": "Monthly-Production-Budget",
"BudgetLimit": {
"Amount": "3000",
"Unit": "USD"
},
"TimeUnit": "MONTHLY",
"BudgetType": "COST"
}

Important: Don’t set up alert notifications yet. We’ll add those after configuring AWS Chatbot.

Step 1.2: Set Up Slack Channel

  1. Create a Dedicated Channel (recommended)
    • In Slack, create a new channel: #aws-budget-alerts
    • Make it public (easier for initial setup)
    • You can make it private later if needed
  2. Get Channel Information
    • Right-click on the channel name
    • Choose “Copy link”
    • The link looks like: https://yourworkspace.slack.com/archives/C01ABCDEF123
    • The Channel ID is the last part: C01ABCDEF123
    • Save this ID for later

Step 1.3: Configure AWS Chatbot with Slack

Method A: Using AWS Console (Recommended for Beginners)

  1. Navigate to AWS Chatbot
    • Go to AWS Console
    • Search for “AWS Chatbot” or “Amazon Q Developer in chat applications”
    • You’ll be redirected to the new Amazon Q Developer console (AWS Chatbot is now part of Amazon Q)
  2. Configure Slack Client
    • Click “Configure new client”
    • Select “Slack”
    • Click “Configure”
  3. Authorize Slack Workspace
    • From the dropdown, select your Slack workspace
    • Click “Allow” to authorize AWS Chatbot
    • You’ll be redirected back to AWS Console
  4. Note Your Workspace ID
    • After authorization, you’ll see “Workspace details”
    • Copy the Workspace ID (starts with T...)
    • Save this for reference
  5. Configure Slack Channel
    • Click “Configure new channel”
    Configuration details:
    • Configuration name: budget-alerts-slack (must be unique in your account)Logging: Enable “Publish logs to Amazon CloudWatch Logs” (recommended)
    Slack channel:
    • Channel type: Choose “Public” or “Private”
    • For Public: Select your channel from dropdown
    • For Private: Paste the Channel ID you copied earlier in “Channel URL” field
  6. Configure PermissionsRole setting: Choose “Channel IAM role” (recommended) Channel IAM role:
    • Select “Create new role”Role name: AWSChatbot-BudgetAlerts-Role
    Policy templates:
    • Select “Notification permissions”
    • This provides read and list permissions for CloudWatch, SNS, and logs
  7. Configure SNS Topics: We’ll create the SNS topic in the next step, then come back to add it here.
    • For now, click “Save” or “Create” to finish the channel configuration

Step 1.4: Create and Configure SNS Topic for Budget Alerts

  1. Create SNS Topic
    • Go to Amazon SNS consoleClick “Topics” → “Create topic”
    Details:
    • Type: Standard
    • Name: aws-budget-alerts
    • Display name: AWS Budget Alerts
  2. Configure Access Policy Click “Edit” after creation, then update the access policy:
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Sid": "AWSBudgetsPublish",
         "Effect": "Allow",
         "Principal": {
           "Service": "budgets.amazonaws.com"
         },
         "Action": "SNS:Publish",
         "Resource": "arn:aws:sns:REGION:ACCOUNT_ID:aws-budget-alerts"
       },
       {
         "Sid": "AllowChatbotSubscribe",
         "Effect": "Allow",
         "Principal": {
           "Service": "chatbot.amazonaws.com"
         },
         "Action": [
           "SNS:Subscribe",
           "SNS:Receive"
         ],
         "Resource": "arn:aws:sns:REGION:ACCOUNT_ID:aws-budget-alerts"
       }
     ]
   }

Replace:

  • REGION: Your AWS region (e.g., us-east-1)
  • ACCOUNT_ID: Your AWS account number
  • aws-budget-alerts: Your topic name if different
  1. Copy the SNS Topic ARN
    • It looks like: arn:aws:sns:us-east-1:123456789012:aws-budget-alerts
    • Save this for the next steps

Step 1.5: Link SNS Topic to AWS Chatbot

  1. Return to AWS Chatbot Console
    • Find your Slack channel configuration
    • Click “Edit”
  2. Add SNS Topic
    • In “SNS Region”, select your region
    • In “SNS topics”, select aws-budget-alerts
    • Click “Save”
  3. Verify Subscription
    • Go back to SNS console
    • Click on your topic aws-budget-alerts
    • Go to “Subscriptions” tab
    • You should see a subscription with “AWS Chatbot” as the endpoint
    • Status should be “Confirmed”

Step 1.6: Configure Budget Alert Thresholds

Now let’s connect your budget to the SNS topic.

  1. Go to AWS Budgets Console
    • Find your budget
    • Click “Edit”
  2. Configure Alert Thresholds
    • Scroll to “Configure alerts”
    • Click “Add an alert threshold”
  3. Create First Alert (80% Actual Spend)Alert 1:
    • Threshold: 80 %
    • Threshold type: Actual (costs you’ve already incurred)
    • Email recipients: Your email (optional)
    • Amazon SNS alerts: Select your SNS topic ARN aws-budget-alerts
  4. Create Second Alert (100% Forecasted Spend) Click “Add another alert threshold” Alert 2:
    • Threshold: 100 %
    • Threshold type: Forecasted (predicted costs by month end)
    • Amazon SNS alerts: Select your SNS topic ARN aws-budget-alerts
  5. Save the Budget

Step 1.7: Test Slack Notifications

Test via SNS

  1. Go to SNS Console
    • Select your topic aws-budget-alerts
    • Click “Publish message”
  2. Create Test Message Subject:
   AWS Budgets: Monthly-Production-Budget has exceeded 80% threshold

Message body:

   AWS Budget Notification January 19, 2026

   AWS Account 123456789012

   You requested that we alert you when the ACTUAL Cost associated with your Monthly-Production-Budget is greater than 80% of your budgeted amount.

   Budget Name: Monthly-Production-Budget
   Budget Type: Cost budget
   Budgeted Amount: $3,000.00
   Alert Type: ACTUAL
   Alert Threshold: > 80%
   ACTUAL Amount: $2,450.00

   You can find additional details at:
   https://console.aws.amazon.com/billing/home#/budgets
  1. Publish the Message
  2. Check Slack
    • Within 30-60 seconds, you should see a notification in your #aws-budget-alerts channel
    • AWS Chatbot formats the message nicely with colors and formatting

Expected Slack Message

You should see something like:

AWS Budget Notification
AWS Budgets: Monthly-Production-Budget has exceeded 80% threshold
AWS Account 123456789012
Budget Name: Monthly-Production-Budget
Budget Type: Cost budget
Budgeted Amount: $3,000.00
Alert Type: ACTUAL
Alert Threshold: > 80%
ACTUAL Amount: $2,450.00
[View in Console]

Step 1.8: Invite AWS Chatbot to Your Slack Channel

For the bot to send messages:

  1. In Slack, type:
   /invite @Amazon Q
  1. Or manually:
    • Click on channel details
    • Click “Integrations”
    • Click “Add apps”
    • Search for “AWS”
    • Add to channel

Testing The Channels

I tested this by reducing the budget to a lower value that I have currently Spent and I get the notification from my App

Advanced Configurations

Multiple Slack Channels

Send different alerts to different channels:

  1. Create multiple AWS Chatbot configurations
    • #aws-budget-critical for high-priority alerts
    • #aws-budget-warnings for lower thresholds
    • #finance-team for executive summaries
  2. Create separate SNS topics
    • critical-budget-alerts
    • warning-budget-alerts
  3. Configure different budget thresholds to publish to different topics

Summary & Next Steps

What You’ve Accomplished

Congratulations! You now have a comprehensive FinOps alerting system with:

AWS Budgets monitoring your cloud spending
Slack notifications for team collaboration and visibility
Multi-threshold alerts (actual and forecasted spending)
Automated monitoring that runs 24/7

Your Alert Flow
Spending Threshold Exceeded
AWS Budgets detects it
┌──┴──┐
↓ ↓
Slack → Team sees and discusses

Leave a comment

I’m Adedeji

I am a Microsoft MVP. Welcome to my blog. On this blog, I will be sharing my knowledge, experience and career journey. I hope you enjoy.

Let’s connect