本文介绍了如何在AWS中国区,将CloudWatch日志组导出到S3。
在默认情况下,在CloudWatch上将Lambda、DMS等多种服务的日志组导出到S3时候会提示没有权限。当查看AWS文档时进行配置时,有关文档以Global区域为例进行编写,需要调整IAM Policy适应中国区域才能完成配置。
进入中国区S3控制台,并创建一个存储桶。设置桶时候,可以设置Block Public。因为导出CloudWatch日志组后后不需要外部公开访问。此时禁用公开访问,不影响导出日志。如下截图。
进入存储桶,选择 Permissions 权限,点击 Bucket Policy 桶策略。输入如下的策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "s3:GetBucketAcl",
"Effect": "Allow",
"Resource": "arn:aws-cn:s3:::cloudwatch-log-group",
"Principal": { "Service": "logs.cn-northwest-1.amazonaws.com.cn" }
},
{
"Action": "s3:PutObject" ,
"Effect": "Allow",
"Resource": "arn:aws-cn:s3:::cloudwatch-log-group/*",
"Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } },
"Principal": { "Service": "logs.cn-northwest-1.amazonaws.com.cn" }
}
]
}
这里与这里的官方文档上不同的地方在于:
- 在Resource中的aws后增加aws-cn;
- 替换存储桶名字为实际的存储桶;
- 在Principal中替换服务节点为 logs.cn-northwest-1.amazonaws.com.cn 即Global文档后增加了.cn
修改如上。将以上策略贴到S3桶策略中。如下截图。
进入CloudWatch日志组。选中要导出的日志组,点击Action,选择导出。如下截图。
在导出界面,选择时间区间,然后选择要导出的Bucket桶名称。如下截图。
导出后进入S3桶,可以找到exportedlogs目录,如下截图。
导出的文件是tar.gz压缩格式。如下截图。
下载导出文件成功。
全文完。