0Pricing
AWS Solutions Architect · Ders

RDS Güvenliği: Şifreleme ve Parametre Grupları

RDS'yi beklemede KMS ile şifreleyecek, bağlantı düzeyindeki şifrelemeyi parametre gruplarıyla denetleyecek ve IAM kimlik doğrulamasıyla güvenliği sağlayacaksınız.

RDS Güvenliği: Şifreleme ve Parametre Grupları, CoddyKit'te ücretsiz bir AWS Solutions Architect dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AWS Solutions Architect öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

Beklemede RDS Şifrelemesi

RDS, AWS Key Management Service (KMS) kullanarak bekleyen verilerin şifrelenmesini destekler. DB instance oluşturma sırasında şifrelemeyi etkinleştirdiğinizde, temel EBS birimlerindeki tüm veriler, otomatik yedeklemeler, anlık görüntüleri ve Read Replicas belirtilen KMS anahtarı kullanılarak şifrelenir.

Şifreleme oluşturma sırasında etkinleştirilmelidir—mevcut şifrelenmemiş bir instance'ı yerinde şifreleyemezsiniz. Geçici çözüm olarak şifrelenmemiş bir anlık görüntü alın, şifrelemeyi etkinleştirerek kopyalayın ve şifrelenmiş anlık görüntüden geri yükleyin. KMS anahtarı, daha fazla denetim ve denetim kaydı için AWS tarafından yönetilen bir anahtar veya Müşteri Tarafından Yönetilen Anahtar (CMK) olabilir.

# 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-id

Mevcut Şifrelenmemiş RDS Örneğini Şifreleme

Mevcut bir örnekte şifrelemeyi etkinleştiremeyeceğiniz için şu geçiş yolunu izleyin:

  1. Şifrelenmemiş örneğin manuel anlık görüntüsünü oluşturun
  2. Anlık görüntüyü kopyalayın ve kopyalama sırasında bir KMS anahtarı belirterek şifrelemeyi etkinleştirin
  3. Şifrelenmiş anlık görüntüden yeni bir DB örneği geri yükleyin
  4. Uygulama uç noktanızı yeni örneğe güncelleyin
  5. Eski şifrelenmemiş örneği silin

Yeni şifrelenmiş örneği geçişten önce senkronize tutmak için DMS kullanmadığınız sürece bu yaklaşım bir miktar kesintiye neden olur.

# 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/rds

SSL/TLS ile Aktarım Sırasında Şifreleme

RDS, aktarım sırasında verileri SSL/TLS kullanarak şifreler. Her altyapı, istemci sürücünüzün sunucunun kimliğini doğrulamak için kullandığı, indirilebilir bir CA sertifikası sağlar. SSL bağlantılarını zorunlu kılmak için veritabanı altyapısını şifrelenmemiş bağlantıları reddedecek şekilde yapılandırın.

MySQL için parametre grubunda require_secure_transport = ON parametresini ayarlayın. PostgreSQL için ssl = 1 değerini ve isteğe bağlı olarak SSL dışı bağlantıları tamamen reddetmek üzere rds.force_ssl = 1 değerini ayarlayın. Birçok Java ve Python veritabanı sürücüsü, bağlantı dizesi parametresi olarak sslmode=require değerini de kabul eder.

# 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-cert

Parametre Grupları: Bunlar Nedir?

Parametre grupları, bir RDS örneğine bağladığınız, adlandırılmış altyapı yapılandırma ayarları koleksiyonlarıdır. Bunlar MySQL'de my.cnf veya PostgreSQL'de postgresql.conf dosyasını düzenlemenin RDS karşılığıdır; ancak AWS tarafından yönetilir ve her altyapı ailesi için sürümlendirilir.

AWS, her altyapı sürümü için bir varsayılan parametre grubu sağlar; ancak bu grubun ayarları düzenlenemez. Parametreleri özelleştirmek için bir özel parametre grubu oluşturun, istediğiniz parametreleri değiştirin ve bunu DB örneğinizle ilişkilendirin. Statik parametrelerdeki değişiklikler yeniden başlatma gerektirir; dinamik parametreler ise hemen etkili olur.

