你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
为 AWS 上的开源关系数据库启用 Defender(预览版)
Microsoft Defender for Cloud 会检测 AWS 环境中的异常活动,这些活动表示存在对以下 RDS 实例类型的数据库的异常和可能有害的访问或攻击尝试:
- Aurora PostgreSQL
- Aurora MySQL
- PostgreSQL
- MySQL
- MariaDB
若要获取 Microsoft Defender 计划的警报,需要按照本页上的说明为 AWS 上的开源关系数据库启用 Defender。
AWS 上的开源关系数据库的 Defender 计划还支持发现帐户内敏感数据,并利用发现的结果丰富 Defender for Cloud 体验。 Defender CSPM 中也包含此功能。
请参阅适用于开源关系数据库的 Microsoft Defender 概述,了解有关此 Microsoft Defender 计划的更多信息。
先决条件
需要 Microsoft Azure 订阅。 如果你没有 Azure 订阅,可以注册免费订阅。
必须在 Azure 订阅上启用 Microsoft Defender for Cloud。
至少有一个已连接的 AWS 帐户具有所需的访问权限和权限。
区域可用性:所有公共 AWS 区域(不包括特拉维夫、米兰、雅加达、西班牙和巴林)。
启用适用于开源关系数据库的 Defender
登录到 Azure 门户
搜索并选择“Microsoft Defender for Cloud”。
选择环境设置。
选择相关 AWS 帐户。
找到“数据库”计划并选择“设置”。
将开源关系数据库切换为“开启”。
选择“配置访问权限”。
在部署方法部分中,选择“下载”。
按照 AWS 说明中的更新堆栈进行操作。 此过程将创建或更新具有所需权限的 CloudFormation 模板。
选中该框,确认 CloudFormation 模板已在 AWS 环境(堆栈)上更新。
选择“查看并生成”。
查看显示的信息,然后选择“更新”。
Defender for Cloud 将自动更改参数和选项组设置。
DefenderForCloud-DataThreatProtectionDB 角色所需的权限
下表显示了在下载 CloudFormation 模板并更新 AWS Stack 时向创建或更新的角色授予的所需权限的列表。
已添加权限 | 说明 |
---|---|
rds:AddTagsToResource | 在创建的选项组和参数组上添加标签 |
rds:DescribeDBClusterParameters | 描述群集组内的参数 |
rds:CreateDBParameterGroup | 创建数据库参数组 |
rds:ModifyOptionGroup | 修改选项组中的选项 |
rds:DescribeDBLogFiles | 描述日志文件 |
rds:DescribeDBParameterGroups | 描述数据库参数组 |
rds:CreateOptionGroup | 创建选项组 |
rds:ModifyDBParameterGroup | 修改数据库参数组中的参数 |
rds:DownloadDBLogFilePortion | 下载日志文件 |
rds:DescribeDBInstances | 描述数据库 |
rds:ModifyDBClusterParameterGroup | 修改群集参数组中的群集参数 |
rds:ModifyDBInstance | 根据需要修改数据库以分配参数组或选项组 |
rds:ModifyDBCluster | 根据需要修改群集以分配群集参数组 |
rds:DescribeDBParameters | 描述数据库组中的参数 |
rds:CreateDBClusterParameterGroup | 创建群集参数组 |
rds:DescribeDBClusters | 描述群集 |
rds:DescribeDBClusterParameterGroups | 描述群集参数组 |
rds:DescribeOptionGroups | 描述选项组 |
受影响的参数和选项组设置
在 RDS 实例上为开源关系数据库启用 Defender 时,Defender for Cloud 会自动使用审核日志启用审核,以便能够使用和分析数据库的访问模式。
每个关系数据库管理系统或服务类型都有自己的配置。 下表描述了受 Defender for Cloud 影响的配置(这些配置无需手动设置,仅供参考)。
类型 | 参数 | 值 |
---|---|---|
PostgreSQL 和 Aurora PostgreSQL | log_connections | 1 |
PostgreSQL 和 Aurora PostgreSQL | log_disconnections | 1 |
Aurora MySQL 群集参数组 | server_audit_logging | 1 |
Aurora MySQL 群集参数组 | server_audit_events | - 如果存在,则扩展该值以包括 CONNECT、QUERY。 - 如果不存在,则添加值 CONNECT、QUERY。 |
Aurora MySQL 群集参数组 | server_audit_excl_users | 如果存在,请扩展该值以包含 rdsadmin。 |
Aurora MySQL 群集参数组 | server_audit_incl_users | - 如果该参数存在且具有值,同时 rdsadmin 作为包含的一部分,则该参数不会出现在 SERVER_AUDIT_EXCL_USER 中,并且包含的值为空。 |
MySQL 和 MariaDB 需要一个选项组,其中 MARIADB_AUDIT_PLUGIN 具有以下选项(如果该选项不存在,请添加该选项。如果该选项存在,请扩展该选项中的值):
选项名称 | 值 |
---|---|
SERVER_AUDIT_EVENTS | 如果存在,则扩展该值以包含 CONNECT 如果不存在,请添加值 CONNECT。 |
SERVER_AUDIT_EXCL_USER | 如果存在,请扩展该值以包含 rdsadmin。 |
SERVER_AUDIT_INCL_USERS | 如果该参数存在并带有值,并且 rdsadmin 是包含的一部分,则它不会出现在 SERVER_AUDIT_EXCL_USER 中,并且包含的值为空。 |
重要
可能需要重新启动实例才能应用更改。
如果使用默认参数组,系统将新建一个参数组,其中包含所需的参数更改,前缀为 defenderfordatabases*
。
如果新建了参数组或者更新了静态参数,则在重新启动实例之前,它们才会生效。
注意
如果参数组已存在,则会相应更新。
MariaDB 10.2 及更高版本、MySQL 8.0.25 及更高 8.0 版本以及所有 MySQL 5.7 版本均支持 MARIADB_AUDIT_PLUGIN。