RDS DB instances must not be publicly accessible because exposing a database endpoint to the internet increases the attack surface and can enable unauthorized access, credential-guessing attacks, and data exfiltration. In AWS CloudFormation, the PubliclyAccessible property on AWS::RDS::DBInstance resources must be set to false. Resources with PubliclyAccessible set to true will be flagged. If the property is omitted, ensure the instance is deployed to private subnets and protected by restrictive security groups so it cannot receive a public IP or accept traffic from the internet.
AWSTemplateFormatVersion:2010-09-09Description:>- Description": "AWS CloudFormation Sample Template for creating an Amazon RDS DB instance:
Sample template showing how to create a DB instance with Enhanced Monitoring enabled.
**WARNING** This template creates an RDS DB instance. You will be billed for the AWS
resources used if you create a stack from this template.Parameters:DBInstanceID:Default:mydbinstanceDescription:My database instanceType:StringMinLength:'1'MaxLength:'63'AllowedPattern:'[a-zA-Z][a-zA-Z0-9]*'ConstraintDescription:>- Must begin with a letter and must not end with a hyphen or contain two
consecutive hyphens.DBName:Default:mydbDescription:My databaseType:StringMinLength:'1'MaxLength:'64'AllowedPattern:'[a-zA-Z][a-zA-Z0-9]*'ConstraintDescription:Must begin with a letter and contain only alphanumeric characters.DBInstanceClass:Default:db.m5.largeDescription:DB instance classType:StringConstraintDescription:Must select a valid DB instance type.DBAllocatedStorage:Default:'50'Description:The size of the database (GiB)Type:NumberMinValue:'5'MaxValue:'1024'ConstraintDescription:must be between 20 and 65536 GiB.DBUsername:NoEcho:'true'Description:Username for MySQL database accessType:StringMinLength:'1'MaxLength:'16'AllowedPattern:'[a-zA-Z][a-zA-Z0-9]*'ConstraintDescription:must begin with a letter and contain only alphanumeric characters.DBPassword:NoEcho:'true'Description:Password MySQL database accessType:StringMinLength:'8'MaxLength:'41'AllowedPattern:'[a-zA-Z0-9]*'ConstraintDescription:must contain only alphanumeric characters.Resources:MyDB:Type:'AWS::RDS::DBInstance'Properties:DBInstanceIdentifier:!Ref DBInstanceIDDBName:!Ref DBNameDBInstanceClass:!Ref DBInstanceClassAllocatedStorage:!Ref DBAllocatedStorageEngine:MySQLEngineVersion:8.0.16MasterUsername:!Ref DBUsernameMasterUserPassword:!Ref DBPasswordMonitoringInterval:'60'MonitoringRoleArn:'arn:aws:iam::123456789012:role/rds-monitoring-role'PubliclyAccessible:false
Non-Compliant Code Examples
#this is a problematic code where the query should report a result(s)AWSTemplateFormatVersion:2010-09-09Description:>- Description": "AWS CloudFormation Sample Template for creating an Amazon RDS DB instance:
Sample template showing how to create a DB instance with Enhanced Monitoring enabled.
**WARNING** This template creates an RDS DB instance. You will be billed for the AWS
resources used if you create a stack from this template.Parameters:DBInstanceID:Default:mydbinstanceDescription:My database instanceType:StringMinLength:'1'MaxLength:'63'AllowedPattern:'[a-zA-Z][a-zA-Z0-9]*'ConstraintDescription:>- Must begin with a letter and must not end with a hyphen or contain two
consecutive hyphens.DBName:Default:mydbDescription:My databaseType:StringMinLength:'1'MaxLength:'64'AllowedPattern:'[a-zA-Z][a-zA-Z0-9]*'ConstraintDescription:Must begin with a letter and contain only alphanumeric characters.DBInstanceClass:Default:db.m5.largeDescription:DB instance classType:StringConstraintDescription:Must select a valid DB instance type.DBAllocatedStorage:Default:'50'Description:The size of the database (GiB)Type:NumberMinValue:'5'MaxValue:'1024'ConstraintDescription:must be between 20 and 65536 GiB.DBUsername:NoEcho:'true'Description:Username for MySQL database accessType:StringMinLength:'1'MaxLength:'16'AllowedPattern:'[a-zA-Z][a-zA-Z0-9]*'ConstraintDescription:must begin with a letter and contain only alphanumeric characters.DBPassword:NoEcho:'true'Description:Password MySQL database accessType:StringMinLength:'8'MaxLength:'41'AllowedPattern:'[a-zA-Z0-9]*'ConstraintDescription:must contain only alphanumeric characters.Resources:MyDB:Type:'AWS::RDS::DBInstance'Properties:DBInstanceIdentifier:!Ref DBInstanceIDDBName:!Ref DBNameDBInstanceClass:!Ref DBInstanceClassAllocatedStorage:!Ref DBAllocatedStorageEngine:MySQLEngineVersion:8.0.16MasterUsername:!Ref DBUsernameMasterUserPassword:!Ref DBPasswordMonitoringInterval:'60'MonitoringRoleArn:'arn:aws:iam::123456789012:role/rds-monitoring-role'PubliclyAccessible:true
1
2
rulesets:- CloudFormation / AWS # Rules to enforce / AWS.
맞춤형 데모 요청
Datadog 시작하기
Ask AI
AI-generated responses may be inaccurate. Verify important info.