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

背景信息

日志服务数据加工功能,任务运行可以分为如下三个步骤:
  1. 读取源Logstore数据。
  2. 对源数据进行加工得到结果数据。
  3. 将结果数据写入到目标Logstore。
其中步骤 1和步骤 3需要访问Logstore,您可以使用主账号进行访问,则不需要单独配置访问权限。

为了账号安全及细粒度权限控制,建议您通过主账号为子账号配置相应的权限,然后在加工规则中配置子账号密钥来访问Logstore。

创建源Logstore访问密钥

使用源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中创建的权限策略并单击确定按钮。设置权限

创建目标Logstore访问密钥

请使用目标Logstore所属主账号进行操作。

  1. 获取访问目标Logstore子账号密钥。
    创建子账号操作请参见授权RAM用户访问方式请选择为编程访问,并保存子账号AccessKey信息。
  2. 创建访问目标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自定义授权场景
  3. 授予子账号访问目标Logstore权限。
    具体步骤请参见步骤3

在加工规则中配置访问密钥

  1. 使用源Logstore所属账号登录日志服务控制台。
  2. 在数据加工规则中配置访问密钥。
    保存加工规则时,访问源Logstore的密钥信息填入下图中红框1的位置,访问目标Logstore的密钥信息填入下图红框2的位置。修改加工规则