AWS - Relational Database (RDS) Enum
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Usługa Relacyjnej Bazy Danych (RDS) oferowana przez AWS jest zaprojektowana w celu uproszczenia wdrażania, obsługi i skalowania relacyjnej bazy danych w chmurze. Usługa ta oferuje zalety efektywności kosztowej i skalowalności, automatyzując pracochłonne zadania, takie jak provisionowanie sprzętu, konfiguracja bazy danych, łatanie i tworzenie kopii zapasowych.
AWS RDS obsługuje różne powszechnie używane silniki relacyjnych baz danych, w tym MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server i Amazon Aurora, z kompatybilnością zarówno dla MySQL, jak i PostgreSQL.
Kluczowe cechy RDS obejmują:
Zarządzanie instancjami bazy danych jest uproszczone.
Tworzenie replik odczytu w celu zwiększenia wydajności odczytu.
Konfiguracja wdrożeń w wielu strefach dostępności (AZ) w celu zapewnienia wysokiej dostępności i mechanizmów przełączania awaryjnego.
Integracja z innymi usługami AWS, takimi jak:
AWS Identity and Access Management (IAM) dla solidnej kontroli dostępu.
AWS CloudWatch dla kompleksowego monitorowania i metryk.
AWS Key Management Service (KMS) w celu zapewnienia szyfrowania w spoczynku.
Podczas tworzenia klastra DB główny nazwa użytkownika może być skonfigurowana (admin
domyślnie). Aby wygenerować hasło tego użytkownika, możesz:
Wskazać hasło samodzielnie
Powiedzieć RDS, aby automatycznie wygenerował je
Powiedzieć RDS, aby zarządzał nim w AWS Secret Manager zaszyfrowanym kluczem KMS
Istnieją 3 typy opcji uwierzytelniania, ale użycie głównego hasła jest zawsze dozwolone:
Domyślnie nie przyznaje się publicznego dostępu do baz danych, jednak może być przyznany. Dlatego domyślnie tylko maszyny z tej samej VPC będą mogły uzyskać do niej dostęp, jeśli wybrana grupa zabezpieczeń (przechowywana w EC2 SG) na to pozwala.
Zamiast narażać instancję DB, można utworzyć RDS Proxy, który poprawia skalowalność i dostępność klastra DB.
Ponadto port bazy danych może być również modyfikowany.
Szyfrowanie jest włączone domyślnie przy użyciu zarządzanego klucza AWS (można wybrać zamiast tego CMK).
Włączając swoje szyfrowanie, włączasz szyfrowanie w spoczynku dla swojego przechowywania, migawków, replik odczytu i kopii zapasowych. Klucze do zarządzania tym szyfrowaniem mogą być wydawane przy użyciu KMS. Nie można dodać tego poziomu szyfrowania po utworzeniu bazy danych. Musisz to zrobić podczas jej tworzenia.
Jednak istnieje obejście, które pozwala na szyfrowanie nieszyfrowanej bazy danych w następujący sposób. Możesz utworzyć migawkę swojej nieszyfrowanej bazy danych, utworzyć zaszyfrowaną kopię tej migawki, użyć tej zaszyfrowanej migawki do utworzenia nowej bazy danych, a następnie, w końcu, twoja baza danych będzie zaszyfrowana.
Obok możliwości szyfrowania inherentnych dla RDS na poziomie aplikacji, RDS obsługuje również dodatkowe mechanizmy szyfrowania na poziomie platformy, aby chronić dane w spoczynku. Obejmuje to Szyfrowanie Danych w Trybie Przezroczystym (TDE) dla Oracle i SQL Server. Jednak ważne jest, aby zauważyć, że chociaż TDE zwiększa bezpieczeństwo poprzez szyfrowanie danych w spoczynku, może również wpływać na wydajność bazy danych. Ten wpływ na wydajność jest szczególnie zauważalny, gdy jest używany w połączeniu z funkcjami kryptograficznymi MySQL lub funkcjami kryptograficznymi Microsoft Transact-SQL.
Aby skorzystać z TDE, wymagane są pewne wstępne kroki:
Stowarzyszenie grupy opcji:
Baza danych musi być powiązana z grupą opcji. Grupy opcji służą jako kontenery dla ustawień i funkcji, ułatwiając zarządzanie bazą danych, w tym ulepszenia bezpieczeństwa.
Jednak ważne jest, aby zauważyć, że grupy opcji są dostępne tylko dla określonych silników baz danych i wersji.
Włączenie TDE w grupie opcji:
Po powiązaniu z grupą opcji, opcja Oracle Transparent Data Encryption musi być włączona w tej grupie.
Ważne jest, aby uznać, że po dodaniu opcji TDE do grupy opcji staje się ona stałym elementem i nie może być usunięta.
Tryby szyfrowania TDE:
TDE oferuje dwa odrębne tryby szyfrowania:
Szyfrowanie przestrzeni tabel TDE: Ten tryb szyfruje całe tabele, zapewniając szerszy zakres ochrony danych.
Szyfrowanie kolumn TDE: Ten tryb koncentruje się na szyfrowaniu konkretnych, indywidualnych elementów w bazie danych, co pozwala na bardziej szczegółową kontrolę nad tym, jakie dane są szyfrowane.
Zrozumienie tych wymagań wstępnych i operacyjnych zawirowań TDE jest kluczowe dla skutecznego wdrażania i zarządzania szyfrowaniem w RDS, zapewniając zarówno bezpieczeństwo danych, jak i zgodność z niezbędnymi standardami.
Istnieją sposoby na dostęp do danych DynamoDB za pomocą składni SQL, dlatego typowe iniekcje SQL są również możliwe.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)