Learning AWS Day by Day — Day 39 — Amazon RDS — Part 2

Learning AWS Day by Day — Day 39 — Amazon RDS — Part 2

Exploring AWS !!

Day 39:

Amazon RDS — Part 2

Previously we’ve learnt about backups, read replicas and disaster recovery strategies of RDS. Today we will dive deeper into some other concepts of RDS.

RDS Security — Encryption:
Encryption at Rest-

Possibility to encrypt master and read replicas with AWS KMS-AES-256 encryption.
Encryption has to be defined at launch time.
If Master is not encrypted, Read Replicas cannot be encrypted.
Transport Data Encryption (TDE) available for Oracle and SQL server.
In Flight Encryption-
SSL certificate to encrypt data to RDS in flight.
Provide SSL options with Trust Certificates when connecting to database.
To enforce SSL-
PostgreSQL: rds:force_ssl=1 in the AWS RDS Console (Parameter Groups)
MySQL: within Database: GRANT USAGE ON . TO ‘mysqluser’@’%’ REQUIRE SSL;

RDS Encryption Operation:
Encrypting RDS Backups:

Snapshots of unencrypted RDS databases are unencrypted.
Snapshots of encrypted RDS databases are encrypted.
Can copy a snapshot into an encrypted one.
To encrypt an unencrypted RDS database:
Create a snapshot of unencrypted snapshot.
Copy snapshot and enable encryption for snap.
Restore database from encrypted snapshot.
Migrate applications to new database and delete old database.

RDS Security — Network and IAM
Network security:

RDS database are usually deployed in private subnets, not in public.
RDS security works by leveraging security groups (same concept as for EC2 instance) — it controls which security group/IP can communicate with RDS.
Access Management:
IAM policies helps control who can manage RDS (through RDS API)
Traditional username and password can be used to login to database.
IAM based authentication can be used to login into RDS MySQL and PostgreSQL.

RDS IAM Authentication:

IAM database authentication works with MySQL and PostgreSQL.
You don’t need password, just need an authentication token through IAM and RDS API calls.
Authentication token has a lifetime of 15 mins.

Benefits:

Network in/out must be encrypted by using SSL.
IAM to centrally manage user instead of database.
Can leverage IAM roles and EC2 instance profiles for easy integration.

RDS Security Summary:
Encryption at Rest:

is done only when you first create a database instance.
or: unencrypted database -> snapshot -> copy snapshot as encrypted -> create database from snapshot.
Your Responsibility:
Check ports/IP/SG inbound rules in database’s security groups.
In-database user creation and permission or manage through IAM.
Creating database with or without public access.
Ensure parameter group or database is configured to only allow SSL connection.
AWS Responsibility:
No SSH access.
No manual OS patching
No way to audit underlying instance.

Leave a Reply

Your email address will not be published. Required fields are marked *