From 7e83c9af488a8b914a8e12420486e2c75641a7e7 Mon Sep 17 00:00:00 2001 From: Yannick Date: Fri, 29 Mar 2024 15:27:28 +0100 Subject: [PATCH] add parameter groups and labels --- README.md | 19 ++++++++----------- stack.yml | 25 +++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index fb137ce..aa26475 100644 --- a/README.md +++ b/README.md @@ -20,11 +20,9 @@ All configuration done by this stack should easily fit in the free tier itself. ## Features - SNS Topic with a list of email subscribers that get alarms and notifications - - AWS Budgets - Sends alarms when a pre-set daily, weekly or monthly budget is passed. - Currently just a daily amount configured - - Root User Alarms - Send a notice every 24 hours if root user.. - does not have MFA configured @@ -32,7 +30,6 @@ All configuration done by this stack should easily fit in the free tier itself. - (MVP) Send a notice whenever the root user is used - This is already in the code as Eventbridge Event and forwarded to SNS - Looking into sending this to the lambda and creating a readable event - - CloudTrail - Creates a CloudTrail-trail - (Planned) Monitors if there are more than 1 trails in (any) region @@ -40,14 +37,14 @@ All configuration done by this stack should easily fit in the free tier itself. ## FAQ -- Q: Why is this called the "aws free tier" stack? I dont see anything to do with the free tier - A: Because this stack aims to solve some issues that people have that rely on the free tier, and are new users to AWS. It monitors some basic security features and sets up some basic cost monitoring. On online platforms there are many first time users who's accounts are compromised or accidentally run something that they can't afford. This stack should help reduce the blast radius. +### Why is this called the "aws free tier" stack? I dont see anything to do with the free tier +Because this stack aims to solve some issues that people have that rely on the free tier, and are new users to AWS. It monitors some basic security features and sets up some basic cost monitoring. On online platforms there are many first time users who's accounts are compromised or accidentally run something that they can't afford. This stack should help reduce the blast radius. -- Q: Why are you using CloudFormation and not CDK, Terraform or something else? - A: Because CloudFormation has the best new-user experience. Just click the link and follow the wizard. As this stack is created for new users, this is the best solution +### Why are you using CloudFormation and not CDK, Terraform or something else? +Because CloudFormation has the best new-user experience. Just click the link and follow the wizard. As this stack is created for new users, this is the best solution -- Q: Why does the stack need to be deployed in US-EAST-1? - A: Some services, like IAM, only publish their events in US-EAST-1. As we want to monitor these services, we need to deploy resources in that region. +### Why does the stack need to be deployed in US-EAST-1? +Some services, like IAM, only publish their events in US-EAST-1. As we want to monitor these services, we need to deploy resources in that region. -- Q: I've got some ideas, can I help - A: Yes! Feel free to open an issue or a PR +### I've got some ideas, can I help? +Yes! Feel free to open an issue or a PR diff --git a/stack.yml b/stack.yml index 96f60ff..efdc65c 100644 --- a/stack.yml +++ b/stack.yml @@ -2,14 +2,35 @@ Description: AWS Free Tier Stack helps you set up all the basics you need to saf Transform: 'AWS::LanguageExtensions' AWSTemplateFormatVersion: 2010-09-09 + +Metadata: + Source: + Description: "https://github.com/yannickvr/aws-free-tier-stack" + + AWS::CloudFormation::Interface: + ParameterGroups: + - Label: + default: "Email Configuration" + Parameters: + - Email + - Label: + default: "Budget Configuration" + Parameters: + - DailyBudgetAmount + ParameterLabels: + Email: + default: "Email addresses to receive budget alerts. Comma separated, e.g. 'one@example.com,two@example.com'" + DailyBudgetAmount: + default: "Daily Budget amount to receive alerts for, in dollars" + Parameters: Email: Type: CommaDelimitedList - Description: Email addresses to receive budget alerts, comma separated + Description: "Email addresses:" Default: 'email@example.com' DailyBudgetAmount: Type: Number - Description: Daily Budget amount to receive alerts for + Description: "Daily Budget:" Default: 1 Conditions: