DBSecurityGroup ​
The DBSecurityGroup resource allows you to manage AWS RDS DBSecurityGroups to control access to your Amazon RDS databases.
Minimal Example ​
Create a basic DBSecurityGroup with required properties and a common optional property.
ts
import AWS from "alchemy/aws/control";
const dbSecurityGroup = await AWS.RDS.DBSecurityGroup("myDbSecurityGroup", {
GroupDescription: "Security group for my RDS instance",
DBSecurityGroupIngress: [
{
CIDRIP: "203.0.113.0/24",
FromPort: 3306,
ToPort: 3306,
IpProtocol: "tcp"
}
],
EC2VpcId: "vpc-0abcd1234efgh5678", // Optional VPC ID
Tags: [
{
Key: "Environment",
Value: "Production"
}
]
});
Advanced Configuration ​
Configure a DBSecurityGroup with multiple ingress rules for different protocols and ports.
ts
const advancedDbSecurityGroup = await AWS.RDS.DBSecurityGroup("advancedDbSecurityGroup", {
GroupDescription: "Advanced security group for RDS with multiple ingress rules",
DBSecurityGroupIngress: [
{
CIDRIP: "192.0.2.0/24",
FromPort: 5432,
ToPort: 5432,
IpProtocol: "tcp"
},
{
CIDRIP: "198.51.100.0/24",
FromPort: 3306,
ToPort: 3306,
IpProtocol: "tcp"
}
],
EC2VpcId: "vpc-0abcd1234efgh5678", // Optional VPC ID
Tags: [
{
Key: "Environment",
Value: "Staging"
}
]
});
Using Existing Resources ​
If you want to adopt an existing DBSecurityGroup instead of creating a new one, you can do so like this:
ts
const existingDbSecurityGroup = await AWS.RDS.DBSecurityGroup("existingDbSecurityGroup", {
GroupDescription: "Existing RDS DBSecurityGroup to adopt",
DBSecurityGroupIngress: [
{
CIDRIP: "203.0.113.0/24",
FromPort: 3306,
ToPort: 3306,
IpProtocol: "tcp"
}
],
adopt: true // Adopt existing resource
});
Tagging Example ​
Create a DBSecurityGroup with tags for better resource management.
ts
const taggedDbSecurityGroup = await AWS.RDS.DBSecurityGroup("taggedDbSecurityGroup", {
GroupDescription: "Security group with detailed tagging",
DBSecurityGroupIngress: [
{
CIDRIP: "10.0.0.0/16",
FromPort: 3306,
ToPort: 3306,
IpProtocol: "tcp"
}
],
Tags: [
{
Key: "Project",
Value: "Database Migration"
},
{
Key: "Owner",
Value: "Database Team"
}
]
});