Profile Applicability:
- Level 1
Description:
Regular reviews of security configurations across your AWS-managed databases help ensure that permissions, encryption, logging, and access settings remain compliant with security best practices and organizational policies.
Rationale:
As systems evolve and users change, configurations may drift from their secure state. Periodic reviews help detect misconfigurations, unused privileges, or disabled controls that could lead to security breaches or non-compliance.
Impact:
Pros:
Ensures adherence to least privilege
Identifies misconfigurations before they are exploited
Supports compliance audits and reporting
Cons:
Requires regular administrative effort
Can be overlooked without automation or scheduling
Default Value:
No automatic review schedule is applied by default. Manual review must be enforced by the organization.
Pre-requisites:
IAM permissions to view and modify configurations
Access to AWS Console or CLI
Knowledge of current security baseline
Remediation:
Test Plan
Using AWS Console:
Sign in to the AWS Console
Navigate to RDS, ElastiCache, or MemoryDB
Select the database instance
Review the following under Configuration and Security tabs:
IAM role associations
Security groups and NACLs
Encryption at rest and in transit
CloudWatch logging settings
Backup and retention policies
Using AWS CLI:
List DB instances:
aws rds describe-db-instances
Check encryption:
aws rds describe-db-instances --query "DBInstances[*].StorageEncrypted"
Review log exports:
aws rds describe-db-instances --query "DBInstances[*].EnabledCloudwatchLogsExports"
Review attached security groups:
aws ec2 describe-security-groups --group-ids <sg-id>
List IAM role trust policies:
aws iam get-role --role-name <role-name>
Implementation Plan
Using AWS Console:
Sign in to the AWS Console
Go to each database service in use (e.g., RDS, MemoryDB)
Review security groups and remove overly permissive rules
Review IAM roles and adjust permissions for least privilege
Ensure encryption at rest and in transit is enabled
Validate CloudWatch logging and alerting are configured
Review and set backup retention policies appropriately
Using AWS CLI:
Describe DB instances to review configurations:
aws rds describe-db-instances
Revoke unnecessary ingress rules:
aws ec2 revoke-security-group-ingress --group-id <sg-id> --protocol tcp --port 3306 --cidr 0.0.0.0/0
Update IAM role to restrict privileges:
aws iam update-assume-role-policy --role-name <role-name> --policy-document file://least-privilege-policy.json
Enable log exports if missing:
aws rds modify-db-instance --db-instance-identifier <id> --cloudwatch-logs-export-configuration EnableLogTypes=["error","general"] --apply-immediately
Modify backup retention if needed:
aws rds modify-db-instance --db-instance-identifier <id> --backup-retention-period 7 --apply-immediately
Backout Plan
Using AWS Console:
Revert IAM role or security group changes from previous backups or saved templates
Reset encryption and logging to previous settings
Restore prior backup retention period if necessary
Using AWS CLI:
Restore previous IAM policy:
aws iam update-assume-role-policy --role-name <role-name> --policy-document file://old-policy.json
Restore removed security group rules:
aws ec2 authorize-security-group-ingress --group-id <sg-id> --protocol tcp --port 3306 --cidr 0.0.0.0/0
Disable recent log exports:
aws rds modify-db-instance --db-instance-identifier <id> --cloudwatch-logs-export-configuration DisableLogTypes=["general"] --apply-immediately
References: