NIST SP 800-53 Rev 5¶
The National Institute of Standards and Technology (NIST) Special Publication 800-53 Revision 5 provides a comprehensive catalog of security and privacy controls for information systems and organizations. Published by the U.S. Department of Commerce in September 2020, this framework supports risk management processes and compliance with federal legislation including FISMA. It is used by U.S. federal agencies and organizations globally seeking a risk-based approach to security and privacy controls.
Terraform Registry Subdomain: nist80053¶
module "..." {
source = "nist80053.compliance.tf/terraform-aws-modules/<module>/aws"
version = "<version>"
}
module "..." {
source = "https://nist80053.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
- CloudFormation stacks should have notifications enabled
- 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 should be encrypted with AWS KMS
- 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 should have EBS optimization enabled
- EC2 instances should have IAM profile attached
- 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
- 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 clusters should have automatic minor version upgrade 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 enhanced VPC routing should be enabled
- AWS Redshift clusters should be encrypted with KMS
- AWS Redshift should have required maintenance settings
- 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 policy should prohibit public access
- 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
- Secrets Manager secrets should be encrypted using CMK
- 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 NIST SP 800-53 Rev 5 compliance framework controls enabled, and a couple of controls disabled¶
module "..." {
source = "https://nist80053.compliance.tf/terraform-aws-modules/s3-bucket/aws?disable=apigateway_rest_api_stage_use_ssl_certificate,apigateway_stage_cache_encryption_at_rest_enabled"
}