Skip to main content

How to manage Account Settings

Manage and update AWS account settings and budgets by modifying and reapplying the account-settings component.

Problem

We want to update Account Settings for a given AWS Account

Solution

TL;DR:
Update the account-settings component

Account Settings are managed by the account-settings component and deployed for each account. Update the account-settings catalog and reapply the component.

For example to add password requirements, add the following to stacks/catalog/account-settings.yaml:

components:
terraform:
account-settings:
backend:
s3:
role_arn: null
vars:
enabled: true
minimum_password_length: 20
maximum_password_age: 120

Then reapply the account-settings component for the given account. example tenant and foo stage are used in this example

atmos terraform apply account-settings -s example-gbl-foo

How to set Budgets

Budgets are also managed with the account-settings component. In order to create budgets, enable budgets in the account-settings component

info

Budgets were added to the account-settings component in early 2022. Make sure the component contains budgets.tf. If not, pull the latest from the upstream modules.

components:
terraform:
account-settings:
vars:
enabled: true
budgets_enabled: true
budgets_notifications_enabled: true
budgets_slack_webhook_url: https://url.slack.com/abcd/1234
budgets_slack_username: AWS Budgets
budgets_slack_channel: aws-budgets-notifications
budgets:
- name: 1000-total-monthly
budget_type: COST
limit_amount: "1000"
limit_unit: USD
time_unit: MONTHLY
- name: s3-3GB-limit-monthly
budget_type: USAGE
limit_amount: "3"
limit_unit: GB
time_unit: MONTHLY

Then reapply the account-settings component for all accounts. This example only applies to one account. Repeat this step for all accounts

atmos terraform apply account-settings -s example-gbl-foo