Amazon Aurora — Overview
Amazon Aurora is part of the RDS family but uses a cloud-native architecture that separates compute from a distributed, shared storage layer. Aurora is available in two compatibility lines — Aurora MySQL and Aurora PostgreSQL — and each line offers both provisioned and serverless variants. While compute and scaling behavior differ between provisioned and serverless Aurora, the core security concepts remain the same: VPC, KMS, IAM, Secrets Manager, security groups, and monitoring. At a high level, traditional RDS uses instance-level or database-level replication (primary + replicas or Multi‑AZ primary/standby), whereas Aurora implements replication in the storage layer. The diagram below contrasts a typical RDS PostgreSQL deployment (left) with Aurora PostgreSQL (right), where the storage subsystem handles replication.
- Compute (instances) is separated from a distributed, shared storage layer.
- Replication is performed at the storage-segment level rather than at the database instance level.
- Aurora divides data into 10 GB segments and replicates each segment six ways across three Availability Zones (AZs) for high durability.
- Aurora supports many read replicas (commonly up to 15 readers for read scaling, depending on engine and version).
Aurora divides the volume into 10 GB segments and stores each segment six ways across three AZs. This distributed, storage-level replication is a core Aurora design difference versus classic RDS.
Authentication and credential management
Aurora supports multiple authentication/credential models:- Native database credentials (username/password).
- IAM database authentication (where supported by the engine and client).
- Integration with AWS Secrets Manager for secure storage, retrieval, and rotation of credentials.
Operational console screenshot: the cluster shows Secrets Manager integration and cluster/instance placement across AZs.

- Prefer Secrets Manager with RDS rotation for applications.
- Use IAM authentication where supported to avoid long-lived DB credentials.
- Ensure applications retrieve secrets securely (via SDKs/roles) and that secrets are never embedded in source code or environment variables without protection.
Networking and connectivity
Aurora instances run in your VPC and follow standard VPC constructs:- Launch instances into specific subnets (private subnets are recommended for databases).
- Use security groups to permit traffic only from required application servers or services.
- Network ACLs apply at the subnet level and should be considered for defense in depth.
- Public accessibility can be enabled or disabled per cluster/instance; production databases should default to not publicly accessible.

Do NOT expose production databases to the public internet. If public access is required for a limited use case, strongly restrict source IP ranges and use additional controls (VPN, bastion hosts, or proxy) and strict security group rules.
- Place Aurora clusters in private subnets.
- Co-locate application tiers in the same VPC and use security groups to allow only necessary ports/protocols.
- Use NAT gateways or NAT instances for outbound access from private subnets when required.
VPC endpoints and PrivateLink
Aurora supports interface VPC endpoints (AWS PrivateLink) for private connectivity to control-plane or data-plane APIs. Gateway endpoints are only available for S3 and DynamoDB. Common uses for interface endpoints:- Private connectivity to the Aurora control plane and related AWS services without traversing the public internet.
- Apply endpoint policies and security-group rules to limit what resources can access the endpoint.

Monitoring, auditing, and detection
Aurora provides multiple options to monitor, audit, and detect suspicious activity:- Amazon CloudWatch metrics and alarms for health and performance.
- AWS CloudTrail for control-plane auditing (create/delete/modify).
- Enhanced Monitoring for OS-level metrics (RDS process, CPU, memory).
- Performance Insights for query-level performance analysis and bottlenecks.
- Aurora Database Activity Streams for near-real-time activity streaming to SIEMs or analytics.

- Streams database activity in near–real-time for ingestion into downstream monitoring, SIEM, or analytics platforms.
- Useful for compliance or detecting anomalous SQL activity.
Encryption — at rest and in transit
Aurora supports encryption at rest using AWS KMS (Customer Master Keys). The storage layer uses data keys derived from KMS CMKs to encrypt the underlying segments. For encryption in transit, enable TLS/SSL for client connections and enforce verification of server certificates in client applications. Recommended encryption steps- Enable encryption-at-rest by selecting a KMS CMK when creating the cluster.
- Require TLS/SSL for client connections; configure libraries to validate server certificates.
- Use Secrets Manager to store credentials and ensure applications retrieve secrets securely and over TLS.

Aurora Serverless
Aurora Serverless decouples compute from storage and provides on-demand scaling of compute capacity. There are two generations:- Serverless v1 — can pause during inactivity and scales in Aurora Capacity Units (ACUs).
- Serverless v2 — provides more granular, near-instant scaling without pausing.

RDS Proxy — connection pooling and resiliency
RDS Proxy is a managed proxy service that sits between application clients and your database. It pools and reuses database connections to improve application scalability and resiliency, especially for workloads with many short-lived connections (serverless functions, microservices). How RDS Proxy helps- Reduces the total number of direct connections to the database by pooling.
- Improves failover behavior by holding pooled connections and retrying clients.
- Integrates with AWS Secrets Manager to retrieve and rotate credentials.
- Supports IAM authentication and exposes CloudWatch metrics and logs for observability.

- Configure RDS Proxy to use Secrets Manager; grant the proxy an IAM role or policy that allows secret retrieval.
- Use security groups to allow only application subnets or security groups to connect to the proxy endpoint.
- Ensure the proxy can reach the DB by allowing outbound from the proxy security group to the DB security group.

- Enable enhanced logging selectively — it can be helpful for debugging but may impact performance.
- Monitor CloudWatch metrics exposed by RDS Proxy for connection counts, failovers, and latency.
- Serverless functions or microservices with spiky connection patterns.
- Applications that need better failover handling without significant application changes.
- Centralized credential management using Secrets Manager.

Final summary — security checklist for Aurora & RDS Proxy
- Architecture: Aurora uses storage-layer replication (10 GB segments, 6-way replication across 3 AZs) for durability and read scaling.
- Authentication: Use IAM and Secrets Manager for short-lived credentials and automated rotation; fall back to native DB users where appropriate.
- Network: Place databases in private subnets, strictly limit access via security groups, and leverage interface VPC endpoints for private service connectivity.
- Monitoring & audit: Enable CloudWatch, CloudTrail, Enhanced Monitoring, Performance Insights, and Activity Streams as appropriate for detection and compliance.
- Encryption: Use KMS CMKs for encryption-at-rest and require TLS for in-transit encryption.
- RDS Proxy: Use for connection pooling, improved failover behavior, and centralized Secrets Manager integration when application patterns stress direct DB connections.
Links and references
- Amazon Aurora documentation: https://docs.aws.amazon.com/aurora/latest/userguide/
- Amazon RDS documentation: https://docs.aws.amazon.com/rds/
- AWS Secrets Manager: https://docs.aws.amazon.com/secretsmanager/
- AWS KMS: https://docs.aws.amazon.com/kms/