AWS - Relational Database (RDS) Enum
基本信息
AWS 提供的 Relational Database Service (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 自动生成 它
告诉 RDS 在 AWS Secret Manager 中管理它,并使用 KMS 密钥加密
认证
有 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 透明数据加密选项需要包含在该组中。
需要认识到,一旦将 TDE 选项添加到选项组中,它将成为永久性设置,无法删除。
TDE 加密模式:
TDE 提供两种不同的加密模式:
TDE 表空间加密:此模式加密整个表,提供更广泛的数据保护范围。
TDE 列加密:此模式专注于加密数据库中的特定单个元素,允许更细粒度地控制加密的数据。
了解这些前提条件和 TDE 的操作细节对于在 RDS 中有效实施和管理加密至关重要,确保数据安全并符合必要的标准。
枚举
未认证访问
AWS - RDS Unauthenticated Enum权限提升
AWS - RDS Privesc利用后操作
AWS - RDS Post Exploitation持久化
AWS - RDS PersistenceSQL 注入
有一些方法可以使用 SQL 语法 访问 DynamoDB 数据,因此,典型的 SQL 注入也是可能的。
Last updated