RDS:n tietoturva: salaus ja parametriryhmät
Salaatte RDS:n levossa olevan datan KMS:n avulla, hallitsette yhteystason salausta parametriryhmillä ja suojaatte yhteydet IAM-todennuksella.
RDS:n tietoturva: salaus ja parametriryhmät on ilmainen Cloud & IT Cert Prep-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cloud & IT Cert Prep-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.
RDS:n salaus levossa
RDS tukee levossa olevan datan salausta AWS Key Management Servicen (KMS) avulla. Kun salaus otetaan käyttöön DB-instanssia luotaessa, kaikki taustalla olevilla EBS-taltioilla oleva data, automaattiset varmuuskopiot, tilannevedokset ja Read Replica -replikoinnit salataan määritetyllä KMS-avaimella.
Salaus on otettava käyttöön luontivaiheessa — olemassa olevaa salaamatonta instanssia ei voi salata suoraan. Vaihtoehtona on ottaa salaamattomasta instanssista tilannevedos, kopioida se salaus käytössä ja palauttaa instanssi salatusta tilannevedoksesta. KMS-avain voi olla AWS:n hallinnoima avain tai Customer-Managed Key (CMK), joka tarjoaa enemmän hallintamahdollisuuksia ja auditointia.
# 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-idOlemassa olevan salaamattoman RDS-instanssin salaaminen
Koska salausta ei voi ottaa käyttöön olemassa olevassa instanssissa, noudata tätä siirtopolkua:
- Luo salaamattomasta instanssista manuaalinen snapshot
- Kopioi snapshot ja ota salaus käyttöön kopioinnin aikana määrittämällä KMS-avain
- Palauta uusi DB-instanssi salatusta snapshotista
- Päivitä sovelluksesi päätepiste osoittamaan uuteen instanssiin
- Poista vanha salaamaton instanssi
Tämä lähestymistapa aiheuttaa jonkin verran käyttökatkoa, ellet käytä DMS:ää uuden salatun instanssin synkronoimiseen ennen käyttöönottoa.
# 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/rdsSiirrettävien tietojen salaus SSL/TLS:llä
RDS salaa siirrettävät tiedot SSL/TLS:n avulla. Jokainen tietokantamoottori tarjoaa ladattavan varmenteen myöntäjän (CA) varmenteen, jonka asiakasohjain tarkistaa palvelimen henkilöllisyyden. Voit pakottaa SSL-yhteydet määrittämällä tietokantamoottorin hylkäämään salaamattomat yhteydet.
MySQL:ssä määritä parametriryhmään require_secure_transport = ON. PostgreSQL:ssä määritä ssl = 1 ja halutessasi rds.force_ssl = 1, jotta muut kuin SSL-yhteydet hylätään kokonaan. Monet Java- ja Python-tietokantaohjaimet hyväksyvät myös yhteysmerkkijonon parametrin 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-certParametriryhmät: mitä ne ovat
Parametriryhmät ovat nimettyjä tietokantamoottorin kokoonpanoasetusten kokoelmia, jotka liitetään RDS-instanssiin. Ne vastaavat RDS:ssä MySQL:n my.cnf- tai PostgreSQL:n postgresql.conf-tiedoston muokkaamista, mutta AWS hallinnoi niitä ja ne versioidaan tietokantamoottoriperhekohtaisesti.
AWS tarjoaa kullekin tietokantamoottorin versiolle oletusparametriryhmän, mutta sen asetuksia ei voi muokata. Jos haluat mukauttaa parametreja, luo mukautettu parametriryhmä, muokkaa haluamiasi parametreja ja liitä ryhmä DB-instanssiisi. Staattisten parametrien muutokset edellyttävät uudelleenkäynnistystä, kun taas dynaamiset parametrit tulevat voimaan heti.
# 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'Parametriryhmän asetusten muokkaaminen
Kun olet luonut mukautetun parametriryhmän, voit muokata yksittäisiä parametreja modify-db-parameter-group CLI-komennolla tai konsolissa. Parametreilla on käyttöönottotapa: immediate (tulee voimaan ilman uudelleenkäynnistystä) tai pending-reboot (tulee voimaan vasta seuraavan instanssin uudelleenkäynnistyksen jälkeen).
Tutkintoa varten tärkeät parametrit: max_connections (samanaikaisten yhteyksien raja), innodb_buffer_pool_size (MySQL:n muistissa olevan välimuistin koko), log_bin_trust_function_creators (sallii binäärilokiin kirjoittavat tallennetut funktiot) ja rds.force_ssl (pakottaa SSL:n PostgreSQL:ssä).
# 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'Lisäominaisuuksien option-ryhmät
Option-ryhmät muistuttavat parametriryhmiä, mutta ne hallitsevat tietokantamoottorin lisäominaisuuksia kokoonpanon säätämisen sijaan. Niitä käytetään pääasiassa Oraclen ja SQL Serverin kanssa ominaisuuksien, kuten Oracle Application Expressin (APEX), SQL Server Transparent Data Encryptionin (TDE) tai SQL Server Active Directory -todennuksen, käyttöönottoon.
Jokaisella option-ryhmän optiolla voi olla omat asetuksensa. Option-ryhmät versioidaan tietokantamoottoriperhekohtaisesti, ja ne on liitettävä DB-instanssiin. Useimmat avoimen lähdekoodin tietokantamoottorit (MySQL, PostgreSQL ja MariaDB) tarvitsevat mukautettuja option-ryhmiä harvoin.
IAM-tietokantatodennus
RDS tukee IAM-tietokantatodennusta MySQL- ja PostgreSQL-moottoreissa. Pysyvän käyttäjätunnuksen ja salasanan sijaan sovelluksesi ottaa käyttöön IAM-roolin ja luo väliaikaisen todennustunnuksen (joka on voimassa 15 minuuttia) käyttämällä generate-db-auth-token AWS CLI -komentoa tai SDK-kutsua.
Hyötyjä ovat pitkäkestoisten tietokantasalasanojen tarpeettomuus, tunnistetietojen automaattinen kierto IAM-käytännöillä ja keskitetty käyttöoikeuksien hallinta. Ominaisuus edellyttää asetuksen --enable-iam-database-authentication käyttöönottoa instanssissa sekä IAM-rooliin yhdistetyn tietokantakäyttäjän luomista.
# 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 Managerin integrointi RDS:ään
AWS Secrets Manager voi tallentaa ja kierrättää automaattisesti RDS:n pääsalasanan ja sovelluksen tunnistetiedot. Kun kierto on otettu käyttöön, Secrets Manager kutsuu Lambda-funktiota, joka päivittää tietokannan salasanan ja tallentaa uuden arvon salaisuuteen. Sovelluksesi hakee uusimman salaisuuden arvon Secrets Manager -ohjelmointirajapinnan kautta, joten sillä on aina kelvolliset tunnistetiedot.
Kun luot RDS-instanssin konsolissa, voit ottaa Secrets Managerin hallinnan käyttöön pääkäyttäjän tunnistetiedoille. Näin koodiin tai ympäristömuuttujiin ei tarvitse määrittää salasanoja suoraan.
# 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- ja suojausryhmäkontrollit
RDS-instanssit toimivat VPC:ssä ja käyttävät DB-aliverkkoryhmiä määrittämään, mihin aliverkkoihin (useiden AZ-alueiden yli) instanssi voidaan sijoittaa. Suositeltu käytäntö on sijoittaa RDS yksityisiin aliverkkoihin, joilla ei ole suoraa internet-yhteyttä.
Suojausryhmät määrittävät, mitkä IP-osoitteet ja muut suojausryhmät voivat käyttää DB-porttia (esimerkiksi MySQL:n TCP-porttia 3306). Sovelluskerroksen suojausryhmän tulee olla ainoa sallittu lähde RDS:n suojausryhmässä, mikä toteuttaa verkon vähimpien oikeuksien periaatteen. Älä koskaan määritä 0.0.0.0/0-arvoa (kaikki liikenne) saapuvan liikenteen säännöksi RDS:n suojausryhmään.
Tehostettu valvonta ja tarkastuslokit
Enhanced Monitoring julkaisee käyttöjärjestelmätason mittarit (suoritin, muisti, tiedostojärjestelmä ja levy-I/O) CloudWatch Logsiin 1–60 sekunnin välein, mikä tarjoaa tarkemman aikavälin kuin CloudWatchin oletusarvoiset 60 sekunnin mittarit. Se käyttää DB-isännässä toimivaa agenttia, ja se on saatavilla kaikille moottoreille SQL Serverin peilaustilaa lukuun ottamatta.
Tietokannan tarkastuslokit (yleinen kyselyloki ja hitaiden kyselyiden loki MySQL:ssä sekä pgaudit PostgreSQL:ssä) voidaan julkaista CloudWatch Logsiin vaatimustenmukaisuuden analysointia varten. Ota nämä käyttöön parametriryhmien kautta ja määritä sen jälkeen lokien vienti RDS-konsolissa kohdassa Log exports.
# Enable PostgreSQL logs export to CloudWatch
aws rds modify-db-instance \
--db-instance-identifier mydb \
--cloudwatch-logs-export-configuration 'EnableLogTypes=[postgresql,upgrade]' \
--apply-immediatelyTietoturvan parhaiden käytäntöjen yhteenveto
RDS:n tärkeimmät tietoturvan parhaat käytännöt SAA-C03-tutkintoa varten:
- Ota levossa olevien tietojen salaus käyttöön KMS CMK:lla, kun luot instanssin
- Pakota siirrettävien tietojen SSL/TLS-salaus parametriryhmän asetuksilla
- Sijoita instanssit yksityisiin aliverkkoihin, joissa on rajoittavat suojausryhmät
- Käytä IAM-tietokantatodennusta tai Secrets Manageria pysyvien salasanojen välttämiseksi
- Ota CloudTrail käyttöön RDS:n API-kutsujen kirjaamista varten ja CloudWatch Logs tietokannan tarkastuslokeja varten
- Käytä AWS Config -sääntöjä (esimerkiksi
rds-instance-public-access-check) virheellisten määritysten havaitsemiseen
Pikatarkistus
Testaa tämän oppitunnin AWS Solutions Architect (SAA-C03) -käsitteiden ymmärtämistä.
Oppitunnin yhteenveto
Tässä oppitunnissa opit, että RDS:n levossa olevien tietojen salaus käyttää KMS:ää ja se on otettava käyttöön instanssia luotaessa, parametriryhmät hallitsevat tietokantamoottorin kokoonpanoa, mukaan lukien siirrettävien tietojen SSL/TLS-salauksen pakottaminen, ja että IAM-tietokantatodennus ja Secrets Manager poistavat pysyvien tietokantasalasanojen tarpeen. Seuraavaksi tutustumme DynamoDB-tauluihin, kohteisiin ja ensisijaisen avaimen suunnitteluun.
Opi Cloud & IT Cert Prep tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 150
- Oppitunnit
- 600
Usein kysytyt kysymykset
Onko oppitunti ”RDS:n tietoturva: salaus ja parametriryhmät” ilmainen?
Kyllä – oppitunnin ”RDS:n tietoturva: salaus ja parametriryhmät” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cloud & IT Cert Prep-kurssin, päivitä CoddyKit PROhon. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”RDS:n tietoturva: salaus ja parametriryhmät”?
Salaatte RDS:n levossa olevan datan KMS:n avulla, hallitsette yhteystason salausta parametriryhmillä ja suojaatte yhteydet IAM-todennuksella. Harjoittelet Cloud & IT Cert Prep-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Cloud & IT Cert Prep-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Cloud & IT Cert Prep-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”RDS:n tietoturva: salaus ja parametriryhmät”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Cloud & IT Cert Prep-oppitunnilla?
Kyllä. Jokainen Cloud & IT Cert Prep-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- RDS-moottorit ja instanssiluokat
- Multi-AZ ja automaattiset varmuuskopiot
- Read Replicat lukujen skaalaamiseen
- RDS:n tietoturva: salaus ja parametriryhmät