审核 Amazon DocumentDB 事件
使用 Amazon DocumentDB(与 MongoDB 兼容),您可以审核在集群中执行的事件。记录的事件的示例包括成功和失败的身份验证尝试、删除数据库中的集合或创建索引。默认情况下,在 Amazon DocumentDB 上禁用审计,并要求您选择使用该功能。
启用审核后,Amazon DocumentDB 会将数据定义语言 (DDL)、身份验证、授权和用户管理事件记录到 Amazon CloudWatch Logs。启用审核后,Amazon DocumentDB 会将集群的审核记录(JSON 文档)导出到 Amazon CloudWatch Logs。您可以使用 Amazon CloudWatch Logs 分析、监控和存档 Amazon DocumentDB 审核事件。
虽然 Amazon DocumentDB 不对启用审核额外收费,但您需要为使用 CloudWatch Logs 按标准费率付费。有关 CloudWatch Logs 定价的信息,请参阅 Amazon CloudWatch 定价。
Amazon DocumentDB 审核功能与使用 AWS CloudTrail 监控的服务资源的使用有明显不同。CloudTrail 记录使用 AWS 命令行界面 (AWS CLI) 或 AWS 管理控制台对 AWS 资源(如集群、实例、参数组和快照)执行的操作。使用 CloudTrail 审计 AWS 资源默认处于启用状态,并且无法禁用。Amazon DocumentDB 审计功能是一种可选功能。它记录在集群中对对象(例如数据库、集合、索引和用户)采取的操作。
支持的事件
Amazon DocumentDB 审计支持以下事件类别:连接、数据定义语言 (DDL)、用户管理 和授权。事件类型如下所示。
事件 类型 | 类别 | 描述 |
---|---|---|
authenticate | Connection | 对新连接进行的成功或失败的身份验证尝试。 |
createDatabase | DDL | 创建新数据库。 |
createCollection | DDL | 在数据库中创建新集合。 |
createIndex | DDL | 在集合中创建新索引。 |
dropCollection | DDL | 删除数据库中的集合。 |
dropDatabase | DDL | 删除数据库。 |
dropIndex | DDL | 删除集合中的索引。 |
createUser | 用户管理 | 创建新用户。 |
dropUser | 用户管理 | 删除现有用户。 |
updateUser | UserManagement | 更新现有用户。 |
dropAllUsersFromDatabase | 用户管理 | 删除数据库中的所有用户。 |
authCheck | 授权 | 未经授权的执行操作的尝试。 |
启用审核
在集群上启用审核是一个两步过程。请确保完成这两个步骤,否则审计日志不会发送到 CloudWatch Logs。
步骤 1. 启用 audit_logs 集群参数
要将 audit_logs
参数设置为 enabled
,请创建新的集群参数组或使用现有的自定义参数组,并通过将 audit_logs
设置为 enabled
来修改它。 您无法修改默认参数组。
有关更多信息,请参阅下列内容:
-
创建自定义参数组后,通过将
audit_logs
参数值更改为enabled
来修改它。
步骤 2. 启用 Amazon CloudWatch Logs 导出
当 audit_logs
集群参数的值为 enabled
后,您还必须使 Amazon DocumentDB 将日志导出到 Amazon CloudWatch。如果省略上述步骤中的任何一个,就不会将审计日志发送到 CloudWatch。
创建集群、执行时间点还原或还原快照时,可以使用以下步骤启用 CloudWatch Logs。
使用 AWS 管理控制台
要使用控制台以允许 Amazon DocumentDB 将日志导出到 CloudWatch,请参阅以下主题:
创建集群时 — 在 使用 创建集群和主实例AWS 管理控制台 中,请参阅创建集群: 其他配置(步骤 5:Log exports (日志导出))
修改现有集群时 — 使用 AWS 管理控制台
执行集群快照还原时 — 使用 AWS 管理控制台 从集群快照进行还原,步骤 9。
执行时间点还原时 — 使用 AWS 管理控制台还原到时间点(步骤 9)
使用 AWS CLI
在创建新集群时启用审计日志
以下代码创建集群 sample-cluster
并启用 CloudWatch 审核日志。
对于 Linux、macOS 或 Unix:
aws docdb create-db-cluster \
--db-cluster-identifier
sample-cluster
\--port 27017 \
--engine docdb \
--master-username
master-username
\--master-user-password
password
\--db-subnet-group-name
default
\
--enable-cloudwatch-logs-exports audit
对于 Windows:
aws docdb create-db-cluster ^
--db-cluster-identifier
sample-cluster
^--port 27017 ^
--engine docdb ^
--master-username
master-username
^--master-user-password
password
^--db-subnet-group-name
default
^
--enable-cloudwatch-logs-exports audit
在修改现有集群时启用审计日志
以下代码修改集群 sample-cluster
并启用 CloudWatch 审核日志。
对于 Linux、macOS 或 Unix:
aws docdb modify-db-cluster \
--db-cluster-identifier
sample-cluster
\
--cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit"]}'
对于 Windows:
aws docdb modify-db-cluster ^
--db-cluster-identifier
sample-cluster
^
--cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit"]}'
这些操作的输出将类似于下文(JSON 格式)。
{
"DBCluster": {
"HostedZoneId": "ZNKXH85TT8WVW",
"StorageEncrypted": false,
"DBClusterParameterGroup": "default.docdb4.0",
"MasterUsername": "<user-name>",
"BackupRetentionPeriod": 1,
"Port": 27017,
"VpcSecurityGroups": [
{
"Status": "active",
"VpcSecurityGroupId": "sg-77186e0d"
}
],
"DBClusterArn": "arn:aws:rds:us-east-1:900083794985:cluster:sample-cluster",
"Status": "creating",
"Engine": "docdb",
"EngineVersion": "4.0.0",
"MultiAZ": false,
"AvailabilityZones": [
"us-east-1a",
"us-east-1c",
"us-east-1f"
],
"DBSubnetGroup": "default",
"DBClusterMembers": [],
"ReaderEndpoint": "sample-cluster.cluster-ro-corcjozrlsfc.us-east-1.docdb.amazonaws.com",
"EnabledCloudwatchLogsExports": [
"audit"
]
,"PreferredMaintenanceWindow": "wed:03:08-wed:03:38",
"AssociatedRoles": [],
"ClusterCreateTime": "2019-02-13T16:35:04.756Z",
"DbClusterResourceId": "cluster-YOS52CUXGDTNKDQ7DH72I4LED4",
"Endpoint": "sample-cluster.cluster-corcjozrlsfc.us-east-1.docdb.amazonaws.com",
"PreferredBackupWindow": "07:16-07:46",
"DBClusterIdentifier": "sample-cluster"
}
}
禁用审核
可以通过禁用 CloudWatch Logs 导出并禁用 audit_logs
参数来禁用审计。
禁用 CloudWatch Logs 导出
您可以使用 AWS 管理控制台或 AWS CLI 禁止导出审核日志。
使用 AWS 管理控制台
以下过程使用 AWS 管理控制台禁止 Amazon DocumentDB 将日志导出到 CloudWatch。
禁用审计日志
通过以下网址登录 AWS 管理控制台并打开 Amazon DocumentDB 控制台:https://console.aws.amazon.com/docdb。
在导航窗格中,选择 Clusters。然后,选择要禁用导出日志的集群名称左侧的按钮。
选择 Actions (操作),然后选择 Modify (修改)。
向下滚动到 Log exports (日志导出) 部分并选择 Disabled (已禁用)。
选择 Continue (继续)。
检查更改,然后选择何时将该更改应用到集群。
Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用)
Apply immediately (立即应用)
选择修改集群。
使用 AWS CLI
以下代码修改集群 sample-cluster
并禁用 CloudWatch 审核日志。
对于 Linux、macOS 或 Unix:
aws docdb modify-db-cluster \
--db-cluster-identifier
sample-cluster
\--cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit"]}'
对于 Windows:
aws docdb modify-db-cluster ^
--db-cluster-identifier
sample-cluster
^--cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit"]}'
此操作的输出将类似于下文(JSON 格式)。
{
"DBCluster": {
"DBClusterParameterGroup": "default.docdb4.0",
"HostedZoneId": "ZNKXH85TT8WVW",
"MasterUsername": "<user-name>",
"Status": "available",
"Engine": "docdb",
"Port": 27017,
"AvailabilityZones": [
"us-east-1a",
"us-east-1c",
"us-east-1f"
],
"EarliestRestorableTime": "2019-02-13T16:35:50.387Z",
"DBSubnetGroup": "default",
"LatestRestorableTime": "2019-02-13T16:35:50.387Z",
"DBClusterArn": "arn:aws:rds:us-east-1:900083794985:cluster:sample-cluster2",
"Endpoint": "sample-cluster2.cluster-corcjozrlsfc.us-east-1.docdb.amazonaws.com",
"ReaderEndpoint": "sample-cluster2.cluster-ro-corcjozrlsfc.us-east-1.docdb.amazonaws.com",
"BackupRetentionPeriod": 1,
"EngineVersion": "4.0.0",
"MultiAZ": false,
"ClusterCreateTime": "2019-02-13T16:35:04.756Z",
"DBClusterIdentifier": "sample-cluster2",
"AssociatedRoles": [],
"PreferredBackupWindow": "07:16-07:46",
"DbClusterResourceId": "cluster-YOS52CUXGDTNKDQ7DH72I4LED4",
"StorageEncrypted": false,
"PreferredMaintenanceWindow": "wed:03:08-wed:03:38",
"DBClusterMembers": [],
"VpcSecurityGroups": [
{
"Status": "active",
"VpcSecurityGroupId": "sg-77186e0d"
}
]
}
}
禁用 audit_logs 参数
要禁用集群的 audit_logs
参数,您可以修改集群,使其使用 audit_logs
参数值为 disabled
的参数组。 或者,您可以修改集群参数组中的 audit_logs
参数值,使其为 disabled
。
有关更多信息,请参阅以下主题:
访问审计事件
可以使用以下步骤访问 Amazon CloudWatch 上的审核事件。
通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/。
确保您与 Amazon DocumentDB 集群位于同一区域。
在导航窗格中,选择 Logs。
要查找集群的审核日志,请从列表中找到并选择
/aws/docdb/`yourClusterName`/audit
。此时,每个实例名称的下方将显示该实例的审计事件。