Skip to content
v2.276.0

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 ​

The exact version of the engine to use.