观测云日志转发至 AWS S3 最佳实践
在日志保留周期越来越长的场景下,把全部数据都放在高频检索链路中,通常会带来持续的存储成本压力。对于“需要长期留存、但低频访问”的日志,采用观测云数据转发能力,将数据归档到 AWS S3,是一条更稳妥的成本与治理平衡路径。 将日志转发到 S3 后,团队通常可以获得以下收益: 观测云日志转发至 S3 支持三种接入方式: 在生产环境中,建议优先使用角色授权,以获得更好的凭证安全性与权限治理能力。 三种方式在开始前都需要先准备以下信息: 在观测云 分区注意事项: 该方式通过 IAM Role + External ID 建立受控信任关系,适合长期稳定运行。 示例桶名: 在 IAM 中创建策略,重点授予 信任策略中最关键的是两项: 观测云账号 ID 与 External ID 获取路径:观测云控制台 -> 管理 -> 数据转发 -> 新建规则 随后将第二步创建的 S3 策略附加到该角色。 在 该方式通过桶策略直接授权观测云账号访问目标桶。 在 S3 桶的“权限”页编辑桶策略,填入观测云账号 ID 和目标桶 ARN。 观测云账号 ID 获取路径:观测云控制台 -> 管理 -> 数据转发 -> 新建规则 填写地区与桶名称,测试连接成功后保存。 该方式通过 IAM 用户访问密钥完成认证,适合临时验证或过渡期使用。 在 IAM 用户的“安全凭证”中创建访问密钥,获取 AK/SK 后在观测云规则中填写并测试连接。 建议从以下四个维度确认配置已生效: 通过角色授权、账号授权或 Access Key 三种方式,都可以将观测云日志稳定转发到 AWS S3,实现低成本长期归档。实际落地中,建议优先采用角色授权,并重点关注三个关键点:授权模型、ARN 分区前缀、区域一致性。完成这三点后,日志归档链路通常可以稳定运行,并为后续审计、分析与数据加工提供可靠基础。背景
为什么值得做
方案概览
前提条件
guance-log-archive-2026)和区域(例如 ap-east-1、cn-north-1)。管理 -> 数据转发 -> 新建规则 页面获取:arn:aws-cn:s3:::。arn:aws:s3:::。配置步骤
方式一:角色授权(推荐)
步骤 1:创建 S3 存储桶
guance-csm-s3。步骤 2:创建 S3 权限策略
PutObject、GetObject、ListBucket、GetBucketLocation 四项权限,并将资源限定在目标桶。{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::guance-csm-s3",
"arn:aws:s3:::guance-csm-s3/*"
]
}
]
}步骤 3:创建 IAM 角色并配置自定义信任策略
Principal.AWS:观测云账号 IDsts:ExternalId:观测云外部 ID{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<观测云账号ID>:root"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "<观测云外部ID>"
}
}
}
]
}步骤 4:在观测云测试并保存规则
管理 -> 数据转发 -> 新建规则 中选择 AWS S3,访问方式选择“角色授权”,填写地区、桶名称、角色名称与可选存储路径,测试连接成功后保存。方式二:账号授权
步骤 1:配置桶策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GuanceyunAccess",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<观测云账号ID>:root"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::guance-csm-s3",
"arn:aws:s3:::guance-csm-s3/*"
]
}
]
}步骤 2:在观测云测试并保存规则
方式三:Access Key(AK/SK)授权
步骤 1:创建 IAM 用户
步骤 2:创建并绑定 S3 策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:CreateBucket",
"s3:ListAllMyBuckets",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::*"
}
]
}步骤 3:创建访问密钥并在观测云配置
效果验证
常见问题与注意事项
AccessDenied,请核对策略是否包含 PutObject、ListBucket、GetBucketLocation。总结