RDS-beveiliging: versleuteling en parameter groups
Versleutel RDS at rest met KMS, beheer versleuteling op verbindingsniveau met parameter groups en beveilig toegang met IAM-authenticatie.
RDS-beveiliging: versleuteling en parameter groups is een gratis AWS Solutions Architect-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AWS Solutions Architect. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AWS Solutions Architect bevat in totaal 4 lessen.
RDS-versleuteling in rust
RDS ondersteunt versleuteling in rust met AWS Key Management Service (KMS). Wanneer je versleuteling inschakelt bij het maken van een DB-instantie, worden alle gegevens op de onderliggende EBS-volumes, geautomatiseerde back-ups, momentopnamen en Read Replicas versleuteld met de opgegeven KMS-sleutel.
Versleuteling moet tijdens het maken worden ingeschakeld — je kunt een bestaande niet-versleutelde instantie niet ter plaatse versleutelen. De oplossing is om een niet-versleutelde momentopname te maken, deze te kopiëren terwijl je versleuteling inschakelt en de instantie vanuit de versleutelde momentopname te herstellen. De KMS-sleutel kan een door AWS beheerde sleutel zijn of een door de klant beheerde sleutel (CMK) voor extra controle en auditing.
# Create an encrypted RDS instance
aws rds create-db-instance \
--db-instance-identifier mydb-encrypted \
--engine mysql \
--db-instance-class db.t3.micro \
--master-username admin \
--master-user-password MyPass123! \
--allocated-storage 20 \
--storage-encrypted \
--kms-key-id arn:aws:kms:us-east-1:123456789:key/my-key-idEen bestaande niet-versleutelde RDS-instantie versleutelen
Omdat je versleuteling niet kunt inschakelen op een bestaande instantie, volg je dit migratiepad:
- Maak een handmatige momentopname van de niet-versleutelde instantie
- Kopieer de momentopname en schakel tijdens het kopiëren versleuteling in, waarbij je een KMS-sleutel opgeeft
- Herstel een nieuwe DB-instantie vanuit de versleutelde momentopname
- Werk het eindpunt van je applicatie bij zodat het naar de nieuwe instantie verwijst
- Verwijder de oude niet-versleutelde instantie
Deze aanpak veroorzaakt enige uitvaltijd, tenzij je DMS gebruikt om de nieuwe versleutelde instantie vóór de omschakeling gesynchroniseerd te houden.
# Copy snapshot with encryption enabled
aws rds copy-db-snapshot \
--source-db-snapshot-identifier mydb-unencrypted-snap \
--target-db-snapshot-identifier mydb-encrypted-snap \
--kms-key-id alias/aws/rdsVersleuteling tijdens transport met SSL/TLS
RDS versleutelt gegevens tijdens transport met SSL/TLS. Elke engine biedt een downloadbaar CA-certificaat dat je clientstuurprogramma gebruikt om de identiteit van de server te verifiëren. Configureer de database-engine zo dat deze niet-versleutelde verbindingen weigert om SSL-verbindingen af te dwingen.
Stel voor MySQL de parameter require_secure_transport = ON in de parametergroep in. Stel voor PostgreSQL ssl = 1 in en optioneel rds.force_ssl = 1 om niet-SSL-verbindingen volledig te weigeren. Veel Java- en Python-databasestuurprogramma's accepteren ook een verbindingsreeksparameter sslmode=require.
# Connect to RDS MySQL over SSL
mysql -h mydb.abcd1234.us-east-1.rds.amazonaws.com \
-u admin -p \
--ssl-ca=rds-ca-2019-root.pem \
--ssl-verify-server-certParametergroepen: wat zijn dat?
Parametergroepen zijn benoemde verzamelingen configuratie-instellingen van een engine die je aan een RDS-instantie koppelt. Ze zijn het RDS-equivalent van het bewerken van my.cnf in MySQL of postgresql.conf in PostgreSQL, maar worden beheerd door AWS en per enginefamilie van een versie voorzien.
AWS biedt voor elke engineversie een standaardparametergroep, maar de instellingen daarvan kunnen niet worden bewerkt. Maak een aangepaste parametergroep, wijzig de gewenste parameters en koppel deze aan je DB-instantie om parameters aan te passen. Voor wijzigingen aan statische parameters is een herstart vereist; dynamische parameters worden onmiddellijk actief.
# Create a custom parameter group
aws rds create-db-parameter-group \
--db-parameter-group-name my-mysql8-params \
--db-parameter-group-family mysql8.0 \
--description 'Custom MySQL 8.0 parameters'Instellingen van een parametergroep wijzigen
Nadat je een aangepaste parametergroep hebt gemaakt, wijzig je afzonderlijke parameters met de CLI-opdracht modify-db-parameter-group of in de console. Parameters hebben een toepassingsmethode: immediate (wordt zonder herstart actief) of pending-reboot (wordt pas na de volgende herstart van de instantie actief).
Belangrijke parameters voor het examen zijn: max_connections (beperkt gelijktijdige verbindingen), innodb_buffer_pool_size (grootte van de geheugencache van MySQL), log_bin_trust_function_creators (staat opgeslagen functies toe die naar het binaire logboek schrijven) en rds.force_ssl (dwingt SSL af voor PostgreSQL).
# Force SSL in a PostgreSQL parameter group
aws rds modify-db-parameter-group \
--db-parameter-group-name my-postgres-params \
--parameters 'ParameterName=rds.force_ssl,ParameterValue=1,ApplyMethod=immediate'Optiegroepen voor extra functies
Optiegroepen lijken op parametergroepen, maar beheren uitbreidingsfuncties voor de database-engine in plaats van configuratieafstemming. Ze worden voornamelijk gebruikt met Oracle en SQL Server om functies in te schakelen zoals Oracle Application Express (APEX), SQL Server Transparent Data Encryption (TDE) of SQL Server Active Directory-authenticatie.
Elke optie in een optiegroep kan eigen instellingen hebben. Optiegroepen zijn per enginefamilie van een versie voorzien en moeten aan de DB-instantie worden gekoppeld. Voor de meeste opensource-engines (MySQL, PostgreSQL, MariaDB) zijn aangepaste optiegroepen zelden nodig.
IAM-database-authenticatie
RDS ondersteunt IAM-database-authenticatie voor MySQL- en PostgreSQL-engines. In plaats van een statische gebruikersnaam en een statisch wachtwoord neemt je applicatie een IAM-rol aan en genereert deze een tijdelijk authenticatietoken (15 minuten geldig) met de AWS CLI-opdracht generate-db-auth-token of een SDK-aanroep.
Voordelen zijn onder andere dat je geen langdurige databasewachtwoorden nodig hebt, dat referenties automatisch worden geroteerd via IAM-beleidsregels en dat toegangsbeheer centraal kan worden geregeld. Voor deze functie moet je --enable-iam-database-authentication inschakelen op de instantie en een databasegebruiker maken die aan een IAM-rol is gekoppeld.
# Generate an RDS IAM auth token
aws rds generate-db-auth-token \
--hostname mydb.abcd1234.us-east-1.rds.amazonaws.com \
--port 3306 \
--username mydbuser \
--region us-east-1Secrets Manager-integratie met RDS
AWS Secrets Manager kan het hoofdwachtwoord van je RDS-instantie en de referenties van je applicatie opslaan en automatisch roteren. Wanneer rotatie is ingeschakeld, roept Secrets Manager een Lambda-functie aan die het databasewachtwoord bijwerkt en de nieuwe waarde in het geheim opslaat. Je applicatie haalt de meest recente geheime waarde op via de Secrets Manager-API en beschikt daardoor altijd over geldige referenties.
Wanneer je in de console een RDS-instantie maakt, kun je ervoor kiezen om het beheer van de hoofdreferenties aan Secrets Manager over te laten. Hierdoor zijn hardgecodeerde wachtwoorden in code of omgevingsvariabelen niet meer nodig.
# Retrieve RDS credentials from Secrets Manager
aws secretsmanager get-secret-value \
--secret-id rds!db-1234abcd-5678-efgh-ijkl-mnopqrstuvwx \
--query SecretString \
--output text | python3 -m json.toolVPC- en beveiligingsgroepbeheer
RDS-instanties worden binnen een VPC uitgevoerd en gebruiken DB-subnetgroepen om te bepalen in welke subnetten (verspreid over meerdere AZ's) de instantie kan worden geplaatst. Het is best practice om RDS in privésubnetten zonder directe internettoegang te plaatsen.
Beveiligingsgroepen bepalen welke IP-adressen en andere beveiligingsgroepen toegang hebben tot de DB-poort (bijvoorbeeld TCP 3306 voor MySQL). De beveiligingsgroep van de applicatielaag moet de enige toegestane bron zijn in de RDS-beveiligingsgroep, zodat minimale toegangsrechten op netwerkniveau worden afgedwongen. Configureer nooit 0.0.0.0/0 (alle verkeer) als inkomende regel in een RDS-beveiligingsgroep.
Uitgebreide bewaking en auditlogboeken
Enhanced Monitoring publiceert metrische gegevens op besturingssysteemniveau (CPU, geheugen, bestandssysteem en schijf-I/O) elke 1–60 seconden naar CloudWatch Logs. Hierdoor is de granulariteit hoger dan bij de standaardmetrische gegevens van CloudWatch, die elke 60 seconden worden gepubliceerd. De functie gebruikt een agent die op de DB-host draait en is beschikbaar voor alle engines behalve de mirroringmodus van SQL Server.
Auditlogboeken van databases (algemeen querylogboek en langzaam-querylogboek voor MySQL; pgaudit voor PostgreSQL) kunnen voor compliance-analyse naar CloudWatch Logs worden gepubliceerd. Schakel deze in via parametergroepen en configureer vervolgens de logboekexports in de RDS-console onder Logboekexports.
# Enable PostgreSQL logs export to CloudWatch
aws rds modify-db-instance \
--db-instance-identifier mydb \
--cloudwatch-logs-export-configuration 'EnableLogTypes=[postgresql,upgrade]' \
--apply-immediatelyOverzicht van aanbevolen beveiligingsprocedures
Belangrijke aanbevolen RDS-beveiligingsprocedures voor het SAA-C03-examen:
- Schakel versleuteling in rust met een KMS CMK in wanneer je de instantie maakt
- Dwing SSL/TLS tijdens transport af via instellingen in de parametergroep
- Plaats instanties in privésubnetten met strenge beveiligingsgroepen
- Gebruik IAM-database-authenticatie of Secrets Manager om statische wachtwoorden te vermijden
- Schakel CloudTrail in om RDS-API-aanroepen te loggen en CloudWatch Logs voor auditlogboeken van databases
- Gebruik AWS Config-regels (bijvoorbeeld
rds-instance-public-access-check) om verkeerde configuraties te detecteren
Korte controle
Test je begrip van de concepten van AWS Solutions Architect (SAA-C03) uit deze les.
Samenvatting van de les
In deze les heb je geleerd dat RDS-versleuteling in rust KMS gebruikt en bij het maken moet worden ingeschakeld, dat parametergroepen de engineconfiguratie beheren, waaronder het afdwingen van SSL/TLS tijdens transport, en dat IAM-database-authenticatie en Secrets Manager statische databasewachtwoorden overbodig maken. Hierna bekijken we DynamoDB-tabellen, items en het ontwerp van primaire sleutels.
Leer AWS Solutions Architect met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “RDS-beveiliging: versleuteling en parameter groups” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad AWS Solutions Architect, waaronder “RDS-beveiliging: versleuteling en parameter groups”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus AWS Solutions Architect bevat in totaal 4 lessen.
Wat leer ik in “RDS-beveiliging: versleuteling en parameter groups”?
Versleutel RDS at rest met KMS, beheer versleuteling op verbindingsniveau met parameter groups en beveilig toegang met IAM-authenticatie. Je oefent met AWS Solutions Architect door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met AWS Solutions Architect te beginnen?
Ervaring vooraf is niet nodig. AWS Solutions Architect op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “RDS-beveiliging: versleuteling en parameter groups”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over AWS Solutions Architect?
Ja. Elke les over AWS Solutions Architect bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- RDS-engines en instance classes
- Multi-AZ en geautomatiseerde back-ups
- Read Replicas voor lees-schaalbaarheid
- RDS-beveiliging: versleuteling en parameter groups