边缘安全加速平台 EO 推送至 AWS S3

EdgeOne 实时日志推送支持将日志推送至你 AWS 账号中的 S3 存储桶,通过 IAM 角色临时凭证(AWS STS)进行鉴权,无需配置长期静态访问密钥,临时凭证自动过期,降低密钥泄露与轮换带来的安全风险。可以通过控制台或 API 进行配置。

相关产品
边缘安全加速平台 EO 产品页,含版本规格、价格与购买入口。

注意:说明:

一、前提条件

1. 已拥有 AWS 账号,并已在目标区域创建用于存放实时日志的 S3 存储桶。

2. 已在 AWS IAM 中创建用于 EdgeOne 日志投递的 IAM 角色,并完成信任策略(Trust policy)与权限策略(Permission policy)配置,请参见下文 IAM 角色配置。

二、IAM 角色配置

1. 登录 AWS 管理控制台,进入 IAM > Roles,单击 Create role。

2. 在 Step 1 Select trusted entity 中,选择 Trusted entity type 为 AWS account,选择 Another AWS account,并在 Account ID 中填入 EdgeOne 服务账号 ID。EdgeOne 服务账号 ID 按你的目标投递存储桶所在分区区分,请根据你的 S3 存储桶所在分区填写对应值:

·存储桶位于 AWS 全球区(端点域名后缀为 amazonaws.com):361796580773;

·存储桶位于 AWS 中国区(端点域名后缀为 amazonaws.com.cn):382884104370。

注意:AWS 全球区与中国区是相互隔离的独立分区,请务必按存储桶所在分区选择对应的 EdgeOne 服务账号 ID。若分区与账号 ID 不匹配,将导致 AssumeRole 被拒绝,从而导致控制台创建实时日志任务验证失败。

3. 勾选 Require external ID,在 External ID 中填入你的腾讯云主账号 UIN,单击 Next。

注意:说明:

注意:<External ID> 为防混淆代理人(Confused Deputy)攻击的安全标识,取值为你的腾讯云主账号 UIN,可在 EdgeOne 控制台 > 站点详情 > 实时日志 > 新建实时日志任务 > 目的地信息页面的 External ID 中查看并复制。

4. 在 Step 2 Add permissions 中,选择 Create inline policy(创建将直接附加到该角色的新策略),在 Policy 编辑器粘贴以下内容,并将 <存储桶名称> 替换为你的实际值:

{ "Version": "2012-10-17", "Statement": { "Sid": "EdgeOneRealtimeLogDelivery", "Effect": "Allow", "Action": ["s3:PutObject", "s3:AbortMultipartUpload"], "Resource": "arn:aws:s3:::<存储桶名称>/*" }}

