PostgresInstanceEngineProps Struct
Properties for PostgreSQL instance engines.
Used in DatabaseInstanceEngine.postgres.
Example
ts
declare const vpc: ec2.Vpc;
const instance = new rds.DatabaseInstance(this, 'Database', {
engine: rds.DatabaseInstanceEngine.postgres({
version: rds.PostgresEngineVersion.VER_17_7,
}),
vpc,
iamAuthentication: true,
});
const proxy = new rds.DatabaseProxy(this, 'Proxy', {
proxyTarget: rds.ProxyTarget.fromInstance(instance),
vpc,
defaultAuthScheme: rds.DefaultAuthScheme.IAM_AUTH, // No secrets required
});
// Grant IAM permissions for database connection
const role = new iam.Role(this, 'DBRole', { assumedBy: new iam.AccountPrincipal(this.account) });
proxy.grantConnect(role, 'database-user'); // Database user must be specified when using IAM auth
python
# vpc: ec2.Vpc
instance = rds.DatabaseInstance(self, "Database",
engine=rds.DatabaseInstanceEngine.postgres(
version=rds.PostgresEngineVersion.VER_17_7
),
vpc=vpc,
iam_authentication=True
)
proxy = rds.DatabaseProxy(self, "Proxy",
proxy_target=rds.ProxyTarget.from_instance(instance),
vpc=vpc,
default_auth_scheme=rds.DefaultAuthScheme.IAM_AUTH
)
# Grant IAM permissions for database connection
role = iam.Role(self, "DBRole", assumed_by=iam.AccountPrincipal(self.account))
proxy.grant_connect(role, "database-user")
java
Vpc vpc;
DatabaseInstance instance = DatabaseInstance.Builder.create(this, "Database")
.engine(DatabaseInstanceEngine.postgres(PostgresInstanceEngineProps.builder()
.version(PostgresEngineVersion.VER_17_7)
.build()))
.vpc(vpc)
.iamAuthentication(true)
.build();
DatabaseProxy proxy = DatabaseProxy.Builder.create(this, "Proxy")
.proxyTarget(ProxyTarget.fromInstance(instance))
.vpc(vpc)
.defaultAuthScheme(DefaultAuthScheme.IAM_AUTH)
.build();
// Grant IAM permissions for database connection
Role role = Role.Builder.create(this, "DBRole").assumedBy(new AccountPrincipal(this.account)).build();
proxy.grantConnect(role, "database-user");
csharp
// Install: dotnet add package Amazon.CDK.Lib
Vpc vpc;
var instance = new DatabaseInstance(this, "Database", new DatabaseInstanceProps {
Engine = DatabaseInstanceEngine.Postgres(new PostgresInstanceEngineProps {
Version = PostgresEngineVersion.VER_17_7
}),
Vpc = vpc,
IamAuthentication = true
});
var proxy = new DatabaseProxy(this, "Proxy", new DatabaseProxyProps {
ProxyTarget = ProxyTarget.FromInstance(instance),
Vpc = vpc,
DefaultAuthScheme = DefaultAuthScheme.IAM_AUTH
});
// Grant IAM permissions for database connection
var role = new Role(this, "DBRole", new RoleProps { AssumedBy = new AccountPrincipal(Account) });
proxy.GrantConnect(role, "database-user");
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
var vpc Vpc
instance := rds.NewDatabaseInstance(this, jsii.String("Database"), &DatabaseInstanceProps{
Engine: rds.DatabaseInstanceEngine_Postgres(&PostgresInstanceEngineProps{
Version: rds.PostgresEngineVersion_VER_17_7(),
}),
Vpc: Vpc,
IamAuthentication: jsii.Boolean(true),
})
proxy := rds.NewDatabaseProxy(this, jsii.String("Proxy"), &DatabaseProxyProps{
ProxyTarget: rds.ProxyTarget_FromInstance(instance),
Vpc: Vpc,
DefaultAuthScheme: rds.DefaultAuthScheme_IAM_AUTH,
})
// Grant IAM permissions for database connection
role := iam.NewRole(this, jsii.String("DBRole"), &RoleProps{
AssumedBy: iam.NewAccountPrincipal(this.Account),
})
proxy.GrantConnect(role, jsii.String("database-user"))
Properties
versionPostgresEngineVersionversionPostgresEngineVersionversionPostgresEngineVersionVersionPostgresEngineVersionVersionPostgresEngineVersionrequired#The exact version of the engine to use.