日志服务数据加工:权限配置指南

作者:彦方

日志服务的数据加工功能,在任务运行过程中重复如下动作:

  • 读取源LogStore数据
  • 对源数据做一系列加工得到结果数据
  • 将结果数据写到目标LogStore

如上第一步和第三步涉及对LogStore的访问权限:

  • 您可以使用主账号AccessKey,不需要额外配置权限,过程简单,这里不做介绍
  • 为了账号安全,强烈建议使用子账号配置细粒度权限,下文做详述

请登录RAM控制台进行子账号及权限配置。

  1. 创建读源LogStore子账号

源Project所属主账号操作:

image

保存子账号的AccessKey ID/Secret备用:

image

  1. 设置源LogStore读权限

源Project所属主账号操作:

image

  • 举例一:精确授权

源: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"
    }
  ]
}

更多授权场景请参考文档

  1. 将读源权限应用到读源子账号

源Project所属主账号操作:

image

image

  1. 创建写目标LogStore子账号

目标Project所属主账号操作,方式同步骤1。

保存子账号的AccessKey ID/Secret备用。

  1. 配置目标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"
    }
  ]
}

更多授权场景请参考文档

  1. 将写目标权限应用到写目标子账号

目标Project所属主账号操作,方式同步骤4。

  1. 在数据加工中使用子账号AccessKey

image

源Project所属账号登录日志服务控制台操作,步骤1子账号AccessKey ID/Secret填入上方框内,步骤4子账号AccessKey ID/Secret填入下方框内。

进一步参考

欢迎扫码加入官方钉钉群 (11775223)获得实时更新与阿里云工程师的及时直接的支持:
image

猜你喜欢

转载自yq.aliyun.com/articles/704940
今日推荐