创建数据加工任务时,支持通过配置子账号来访问源Logstore数据,并将加工数据写入到目标Logstore。

背景信息

日志服务数据加工功能,任务运行可以分为如下三个步骤:
  1. 读取源Logstore数据。
  2. 对源数据进行加工得到结果数据。
  3. 将结果数据写入到目标Logstore。
其中步骤 1和3需要访问Logstore,您可以使用主账号进行访问,则不需要单独配置访问权限。为了账号安全及细粒度权限控制,建议您通过主账号为子账号配置相应的权限。

配置步骤

  1. 创建访问源Logstore的子账号。
    创建子账号操作步骤请参见授权RAM 用户访问方式请选择为编程访问,并保存子账号AccessKey信息。
    保存秘钥
  2. 创建源Logstore访问权限策略。
    请根据实际需求选择替换精确授权策略或者模糊匹配策略,操作步骤请参见创建自定义策略
    • 精确授权。
      源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"
          }
        ]
      }
      更多授权场景请参见RAM自定义授权场景
  3. 配置子账号访问源Logstore权限。
    1. 登录 RAM 控制台
    2. 在左侧导航选择人员管理 > 用户
    3. 单击目标子账号操作列的添加权限
    4. 选择步骤2中创建的权限策略并单击确定按钮。
      设置权限
  4. 创建写入目标Logstore子账号。
    创建子账号操作步骤请参见授权RAM 用户访问方式请选择为编程访问,并保存子账号AccessKey信息。
  5. 创建目标Logstore访问权限策略。
    请替换如下策略内容,操作步骤请参见创建自定义策略
    • 精确授权。
      源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"
          }
        ]
      }
      更多授权场景请参见RAM自定义授权场景
  6. 配置子账号访问目标Logstore权限。
    具体步骤请参见步骤3
  7. 在数据加工任务中配置子账号AccessKey信息。
    源Project所属账号登录日志服务控制台进行操作,访问源Logstore子账号AccessKey信息如下图中红框1的位置,目标Logstore子账号AccessKey信息如图红框2的位置。
    修改加工规则