通过访问密钥访问数据

日志服务支持通过默认角色、自定义角色或密钥方式创建数据加工任务。阿里云账号的访问密钥具有最高权限,不推荐使用。您可使用RAM用户的密钥创建数据加工任务,本文介绍如何授予RAM用户访问Logstore的相关权限。

前提条件

已创建RAM用户。具体操作,请参见创建RAM用户

重要
  • 创建RAM用户时,请选择访问方式使用永久 AccessKey 访问,并保存AccessKey信息。

  • RAM用户的AccessKey Secret只在创建时显示,不支持查询,请妥善保管,谨防泄露。

授权RAM用户只读访问源Logstore

为RAM用户授权后,该RAM用户将具备读取源Logstore数据的权限。您可以在创建数据加工任务时,使用该RAM用户的访问密钥。具体操作,请参见创建数据加工任务

  1. 使用阿里云账号(主账号)或RAM管理员登录RAM控制台

  2. 创建一个自定义权限策略,例如命名为:log-etl-source-reader-policy。该权限策略用于读取源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"
        }
      ]
    }
  3. 为RAM用户添加创建的自定义权限策略。具体操作,请参见为RAM用户授权

授权RAM用户写入数据到目标Logstore

为RAM用户授权后,该RAM用户将具备写入加工结果到目标Logstore的权限。您可以在创建数据加工任务时,使用该RAM用户的访问密钥。具体操作,请参见创建数据加工任务

  1. 创建一个自定义权限策略,例如命名为:log-etl-target-writer-policy。该权限策略用于将加工结果写入到目标Logstore。具体操作,请参见通过脚本编辑模式创建自定义权限策略

    其中在脚本编辑页签,您可选择使用精确授权模糊匹配授权脚本替换配置框中的原有内容。

    精确授权

    例如:目标Project名称为log-project-prod,目标Logstore名称为access_log_output。在实际场景中,请根据实际情况替换。

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:Post*",
            "log:BatchPost*"
          ],
           "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*",
            "log:BatchPost*"
          ],
           "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log_output",
          "Effect": "Allow"
        }
      ]
    }
  2. 为RAM用户添加创建的自定义权限策略。具体操作,请参见为RAM用户授权

后续步骤

在数据加工任务中配置RAM用户的访问密钥。具体操作,请参见创建数据加工任务