For AI agents: A markdown version of this page is available at https://docs.datadoghq.com/security/code_security/iac_security/iac_rules/terraform-aws-iam-database-auth-not-enabled.md.
A documentation index is available at /llms.txt.
When provisioning an AWS RDS instance with Terraform, the iam_database_authentication_enabled attribute determines whether IAM database authentication is enabled. Failing to set iam_database_authentication_enabled = true on a compatible database engine means the database will rely solely on traditional static username and password authentication, increasing the risk of credential compromise and making access control harder to manage centrally. Enabling this attribute, as shown below, leverages AWS IAM to enforce strong authentication and fine-grained, auditable access policies:
module"db"{source="terraform-aws-modules/rds/aws"version="~> 3.0"identifier="demodb"engine="mysql"engine_version="5.7.19"instance_class="db.t2.large"allocated_storage=5name="demodb"username="user"password="YourPwdShouldBeLongAndSecure!"port="3306"iam_database_authentication_enabled=truevpc_security_group_ids=["sg-12345678"]maintenance_window="Mon:00:00-Mon:03:00"backup_window="03:00-06:00" # Enhanced Monitoring - see example for details on how to create the role
# by yourself, in case you don't want to create it automatically
monitoring_interval="30"monitoring_role_name="MyRDSMonitoringRole"create_monitoring_role=truetags={Owner="user"Environment="dev"} # DB subnet group
subnet_ids=["subnet-12345678","subnet-87654321"] # DB parameter group
family="mysql5.7" # DB option group
major_engine_version="5.7" # Database Deletion Protection
deletion_protection=trueparameters=[{name="character_set_client"value="utf8mb4"},{name="character_set_server"value="utf8mb4"}]options=[{option_name="MARIADB_AUDIT_PLUGIN"option_settings=[{name="SERVER_AUDIT_EVENTS"value="CONNECT"},{name="SERVER_AUDIT_FILE_ROTATIONS"value="37"},]},]}
module"db"{source="terraform-aws-modules/rds/aws"version="~> 3.0"identifier="demodb"engine="aurora"engine_version="11.10"instance_class="db.t2.small"allocated_storage=5name="demodb"username="user"port="3306"vpc_security_group_ids=["sg-12345678"]maintenance_window="Mon:00:00-Mon:03:00"backup_window="03:00-06:00" # Enhanced Monitoring - see example for details on how to create the role
# by yourself, in case you don't want to create it automatically
monitoring_interval="30"monitoring_role_name="MyRDSMonitoringRole"create_monitoring_role=truetags={Owner="user"Environment="dev"}}
module"db"{source="terraform-aws-modules/rds/aws"version="~> 3.0"identifier="demodb"engine="mysql"engine_version="8.0"instance_class="db.t2.large"allocated_storage=5name="demodb"username="user"password="YourPwdShouldBeLongAndSecure!"port="3306"vpc_security_group_ids=["sg-12345678"]maintenance_window="Mon:00:00-Mon:03:00"backup_window="03:00-06:00" # Enhanced Monitoring - see example for details on how to create the role
# by yourself, in case you don't want to create it automatically
monitoring_interval="30"monitoring_role_name="MyRDSMonitoringRole"create_monitoring_role=truetags={Owner="user"Environment="dev"} # DB subnet group
subnet_ids=["subnet-12345678","subnet-87654321"] # DB parameter group
family="mysql5.7" # DB option group
major_engine_version="5.7" # Database Deletion Protection
deletion_protection=trueparameters=[{name="character_set_client"value="utf8mb4"},{name="character_set_server"value="utf8mb4"}]options=[{option_name="MARIADB_AUDIT_PLUGIN"option_settings=[{name="SERVER_AUDIT_EVENTS"value="CONNECT"},{name="SERVER_AUDIT_FILE_ROTATIONS"value="37"},]},]}
1
2
rulesets:- Terraform / AWS # Rules to enforce / AWS.
Request a personalized demo
Get Started with Datadog
Ask AI
AI-generated responses may be inaccurate. Verify important info.