# 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'

Parametre Grubu Ayarlarını Değiştirme

Özel bir parametre grubu oluşturduktan sonra tek tek parametreleri modify-db-parameter-group CLI komutunu veya konsolu kullanarak değiştirirsiniz. Parametrelerin bir uygulama yöntemi vardır: immediate (yeniden başlatma olmadan etkili olur) veya pending-reboot (yalnızca bir sonraki örnek yeniden başlatmasından sonra etkili olur).

Sınav için bilinmesi gereken önemli parametreler: max_connections (eşzamanlı bağlantıların sınırı), innodb_buffer_pool_size (MySQL bellek içi önbelleğinin boyutu), log_bin_trust_function_creators (ikili günlüğe yazan saklı işlevlere izin verir) ve rds.force_ssl (PostgreSQL için SSL'yi zorunlu kılar).

# 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'

Ek Özellikler için Seçenek Grupları

Seçenek grupları parametre gruplarına benzer; ancak yapılandırma ayarlarını düzenlemek yerine veritabanı altyapısına yönelik ek özellikleri denetler. Öncelikle Oracle ve SQL Server ile Oracle Application Express (APEX), SQL Server Transparent Data Encryption (TDE) veya SQL Server Active Directory kimlik doğrulaması gibi özellikleri etkinleştirmek için kullanılırlar.

Bir seçenek grubundaki her seçeneğin kendine ait ayarları olabilir. Seçenek grupları her altyapı ailesi için sürümlendirilir ve DB örneğiyle ilişkilendirilmelidir. Açık kaynak altyapılarının çoğunda (MySQL, PostgreSQL, MariaDB) özel seçenek gruplarına nadiren ihtiyaç duyulur.

IAM Veritabanı Kimlik Doğrulaması

RDS, MySQL ve PostgreSQL altyapıları için IAM veritabanı kimlik doğrulamasını destekler. Uygulamanız statik bir kullanıcı adı ve parola kullanmak yerine bir IAM rolünü üstlenir ve generate-db-auth-token AWS CLI komutunu veya SDK çağrısını kullanarak geçici bir kimlik doğrulama belirteci (15 dakika geçerli) oluşturur.

Avantajları arasında uzun süre geçerli veritabanı parolalarının kullanılmaması, IAM politikaları aracılığıyla kimlik bilgilerinin otomatik olarak değiştirilmesi ve merkezi erişim denetimi bulunur. Bu özellik için örnekte --enable-iam-database-authentication seçeneğinin etkinleştirilmesi ve bir IAM rolüne eşlenen veritabanı kullanıcısının oluşturulması gerekir.

# 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-1

Secrets Manager'ın RDS ile Entegrasyonu

AWS Secrets Manager, RDS ana parolanızı ve uygulama kimlik bilgilerinizi saklayabilir ve bunları otomatik olarak değiştirebilir. Değiştirme etkinleştirildiğinde Secrets Manager, veritabanı parolasını güncelleyen ve yeni değeri gizli bilgide saklayan bir Lambda işlevini çağırır; uygulamanız en güncel gizli bilgi değerini Secrets Manager API'si üzerinden alır ve böylece her zaman geçerli kimlik bilgilerine sahip olur.

Konsolda bir RDS örneği oluştururken ana kimlik bilgileri için Secrets Manager yönetimini seçebilirsiniz. Bu, kod veya ortam değişkenleri içinde sabit kodlanmış parolaların bulunmasını önler.

# 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.tool

VPC ve Güvenlik Grubu Denetimleri

RDS örnekleri bir VPC içinde çalışır ve örneğin hangi alt ağlara (birden çok AZ genelinde) yerleştirilebileceğini tanımlamak için DB alt ağ gruplarını kullanır. En iyi uygulama, RDS'yi doğrudan internet erişimi olmayan özel alt ağlara yerleştirmektir.

Güvenlik grupları, hangi IP adreslerinin ve diğer güvenlik gruplarının DB bağlantı noktasına (ör. MySQL için TCP 3306) erişebileceğini denetler. Uygulama katmanının güvenlik grubu, RDS güvenlik grubunda izin verilen tek kaynak olmalıdır; bu, ağ düzeyinde en az ayrıcalık ilkesini uygular. Bir RDS güvenlik grubunda gelen kural olarak hiçbir zaman 0.0.0.0/0 (tüm trafik) yapılandırmayın.

Geliştirilmiş İzleme ve Denetim Günlükleri

Geliştirilmiş İzleme, işletim sistemi düzeyindeki ölçümleri (CPU, bellek, dosya sistemi, disk G/Ç) her 1–60 saniyede bir CloudWatch Logs'a yayımlar ve varsayılan 60 saniyelik CloudWatch ölçümlerinden daha ayrıntılı bir çözünürlük sağlar. DB ana bilgisayarında çalışan bir aracı kullanır ve SQL Server yansıtma modu dışındaki tüm altyapılarda kullanılabilir.

Veritabanı denetim günlükleri (MySQL için genel sorgu günlüğü ve yavaş sorgu günlüğü; PostgreSQL için pgaudit), uyumluluk analizi amacıyla CloudWatch Logs'a yayımlanabilir. Bunları parametre grupları aracılığıyla etkinleştirin, ardından RDS konsolunda Log exports bölümünden günlük dışa aktarımlarını yapılandırın.

# Enable PostgreSQL logs export to CloudWatch
aws rds modify-db-instance \
  --db-instance-identifier mydb \
  --cloudwatch-logs-export-configuration 'EnableLogTypes=[postgresql,upgrade]' \
  --apply-immediately

Güvenlik En İyi Uygulamaları Özeti

SAA-C03 sınavı için temel RDS güvenlik en iyi uygulamaları:

  • Örneği oluştururken bir KMS CMK ile beklemedeki şifrelemeyi etkinleştirin
  • Parametre grubu ayarları aracılığıyla aktarım sırasında SSL/TLS'yi zorunlu kılın
  • Örnekleri kısıtlayıcı güvenlik gruplarına sahip özel alt ağlara yerleştirin
  • Statik parolalardan kaçınmak için IAM veritabanı kimlik doğrulamasını veya Secrets Manager'ı kullanın
  • RDS API çağrılarını günlüğe kaydetmek için CloudTrail'i, veritabanı denetim günlükleri için de CloudWatch Logs'u etkinleştirin
  • Yanlış yapılandırmaları tespit etmek için AWS Config kurallarını (ör. rds-instance-public-access-check) kullanın

Hızlı Kontrol

Bu derste ele alınan AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: RDS beklemedeki şifreleme için KMS kullanır ve bu şifreleme oluşturma sırasında etkinleştirilmelidir; parametre grupları, aktarım sırasında SSL/TLS'yi zorunlu kılma dahil olmak üzere altyapı yapılandırmasını denetler; ayrıca IAM veritabanı kimlik doğrulaması ve Secrets Manager statik veritabanı parolalarını ortadan kaldırır. Sırada DynamoDB tablolarını, öğelerini ve birincil anahtar tasarımını inceleyeceğiz.

Sıkça Sorulan Sorular

“RDS Güvenliği: Şifreleme ve Parametre Grupları” dersi ücretsiz mi?

Evet — “RDS Güvenliği: Şifreleme ve Parametre Grupları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AWS Solutions Architect kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

“RDS Güvenliği: Şifreleme ve Parametre Grupları” dersinde ne öğreneceğim?

RDS'yi beklemede KMS ile şifreleyecek, bağlantı düzeyindeki şifrelemeyi parametre gruplarıyla denetleyecek ve IAM kimlik doğrulamasıyla güvenliği sağlayacaksınız. AWS Solutions Architect ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AWS Solutions Architect öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AWS Solutions Architect, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“RDS Güvenliği: Şifreleme ve Parametre Grupları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AWS Solutions Architect dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AWS Solutions Architect dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. RDS Motorları ve Örnek Sınıfları
  2. Multi-AZ ve Otomatik Yedeklemeler
  3. Okuma Ölçeklendirmesi için Okuma Kopyaları
  4. RDS Güvenliği: Şifreleme ve Parametre Grupları
← AWS Solutions Architect Sayfasına Dön