注意:若存储桶位于 AWS 中国区,Resource 的 ARN 需改为 arn:aws-cn:s3:::<存储桶名称>/*。

注意:说明:

注意:若你已在 IAM > Policies 中创建过可复用的权限策略,也可在 Add permissions 步骤选择 Use existing policy 并勾选已有策略,无需新建策略。

5. 确认编辑器底部无 Error 提示后,单击 Next。

6. 在 Step 3 Name, review, and create 中,为角色命名,确认 Trust policy 与 Permission policy 无误,并完成标签配置后点击 Create Role 完成创建。

AWS 全球区 Trust policy 示例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "361796580773" }, "Condition": { "StringEquals": { "sts:ExternalId": "<你的腾讯云主账号 UIN>" } } } ]}

AWS 中国区 Trust policy 示例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "382884104370" }, "Condition": { "StringEquals": { "sts:ExternalId": "<你的腾讯云主账号 UIN>" } } } ]}

7. 完成上述配置后,进入 IAM > Roles,选择刚创建的角色,记录以下信息,用于在 EdgeOne 控制台填写目的地参数:

·IAM 角色 ARN:形如 arn:aws:iam::<你的 AWS 账号 ID>:role/<角色名>(中国区 AWS 账号格式为 arn:aws-cn:iam::<你的 AWS 账号 ID>:role/<角色名>)。

三、操作步骤

1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,进入服务总览,单击网站安全加速内需配置的站点。

2. 在站点详情页面,单击日志服务 > 实时日志。

3. 在实时日志页面,单击新建推送任务。

4. 在选择日志源页面,填写任务名称、选择日志类型、服务区域,单击下一步。

5. 在选择目的地页面,选择 AWS S3,单击下一步。

6. 在定义推送内容页面:

·(必选)选择需推送日志的域名/四层代理实例/边缘函数实例;

·(必选)在预设字段列表中勾选需要推送的日志字段;

·(可选)添加自定义日志字段,支持自定义日志字段名称,以及使用表达式自定义日志字段值;

·(可选)配置推送日志筛选条件,默认推送全量日志;

·(可选)在高级配置中,配置采样比例,默认不开启采样,推送 100% 日志至目的地;

·(可选)在高级配置中,配置日志输出格式,默认格式为 JSON Lines;

·单击下一步。

7. 在目的地信息页面,填写以下参数:

参数名称 说明
存储桶名称(必填) AWS S3 中用于存放 EdgeOne 实时日志的桶名,例如 my-logpush-s3-bucket。长度须为 3-63 个字符,只能包含小写字母、数字、句点(.)和连字符(-),且必须以字母或数字开头和结尾。
端点域名(必填) S3 桶所在区域的服务端点域名,格式为 s3.<region>.<域名后缀>。AWS 全球区后缀为 amazonaws.com,例如 s3.us-west-2.amazonaws.com,完整可选列表请参考 AWS 产品文档。AWS 中国区后缀为 amazonaws.com.cn,例如 s3.cn-north-1.amazonaws.com.cn,完整可选列表请参考 AWS 产品文档。
IAM 角色 ARN(必填) 你在 AWS 账号中为 EdgeOne 日志投递创建的 IAM 角色 ARN,EdgeOne 将使用此角色向 AWS STS 申请临时凭证写入你的 S3 桶。AWS 全球区格式为 arn:aws:iam::<你的 AWS 账号 ID>:role/<角色名>AWS 中国区格式为 arn:aws-cn:iam::<你的 AWS 账号 ID>:role/<角色名>
文件压缩(可选) 选择是否对日志文件进行 Gzip 压缩,默认不压缩。
日志目录(必填) 日志对象在 S3 桶中的存储目录路径,以 / 分隔创建多级子目录。仅允许安全字符(字母、数字、! – _ . * ' ( )),总长度不超过 1024 字节。

8. 单击推送。EdgeOne 将立即发起连通性预检,向 AWS STS 申请临时凭证并向目标存储桶写入测试文件:

·预检通过:任务创建成功,并开始投递实时日志。

·预检失败:请根据错误提示检查 IAM 角色的信任策略、权限策略及目的地参数配置。

四、文件名称说明

日志将以 {{UploadTime}}_{{Random}}.log 格式写入指定目录,并以日期(UTC+0)为文件夹归档,例如 20261028/20261028T185917Z_2aadf5ce.log。开启 Gzip 压缩时,文件名增加 .gz 后缀,例如 20261028/20261028T185917Z_2aadf5ce.log.gz。

·UploadTime:日志文件上传时间,采用 UTC+0 时区,格式形如 YYYYMMDDTHHmmssZ。

·Random:随机字符串,当日志量较大时,同一上传时间可能产生多个日志文件,通过该随机字符串区分不同文件。

五、鉴权流程说明

EdgeOne 后端在日志投递周期内的鉴权与写入流程如下:

1. 临时凭证获取:EdgeOne 使用其服务账号(按存储桶所在分区为全球区 361796580773 或中国区 382884104370)身份,携带你配置的 IAM 角色 ARN 与 External ID 调用 sts:AssumeRole。AWS 校验信任策略中的 Principal 与 sts:ExternalId 条件后,返回有效期约 1 小时的临时凭证(临时 Access Key、Secret Key 与 Session Token)。EdgeOne 会缓存临时凭证,并在到期前自动刷新。

2. 日志写入:EdgeOne 使用临时凭证对 S3 请求进行 Signature Version 4 签名,将日志写入你指定的存储桶与目录。

赞 (0)
上一篇 4天前
下一篇 4天前