Step 1: Check your live infrastructure is CIS AWS v1.4 compliant
The later steps in this guide assume that you are upgrading from CIS AWS Foundations Benchmark v1.4 to v1.5.
Before you update to CIS AWS Foundations Benchmark v1.5, we strongly recommend that you confirm that your live infrastructure is compliant with the CIS AWS Foundations Benchmark v1.4.
If you do not have existing tooling in place to confirm this, then we suggest that you run the Steampipe CIS v1.4.0 check against your infrastructure.
In the final step in this guide, we suggest you run Steampipe to verify that your infrastructure is CIS AWS Foundations Benchmark v1.5 compliant.
1.1 Download and install Steampipe
Homebrew is the recommended way to install Steampipe for Mac. Instructions for different OS versions can be found at https://steampipe.io/downloads.
brew tap turbot/tap
brew install steampipe
Next install the AWS plugin with Steampipe:
steampipe plugin install aws
1.2 Configure Steampipe to analyze all regions
The file ~/.steampipe/config/aws.spc
, that is created by Steampipe, needs to be updated to analyze all regions,
by adding regions = ["*"]
. Otherwise, multi-regions resources, like AWS Config, IAM Access Analyzer will fail in the check:
connection "aws" {
plugin = "aws"
# You may connect to one or more regions. If `regions` is not specified,
# Steampipe will use a single default region using the same resolution
# order as the AWS CLI:
# 1. The `AWS_DEFAULT_REGION` or `AWS_REGION` environment variable
# 2. The region specified in the active profile (`AWS_PROFILE` or default)
regions = ["*"] # <- Update this line
# ... other existing config
}
1.3 Clone the Steampipe AWS Compliance Mod
The AWS Compliance Mod includes compliance checks for CIS AWS Foundations Benchmark v1.4 and v1.5.
Clone:
git clone https://github.com/turbot/steampipe-mod-aws-compliance.git
cd steampipe-mod-aws-compliance
1.4 Run the CIS v1.4.0 compliance check
Before running, an IAM credential report needs to be generated:
aws iam generate-credential-report
Run the check while authenticated to the AWS account you want to verify:
steampipe check aws_compliance.benchmark.cis_v140
Example:
aws-vault exec dev -- aws iam generate-credential-report
aws-vault exec dev -- steampipe check aws_compliance.benchmark.cis_v140
In case not all checks pass
If you have failing checks, then there are manual steps necessary to your infrastructure achieve CIS compliance.
After deploying a CIS Reference Architecture, there are steps that unfortunately can't be automated. See the Manual steps page, with step-by-step instructions to achieve complience.
If you Reference Architecture was deployed before February 9th 2023, there are two extra steps that need to be followed:
Enable ap-northeast-3
at your multi_region_common.hcl
Add ap-northeast-3
to the opt_in_regions
local variable in multi_region_common.hcl
.
# ----------------------------------------------------------------------------------------------------------------
# MULTIREGION CONVENIENCE LOCALS
# The following locals are used for constructing multi region provider configurations for the underlying module.
# ----------------------------------------------------------------------------------------------------------------
locals {
# Creates resources in the specified regions. The best practice is to enable multiregion modules in all enabled
# regions in your AWS account. To get the list of regions enabled in your AWS account, you can use the AWS CLI: aws
# ec2 describe-regions.
opt_in_regions = [
...
"ap-northeast-3"
]
# ... other vars omitted for brevity ...
There is a new region me-central-1
, that you will need to add in the multi_region_common.hcl
after doing the version updates.
Enable AWS Organizations metrics filter
If the 4.15
recommendation is also failing, it's because the filter is still not created in the account. So in the
files _envcommon/landingzone/account-baseline-app/account-baseline-app-base.hcl
and security/_global/account-baseline/terragrunt.hcl
,
Add this a variable:
inputs = {
# ... other variables above
cloudtrail_benchmark_alarm_enable_organizations_filters = true
}
Run terragrunt apply
in each account to create the new metric filter.
If the check is still not working, the release v0.44.1 of the CIS Service Catalog contains a fix for the filter match Steampipe's query. In the next steps you will update the versions of CIS Service Catalog (and some other services) to the latest, so it will be fixed.
Next steps
If you've confirmed that your live infrastructure is compliant with the CIS AWS Foundations Benchmark v1.4 then you're ready to move to step 2 and update your references to the Gruntwork Infrastructure as Code Library.