AWS - Relational Database (RDS) Enum
기본 정보
AWS에서 제공하는 **관계형 데이터베이스 서비스 (RDS)**는 클라우드에서 관계형 데이터베이스의 배포, 운영 및 확장을 간소화하기 위해 설계되었습니다. 이 서비스는 하드웨어 프로비저닝, 데이터베이스 구성, 패치 및 백업과 같은 노동 집약적인 작업을 자동화하면서 비용 효율성과 확장성의 장점을 제공합니다.
AWS RDS는 MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server 및 Amazon Aurora와 같은 다양한 널리 사용되는 관계형 데이터베이스 엔진을 지원하며 MySQL 및 PostgreSQL 모두와 호환됩니다.
RDS의 주요 기능은 다음과 같습니다:
데이터베이스 인스턴스 관리가 간소화됩니다.
읽기 레플리카를 생성하여 읽기 성능을 향상시킵니다.
다중 가용 영역 (AZ) 배포를 구성하여 고가용성 및 장애 조치 메커니즘을 보장합니다.
다른 AWS 서비스와의 통합, 예를 들어:
견고한 액세스 제어를 위한 AWS Identity and Access Management (IAM).
포괄적인 모니터링 및 메트릭을 위한 AWS CloudWatch.
안전한 암호화를 보장하기 위한 AWS Key Management Service (KMS).
자격 증명
DB 클러스터를 생성할 때 마스터 사용자 이름을 구성할 수 있습니다 (기본값은 admin
). 이 사용자의 암호를 생성하려면 다음을 수행할 수 있습니다:
직접 암호를 지정
RDS에게 자동 생성하도록 지시
KMS 키로 암호화된 AWS Secret Manager에서 관리하도록 RDS에게 지시
인증
3가지 유형의 인증 옵션이 있지만 마스터 암호를 사용하는 것은 항상 허용됩니다:
공개 액세스 및 VPC
기본적으로 데이터베이스에는 공개 액세스가 허용되지 않습니다, 그러나 허용될 수 있습니다. 따라서 기본적으로 동일한 VPC의 기기만 액세스할 수 있습니다. 선택한 보안 그룹 (EC2 SG에 저장됨)이 허용하는 경우에만 액세스할 수 있습니다.
DB 인스턴스를 노출하는 대신 RDS Proxy를 생성하여 DB 클러스터의 확장성 및 가용성을 향상시킬 수 있습니다.
또한 데이터베이스 포트를 수정할 수도 있습니다.
암호화
암호화는 기본적으로 활성화되어 있으며 AWS 관리형 키를 사용합니다 (대신 CMK를 선택할 수 있음).
암호화를 활성화하면 저장소, 스냅샷, 읽기 레플리카 및 백업에 대한 정지 상태 암호화가 활성화됩니다. 이 암호화를 관리하기 위한 키는 KMS를 사용하여 발급할 수 있습니다. 이 수준의 암호화를 데이터베이스가 생성된 후에 추가할 수 없습니다. 데이터베이스 생성 중에 수행해야 합니다.
그러나 다음과 같이 암호화되지 않은 데이터베이스를 암호화할 수 있는 회피 방법이 있습니다. 암호화되지 않은 데이터베이스의 스냅샷을 생성하고 해당 스냅샷의 암호화된 사본을 생성한 후 해당 암호화된 스냅샷을 사용하여 새 데이터베이스를 생성하면 데이터베이스가 암호화됩니다.
투명한 데이터 암호화 (TDE)
RDS의 응용 프로그램 수준에서 제공되는 암호화 기능 외에도 RDS는 데이터를 안전하게 보호하기 위한 추가 플랫폼 수준의 암호화 메커니즘을 지원합니다. 이는 Oracle 및 SQL Server용 **투명한 데이터 암호화 (TDE)**를 포함합니다. 그러나 데이터를 안전하게 암호화하여 보안을 강화하는 TDE는 데이터베이스 성능에 영향을 줄 수 있음을 명심해야 합니다. 특히 MySQL 암호화 함수 또는 Microsoft Transact-SQL 암호화 함수와 함께 사용할 때 이러한 성능 영향이 특히 두드러집니다.
TDE를 활용하려면 다음과 같은 초기 단계가 필요합니다:
옵션 그룹 연결:
데이터베이스는 옵션 그룹과 연결되어야 합니다. 옵션 그룹은 보안 향상을 포함한 데이터베이스 관리를 용이하게 하는 설정 및 기능의 컨테이너로 작용합니다.
그러나 옵션 그룹은 특정 데이터베이스 엔진 및 버전에만 사용할 수 있음을 인식하는 것이 중요합니다.
옵션 그룹에 TDE 포함:
옵션 그룹과 연결된 후 Oracle Transparent Data Encryption 옵션을 해당 그룹에 포함해야 합니다.
TDE 옵션이 옵션 그룹에 추가되면 영구적인 구성 요소가 되어 제거할 수 없음을 인식하는 것이 중요합니다.
TDE 암호화 모드:
TDE에는 두 가지 다른 암호화 모드가 있습니다:
TDE 테이블스페이스 암호화: 이 모드는 전체 테이블을 암호화하여 데이터 보호 범위를 확대합니다.
TDE 열 암호화: 이 모드는 데이터베이스 내의 특정 개별 요소를 암호화하는 데 중점을 두어 데이터가 암호화되는 범위를 더 세밀하게 제어할 수 있습니다.
이러한 선행 조건과 TDE의 운영적 복잡성을 이해하는 것은 RDS 내에서 암호화를 효과적으로 구현하고 관리하여 데이터 보안과 필요한 표준 준수를 보장하는 데 중요합니다.
열거
인증되지 않은 액세스
pageAWS - RDS Unauthenticated Enum권한 상승
pageAWS - RDS Privesc사후 공격
pageAWS - RDS Post Exploitation지속성
pageAWS - RDS PersistenceSQL Injection
SQL 구문을 사용하여 DynamoDB 데이터에 액세스하는 방법이 있으므로, 전형적인 SQL 인젝션도 가능합니다.
最終更新