作者:唐恺
日志服务的数据加工功能,在任务运行过程中重复如下动作:
- 读取源LogStore数据
- 对源数据做一系列加工得到结果数据
- 将结果数据写到目标LogStore
如上第一步和第三步涉及对LogStore的访问权限:
- 您可以使用主账号AccessKey,不需要额外配置权限,过程简单,这里不做介绍
- 为了账号安全,强烈建议使用子账号配置细粒度权限,下文做详述
请登录RAM控制台进行子账号及权限配置。
- 创建读源LogStore子账号
源Project所属主账号操作:
保存子账号的AccessKey ID/Secret备用:
- 设置源LogStore读权限
源Project所属主账号操作:
- 举例一:精确授权
源:Project(log-project-prod), LogStore(access_log)
策略内容:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListShards",
"log:GetCursorOrData",
"log:GetConsumerGroupCheckPoint",
"log:UpdateConsumerGroup",
"log:ConsumerGroupHeartBeat",
"log:ConsumerGroupUpdateCheckPoint",
"log:ListConsumerGroup",
"log:CreateConsumerGroup"
],
"Resource": [
"acs:log:*:*:project/log-project-prod/logstore/access_log",
"acs:log:*:*:project/log-project-prod/logstore/access_log/*"
],
"Effect": "Allow"
}
]
}
- 举例二:模糊匹配授权
源:Project(log-project-dev-a、log-project-dev-b、log-project-dev-c等),LogStore(app_a_log、app_b_log、app_c_log等)
策略内容:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListShards",
"log:GetCursorOrData",
"log:GetConsumerGroupCheckPoint",
"log:UpdateConsumerGroup",
"log:ConsumerGroupHeartBeat",
"log:ConsumerGroupUpdateCheckPoint",
"log:ListConsumerGroup",
"log:CreateConsumerGroup"
],
"Resource": [
"acs:log:*:*:project/log-project-dev-*/logstore/app_*_log",
"acs:log:*:*:project/log-project-dev-*/logstore/app_*_log/*"
],
"Effect": "Allow"
}
]
}
更多授权场景请参考文档。
- 将读源权限应用到读源子账号
源Project所属主账号操作:
- 创建写目标LogStore子账号
目标Project所属主账号操作,方式同步骤1。
保存子账号的AccessKey ID/Secret备用。
- 配置目标LogStore写权限
目标Project所属主账号操作,方式同步骤2。
- 举例一:精确授权
目标:Project(log-project-prod), LogStore(access_log_output)
策略内容:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:Post*"
],
"Resource": "acs:log:*:*:project/log-project-prod/logstore/access_log_output",
"Effect": "Allow"
}
]
}
- 举例二:模糊匹配授权
目标:Project(log-project-dev-a、log-project-dev-b、log-project-dev-c等),LogStore(app_a_log_output、app_b_log_output、app_c_log_output等)
策略内容:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:Post*"
],
"Resource": "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log_output",
"Effect": "Allow"
}
]
}
更多授权场景请参考文档。
- 将写目标权限应用到写目标子账号
目标Project所属主账号操作,方式同步骤4。
- 在数据加工中使用子账号AccessKey
源Project所属账号登录日志服务控制台操作,步骤1子账号AccessKey ID/Secret填入上方框内,步骤4子账号AccessKey ID/Secret填入下方框内。
进一步参考
欢迎扫码加入官方钉钉群获得实时更新与阿里云工程师的及时直接的支持: