我想为我的 Amazon Redshift 集群或 Amazon Redshift Serverless 启用审计日志记录。
简短描述
Amazon Redshift 将系统日志存储在系统表和视图中,保留期最长为七天。这些日志有助于监控数据库安全并对数据库问题进行故障排除。
要将日志存储更长时间,请启用 Amazon Redshift 的审计日志记录功能。日志可以存储在 Amazon Simple Storage Service (Amazon S3) 存储桶或 Amazon CloudWatch 中。CloudWatch 具有将审计日志记录数据可视化的功能。
Amazon Redshift 在以下类型的日志中记录信息:
- 连接日志 - 记录身份验证尝试、连接和断开连接信息。
- 用户日志 - 记录有关数据库用户定义更改的信息。
- 用户活动日志 - 记录在数据库上运行之前的每个查询的信息。
**注意:**对于用户活动日志,请确保设置参数组以正确存储日志。
解决方法
在 Amazon Redshift 预置集群中启用审计日志记录
要使用控制台在 Amazon Redshift 预置集群中启用审计日志记录,请完成以下步骤:
- 打开 Amazon Redshift 控制台。
- 在导航窗格中,选择 Clusters(集群),然后选择要更新的集群。
- 选择 Properties(属性)选项卡。
- 在 Database configurations(数据库配置)面板上,选择 Edit(编辑),然后选择 Edit audit logging(编辑审计日志记录)。
- 对于 Edit audit logging(编辑审计日志记录),选择 Turn on(开启),然后选择 S3 bucket(S3 存储桶)或 CloudWatch。
如果您选择 S3 bucket(S3 存储桶),则可以选择现有存储桶或选择 Create new bucket(创建新存储桶)来存储数据库审计日志。
如果您选择 CloudWatch,则可以从以下日志类型中进行选择: Connection log(连接日志)、User log(用户日志)和 User activity log(用户活动日志)。
- 选择 Save changes(保存更改)。
要使用 AWS 命令行界面 (AWS CLI) 启用审计日志记录,请参阅 enable-logging。
**注意:**如果您在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
以下示例显示如何使用 enable-logging 命令以 S3 存储桶作为审计日志记录目标启用审计日志记录:
aws redshift enable-logging --cluster-identifier redshift-cluster-1 --log-destination-type s3 --bucket-name mybucket --s3-key-prefix mybucket/test --region us-east-1
输出将类似于以下内容:
{ “LoggingEnabled”: true, “BucketName”: “mybucket”, “S3KeyPrefix”: “mybucket/test/“, “LastSuccessfulDeliveryTime”: “2022-09-14T12:04:42.558000+00:00"}
注意:出现在 S3 存储桶或 CloudWatch 中的日志可能会有延迟。您可以在集群属性中查看上次成功传输的日期和时间,以查看上次执行日志传输的时间。
用户活动日志的参数组
要记录用户活动日志,请确保在连接到 Amazon Redshift 集群的集群参数组中将 enable_user_activity_logging 参数设置为 true。
**注意:**在最初创建 Amazon Redshift 集群时,该集群会自动与默认参数组关联。在此配置中,enable_user_activity_logging 参数设置为 false。无法直接修改默认参数组本身。
要启用 enable_user_activity_logging 参数,请完成以下步骤:
- 创建新的参数组。
- 修改参数组,将参数 enable_user_activity_logging 设置为 true。
要将新的参数组关联到集群,请完成以下步骤:
- 在导航窗格中,选择 Clusters(集群)。然后,选择要修改的集群。
- 选择 Properties(属性)。
- 向下滚动到参数组部分,然后选择 Edit(编辑)。
- 从列表中选择新的参数组。
- 选择 Save changes(保存更改)。
修改已与集群关联的参数组中的参数值后,可能需要重启集群。您可能还需要将不同的参数组与集群关联,以使更新后的参数值生效。如果您的集群在维护期间重新启动,则不会应用更改。
如果您启用了审计日志记录,但未启用参数组中的 enable_user_activity_logging 参数,则会发生以下情况:
- 数据库审计日志仅存储连接日志和用户日志的信息
- 不存储用户活动日志
有关详细信息,请参阅 Amazon Redshift 参数组。
为 Amazon Redshift Serverless 启用审计日志记录
要为 Amazon Redshift Serverless 启用审计日志记录,请完成以下步骤:
- 打开 Amazon Redshift 控制台。
- 在导航窗格中,选择 Redshift Serverless,然后选择 Serverless dashboard(无服务器控制面板)。
- 选择要为其启用审计日志记录的 Namespace(命名空间)。
- 选择 Security and Encryption(安全和加密)选项卡。
- 对于 Security and encryption(安全和加密),选择 Edit(编辑)。
- 在 Export these logs(导出这些日志)中,选择要保存在 CloudWatch 中的日志。您可以从以下日志类型中进行选择: User log(用户日志)、Connection log(连接日志)和 User activity log(用户活动日志)。
- 选择 Save changes(保存更改)。
**注意:**Amazon Redshift Serverless 无法将日志导出到 S3 存储桶。
有关如何监控审计日志的详细信息,请参阅 CloudWatch 中的日志事件。
相关信息
数据库审计日志记录
Amazon Redshift Serverless 的审计日志记录