FedRAMP Moderate Baseline Rev 4¶
The Federal Risk and Authorization Management Program (FedRAMP) Moderate Impact Baseline Revision 4 establishes security requirements for cloud services handling moderate-impact federal information. Managed by the U.S. General Services Administration (GSA), this is the most common FedRAMP baseline requiring implementation of 325 security controls derived from NIST SP 800-53. It applies to cloud service providers offering services to U.S. federal agencies for systems with moderate confidentiality, integrity, and availability requirements.
Terraform Registry Subdomain: fedrampmoderate¶
module "..." {
source = "fedrampmoderate.compliance.tf/terraform-aws-modules/<module>/aws"
version = "<version>"
}
module "..." {
source = "https://fedrampmoderate.compliance.tf/terraform-aws-modules/<module>/aws"
}
Refer to the Terraform Registry Endpoints section for more details.
Implemented Controls¶
The following controls are implemented as part of this framework.
- API Gateway stage should uses SSL certificate
- API Gateway stage cache encryption at rest should be enabled
- API Gateway stage logging should be enabled
- Backup plan min frequency and min retention check
- At least one enabled trail should be present in a region
- CloudTrail trails should be integrated with CloudWatch logs
- CloudTrail trail logs should be encrypted with KMS CMK
- CloudTrail trail log file validation should be enabled
- CloudWatch alarm should have an action configured
- Log group retention period should be at least 365 days
- DMS replication instances should not be publicly accessible
- DynamoDB table point-in-time recovery should be enabled
- Attached EBS volumes should have encryption enabled
- EBS volume encryption at rest should be enabled
- EC2 instance detailed monitoring should be enabled
- EC2 instance should have EBS optimization enabled
- EC2 instances should be in a VPC
- EC2 instances should not have a public IP address
- EC2 instances should use IMDSv2
- EFS file system encryption at rest should be enabled
- ElastiCache Redis cluster automatic backup should be enabled with retention period of 15 days or greater
- ELB application and classic load balancer logging should be enabled
- ELB application load balancer deletion protection should be enabled
- ELB application and network load balancers should only use SSL or HTTPS listeners
- ELB classic load balancers should have cross-zone load balancing enabled
- ES domain encryption at rest should be enabled
- ES domains should be in a VPC
- Elasticsearch domain should send logs to CloudWatch
- Elasticsearch domain node-to-node encryption should be enabled
- Ensure IAM password policy requires a minimum length of 14 or greater
- Ensure IAM password policy requires at least one lowercase letter
- Ensure IAM password policy requires at least one number
- Ensure IAM password policy requires at least one symbol
- Ensure IAM password policy requires at least one uppercase letter
- IAM password policies for users should have strong configurations
- KMS CMK rotation should be enabled
- Lambda functions concurrent execution limit configured
- Lambda functions should be configured with a dead-letter queue
- Lambda functions should be in a VPC
- Log group encryption at rest should be enabled
- RDS DB instance and cluster enhanced monitoring should be enabled
- RDS DB instance backup should be enabled
- RDS DB instances should have deletion protection enabled
- RDS DB instance encryption at rest should be enabled
- Database logging should be enabled
- RDS DB instance multiple az should be enabled
- RDS DB instances should prohibit public access
- AWS Redshift clusters should have automatic snapshots enabled
- Redshift cluster encryption in transit should be enabled
- Redshift cluster audit logging and encryption should be enabled
- AWS Redshift clusters should be encrypted with KMS
- Redshift clusters should prohibit public access
- S3 bucket cross-region replication should be enabled
- S3 bucket default encryption should be enabled
- S3 bucket default encryption should be enabled with KMS
- S3 bucket logging should be enabled
- S3 bucket object lock should be enabled
- S3 buckets should prohibit public read access
- S3 buckets should prohibit public write access
- S3 buckets with versioning enabled should have lifecycle policies configured
- S3 bucket versioning should be enabled
- S3 public access should be blocked at account level
- S3 public access should be blocked at bucket levels
- SageMaker endpoint configuration encryption should be enabled
- SageMaker notebook instances should not have direct internet access
- SageMaker notebook instance encryption should be enabled
- SNS topics should be encrypted at rest
- VPC Security groups should only allow unrestricted incoming traffic for authorized ports
- VPC subnet auto assign public IP should be disabled
Enable/Disable Controls¶
You can customize the Terraform module for the desired compliance requirements by enabling/disabling individual controls.
Examples¶
S3 bucket module with FedRAMP Moderate Baseline Rev 4 compliance framework controls enabled, and a couple of controls disabled¶
module "..." {
source = "https://fedrampmoderate.compliance.tf/terraform-aws-modules/s3-bucket/aws?disable=apigateway_rest_api_stage_use_ssl_certificate,apigateway_stage_cache_encryption_at_rest_enabled"
}